GithubHelp home page GithubHelp logo

aleph-alpha-client's People

Contributors

aasascha avatar ahartel avatar benbrandt avatar capsenz avatar dependabot[bot] avatar florianschepersaa avatar ghost---shadow avatar jancen0 avatar jneuff avatar johannesha avatar khayet avatar martinreinhardt01 avatar nyxcode avatar pacman82 avatar pitneitemeier avatar rutgercap avatar sweinbach avatar testuser128379046 avatar timsueberkrueb avatar tugot17 avatar volkerstampa avatar wieslertng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aleph-alpha-client's Issues

No module named 'importlib.metadata'

When trying to run your code example in colab I get:

---------------------------------------------------------------------------

ModuleNotFoundError                       Traceback (most recent call last)

[<ipython-input-9-eb27f3a312b1>](https://localhost:8080/#) in <module>()
----> 1 from aleph_alpha_client import ImagePrompt, AlephAlphaClient
      2 
      3 client = AlephAlphaClient(
      4     host="https://api.aleph-alpha.com/",
      5     token="<your token>"

1 frames

[/usr/local/lib/python3.7/dist-packages/aleph_alpha_client/aleph_alpha_client.py](https://localhost:8080/#) in <module>()
      1 from typing import List, Optional, Dict, Union
----> 2 from importlib.metadata import version
      3 
      4 import requests
      5 import logging

ModuleNotFoundError: No module named 'importlib.metadata'

Trying to pip install importlib or importlib-metadata do not help.

Getting a 503 Error when using model: luminous-nextgen-66b-global-step140000-adapter-control-v1

Issue:
We are getting the response from the server when we do a CompletionRequest, using the model: luminous-nextgen-66b-global-step140000-adapter-control-v1

Response:
(503, '{"error":"Sorry we had to reject your request because we could not guarantee to finish it in a reasonable timeframe. This specific model is very busy at this moment. Try again later or use another model.","code":"QUEUE_FULL"}')

Using the Prompt:

Wie viel beträgt der Durchmesser der Leitung und welches Prüfverfahren wird benötigt?

### Input:
Antragsabschnitt:
['dens über der Leitung ist bei der geplanten Mindestabdeckung von 1,20 m groß genug, um \nzu ermöglichen, dass bei zukünftigen Leitungskreuzungen auch die neu hinzukommenden \n(Wasser-) Leitungen noch im frostfreien Bereich verlegt werden können.', 'vor, was bei dem Leitungsdurchmesser DN 1200 einer Rohrlänge von ca. 5.300 m ent -\nspricht. \nDas für diese einmalige Druckprüfung erforderliche Wasser wird den Gewässern Alz, Alzka -', '150 m bis 50 m geltenden Maßnahmen – folgende weitere Maßnahmen: \n- Erhöhter Prüfumfang der Schweißnähte (Durchstrahlungs- und Ultraschallprüfung). \n- Tieferlegung der Leitung mit 1,5 m Überdeckung.', 'deckung von 1,50 m ist sachlich nicht begründet.  \nEventuelle Schäden der Rohre sind im Rahmen einer Dichtheitsprüfung vor Inbetriebnahme \nzu lokalisieren und zu beheben.']

Antworte basierend auf diesen Gestztestext:
Gesetz über die Elektrizitäts- und Gasversorgung (Energiewirtschaftsgesetz - EnWG)
§ 43 Erfordernis der Planfeststellung
(1) Die Errichtung und der Betrieb sowie die Änderung von folgenden Anlagen bedürfen der Planfeststellung durch die nach Landesrecht zuständige Behörde:
1.
Hochspannungsfreileitungen mit einer Nennspannung von 110 Kilovolt oder mehr, ausgenommen
a)
Bahnstromfernleitungen und
b)
Hochspannungsfreileitungen mit einer Gesamtlänge von bis zu 200 Metern, die nicht in einem Natura 2000-Gebiet nach § 7 Absatz 1 Nummer 8 des Bundesnaturschutzgesetzes liegen,
2.
Hochspannungsleitungen, die zur Netzanbindung von Windenergieanlagen auf See im Sinne des § 3 Nummer 49 des Erneuerbare-Energien-Gesetzes im Küstenmeer als Seekabel und landeinwärts als Freileitung oder Erdkabel bis zu dem technisch und wirtschaftlich günstigsten Verknüpfungspunkt des nächsten Übertragungs- oder Verteilernetzes verlegt werden sollen, mit Ausnahme von Nebeneinrichtungen zu Offshore-Anbindungsleitungen,
3.
grenzüberschreitende Gleichstrom-Hochspannungsleitungen, die nicht unter Nummer 2 fallen und die im Küstenmeer als Seekabel verlegt werden sollen, sowie deren Fortführung landeinwärts als Freileitung oder Erdkabel bis zu dem technisch und wirtschaftlich günstigsten Verknüpfungspunkt des nächsten Übertragungs- oder Verteilernetzes,
4.
Hochspannungsleitungen nach § 2 Absatz 5 und 6 des Bundesbedarfsplangesetzes,
5.
Gasversorgungsleitungen mit einem Durchmesser von mehr als 300 Millimetern und
6.
Anbindungsleitungen von LNG-Anlagen an das Fernleitungsnetz mit einem Durchmesser von mehr als 300 Millimetern.
Leitungen nach § 2 Absatz 1 des Netzausbaubeschleunigungsgesetzes Übertragungsnetz bleiben unberührt. Die Errichtung, der Betrieb oder die Änderung eines Provisoriums selbst stellen keine Errichtung, keinen Betrieb und keine Änderung einer Hochspannungsfreileitung im energiewirtschaftlichen Sinne dar. Der Betreiber zeigt der zuständigen Immissionsschutzbehörde die Einhaltung der Vorgaben nach den §§ 3 und 3a der Verordnung über elektromagnetische Felder, in der jeweils geltenden Fassung, mindestens zwei Wochen vor der Errichtung, der Inbetriebnahme oder einer Änderung mit geeigneten Unterlagen an.
(2) Auf Antrag des Trägers des Vorhabens können durch Planfeststellung durch die nach Landesrecht zuständige Behörde zugelassen werden:
1.
die für den Betrieb von Energieleitungen notwendigen Anlagen, insbesondere Konverterstationen, Phasenschieber, Verdichterstationen, Umspannanlagen und Netzverknüpfungspunkte, die auch in das Planfeststellungsverfahren für die Energieleitung integriert werden können, einschließlich Nebeneinrichtungen zu Offshore-Anbindungsleitungen; dabei ist eine nachträgliche Integration in die Entscheidung zur Planfeststellung durch Planergänzungsverfahren möglich, solange die Entscheidung zur Planfeststellung gilt,
2.
die Errichtung und der Betrieb sowie die Änderung eines Erdkabels für Hochspannungsleitungen mit einer Nennspannung von 110 Kilovolt im Küstenbereich von Nord- und Ostsee, die in einem 20 Kilometer breiten Korridor, der längs der Küstenlinie landeinwärts verläuft, verlegt werden sollen; Küstenlinie ist die in der Seegrenzkarte Nummer 2920 „Deutsche Nordseeküste und angrenzende Gewässer“, Ausgabe 1994, XII, und in der Seegrenzkarte Nummer 2921 „Deutsche Ostseeküste und angrenzende Gewässer“, Ausgabe 1994, XII, des Bundesamtes für Seeschifffahrt und Hydrographie jeweils im Maßstab 1 : 375 000 dargestellte Küstenlinie,*
3.
die Errichtung und der Betrieb sowie die Änderung eines Erdkabels mit einer Nennspannung von 110 Kilovolt oder mehr zur Anbindung von Kraftwerken oder Pumpspeicherkraftwerken an das Elektrizitätsversorgungsnetz,
4.
die Errichtung und der Betrieb sowie die Änderung eines sonstigen Erdkabels für Hochspannungsleitungen mit einer Nennspannung von 110 Kilovolt oder weniger, ausgenommen Bahnstromfernleitungen,
5.
die Errichtung und der Betrieb sowie die Änderung einer Freileitung mit einer Nennspannung von unter 110 Kilovolt, einer Hochspannungsfreileitung mit einer Nennspannung von 110 Kilovolt oder mehr und einer Gesamtlänge von bis zu 200 Metern, die nicht in einem Natura 2000-Gebiet liegt, oder einer Bahnstromfernleitung, sofern diese Leitungen mit einer Leitung nach Absatz 1 Satz 1 Nummer 1, 2 oder 3 auf einem Mehrfachgestänge geführt werden und in das Planfeststellungsverfahren für diese Leitung integriert werden; Gleiches gilt für Erdkabel mit einer Nennspannung von unter 110 Kilovolt, sofern diese im räumlichen und zeitlichen Zusammenhang mit der Baumaßnahme eines Erdkabels nach Absatz 1 Satz 1 Nummer 2 bis 4 oder nach den Nummern 2 bis 4 mit verlegt werden,
6.
Leerrohre, die im räumlichen und zeitlichen Zusammenhang mit der Baumaßnahme eines Erdkabels nach Absatz 1 Satz 1 Nummer 2 bis 4 oder nach den Nummern 2 bis 4 mit verlegt werden,
7.
die Errichtung und der Betrieb sowie die Änderung von Energiekopplungsanlagen,
8.
die Errichtung und der Betrieb sowie die Änderung von Großspeicheranlagen mit einer Nennleistung ab 50 Megawatt, soweit sie nicht § 126 des Bundesberggesetzes unterfallen,
9.
die Errichtung und der Betrieb von Anlagen nach § 2 Absatz 1 Nummer 1 des LNG-Beschleunigungsgesetzes einschließlich erforderlicher Nebenanlagen und technischer und baulicher Nebeneinrichtungen, dabei kann auch eine Verbindung mit einem nach Absatz 1 Satz 1 Nummer 6 durchzuführenden Planfeststellungsverfahren erfolgen und
10.
die Errichtung und der Betrieb sowie die Änderung von Provisorien, die auch in das Planfeststellungsverfahren für die Energieleitungen integriert werden können; dabei ist eine nachträgliche Integration in die Entscheidung zur Planfeststellung durch Planergänzungsverfahren möglich, solange die Entscheidung zur Planfeststellung gilt.
Satz 1 ist für Erdkabel auch bei Abschnittsbildung anzuwenden, wenn die Erdverkabelung in unmittelbarem Zusammenhang mit dem beantragten Abschnitt einer Freileitung steht.
(3) Bei der Planfeststellung sind die von dem Vorhaben berührten öffentlichen und privaten Belange im Rahmen der Abwägung zu berücksichtigen. Soweit bei einem Vorhaben im Sinne des Absatzes 1 Satz 1 Nummer 1 bis 4 eine Änderung oder Erweiterung einer Leitung im Sinne von § 3 Nummer 1 des Netzausbaubeschleunigungsgesetzes Übertragungsnetz, ein Ersatzneubau im Sinne des § 3 Nummer 4 des Netzausbaubeschleunigungsgesetzes Übertragungsnetz oder ein Parallelneubau im Sinne des § 3 Nummer 5 des Netzausbaubeschleunigungsgesetzes Übertragungsnetz beantragt wird, ist eine Prüfung in Frage kommender Alternativen für den beabsichtigten Verlauf der Trasse auf den Raum in und unmittelbar neben der Bestandstrasse beschränkt. Eine Prüfung außerhalb dieses Raumes ist nur aus zwingenden Gründen durchzuführen. Sie ist insbesondere dann erforderlich, wenn das Vorhaben einzeln oder im Zusammenwirken mit der Hochspannungsleitung der Bestandstrasse
1.
nach § 34 Absatz 2 des Bundesnaturschutzgesetzes unzulässig wäre oder
2.
gegen die Verbote des § 44 Absatz 1 auch in Verbindung mit Absatz 5 des Bundesnaturschutzgesetzes verstoßen würde.
Ziele der Raumordnung, die den Abstand von Hochspannungsleitungen zu Gebäuden oder überbaubaren Grundstücksflächen regeln, sind keine zwingenden Gründe im Sinne von Satz 3. Die Sätze 2 bis 5 sind bei Offshore-Anbindungsleitungen nur für den landseitigen Teil anzuwenden.
(3a) Die Errichtung und der Betrieb sowie die Änderung von Hochspannungsleitungen nach Absatz 1 Satz 1 Nummer 1 bis 4 einschließlich der für den Betrieb notwendigen Anlagen liegen im überragenden öffentlichen Interesse und dienen der öffentlichen Sicherheit. Bis die Stromversorgung im Bundesgebiet nahezu treibhausgasneutral ist, soll der beschleunigte Ausbau der Hochspannungsleitungen nach Absatz 1 Satz 1 Nummer 1 bis 4 und der für den Betrieb notwendigen Anlagen als vorrangiger Belang in die jeweils durchzuführende Schutzgüterabwägung eingebracht werden. Satz 2 ist nicht gegenüber Belangen der Landes- und Bündnisverteidigung anzuwenden.
(3b) Die nach Landesrecht zuständige Behörde ist zu einer detaillierten Prüfung von Alternativen nur verpflichtet, wenn es sich um Ausführungsvarianten handelt, die sich nach den in dem jeweiligen Stadium des Planungsprozesses angestellten Sachverhaltsermittlungen auf Grund einer überschlägigen Prüfung der insoweit abwägungsrelevanten Belange nach Absatz 3 Satz 1 und Absatz 3a als eindeutig vorzugswürdig erweisen könnten. Der Plan enthält auch Erläuterungen zur Auswahlentscheidung des Vorhabenträgers einschließlich einer Darstellung der hierzu ernsthaft in Betracht gezogenen Alternativen.
(3c) Bei der Planfeststellung von Vorhaben nach Absatz 1 Satz 1 Nummer 1 bis 4 sind bei der Abwägung nach Absatz 3 insbesondere folgende Belange mit besonderem Gewicht zu berücksichtigen:
1.
eine möglichst frühzeitige Inbetriebnahme des Vorhabens,
2.
ein möglichst geradliniger Verlauf zwischen dem Anfangs- und dem Endpunkt des Vorhabens,
3.
eine möglichst wirtschaftliche Errichtung und ein möglichst wirtschaftlicher Betrieb des Vorhabens.
Satz 1 Nummer 2 ist nicht anzuwenden, soweit eine Bündelung mit anderer linearer Infrastruktur beantragt wird, insbesondere in den Fällen des Absatzes 3 Satz 2. Absatz 3a Satz 2 bleibt unberührt.
(4) Für das Planfeststellungsverfahren sind die §§ 72 bis 78 des Verwaltungsverfahrensgesetzes nach Maßgabe dieses Gesetzes anzuwenden.
(5) Die Maßgaben sind entsprechend anzuwenden, soweit das Verfahren landesrechtlich durch ein Verwaltungsverfahrensgesetz geregelt ist.
________
### Response:

Getting a 403 whenever trying to use multimodal image prompting

👋 In the past, I was able to run my sample "Find Waldo example" based on your SDK, but today I only get a 403, also with different pictures. The provided token works for ordinary completions without an image prompt.

Sample code:

import os
from aleph_alpha_client import Client, Prompt, CompletionRequest, Image

client = Client(token=os.getenv("AA_TOKEN"))

#This method can use many types of objects, local path str, local path Path object or bytes array
#image_source = "/path/to/my/image.png"
#image_source = Path("/path/to/my/image.png")
image_source = "https://user-images.githubusercontent.com/1872314/261075980-cfcadfed-8792-4045-9382-55f65c13a7a3.png"

image = Image.from_image_source(image_source=image_source)

# have a second image
image_source2 = "https://user-images.githubusercontent.com/1872314/261072701-5e608b8a-3df1-4fe7-9869-24aaf2bc4a81.png"
image2 = Image.from_image_source(image_source=image_source2)


prompt = Prompt(
    items=[
        image,
        "This is Waldo",
        image2,
        "Q: Can you find Waldo from the first picture on the second picture and if so, where exactly and can you also tell me whether a table is close to Waldo? A:",
        #"Q: What kind of train do you see on the picture? Can you tell its type and its color? A:",
    ]
)
params = {
    "prompt": prompt,
    "maximum_tokens": 128,
    "stop_sequences": [],
    "temperature": 0.5,
    #"minimum_tokens": 16
}
request = CompletionRequest(**params)
# set python http request proxy to https://127.0.0.1:5555 by setting the environment variable HTTPS_PROXY
#os.environ["https_proxy"] = "http://localhost:5555"

response = client.complete(request=request, model="luminous-extended")
completion = response.completions[0].completion

print(completion)

client.tokenizer producing wrong number of tokens

import os
from aleph_alpha_client import Client, CompletionRequest, Prompt

text = "### INSTRUCTION:\nYou are a consultant who is highly specialized in summarizing texts. Your task is to produce a concise summary of the following newspaper article.\nWrite in full sentences and in the style of a newspaper article. Do not include any information that is not in the article.\nPlease summarize the article in at most five sentences.\n### NEWSPAPER ARTICLE:\nBundesanzeiger                          Bekanntmachung \n*210911001072*                              \n*818567* \n\nSeite 1 von 15 \n\nV4 \n\n*210911001072*                                                                                                       \n\n29. 09. 2021 12:13:07 \n\n*818567* \n\nBundesministerium \n\nfür Wirtschaft und Energie \n\nBundesministerium \n\nfür Bildung und Forschung   \n\nder Förderrichtlinie für internationale Wasserstoffprojekte \n\nim Rahmen der Nationalen Wasserstoffstrategie und des Konjunkturprogramms: \n\nCorona-Folgen bekämpfen, Wohlstand sichern, Zukunftsfähigkeit stärken \n\nBekanntmachung \n\nVom 27. September 2021 \n\n1  Präambel \nDie Bundesregierung verfolgt langfristig das Ziel der Klimaneutralität im Einklang mit den Zielen des Übereinkommens \nvon Paris, um die Erderwärmung deutlich unter 2 Grad zu halten und möglichst auf 1,5 Grad zu begrenzen. Mit der \nNovelle des Klimaschutzgesetzes setzt sich Deutschland zum Ziel bis 2045 klimaneutral zu werden und einen wich-\ntigen Beitrag zur Erreichung des europäischen Klimaschutzziels zu leisten. Dies bedeutet, dass insbesondere auch die \nsehr schwer zu vermindernden Treibhausgasemissionen, wie beispielsweise prozessbedingte Treibhausgase aus der \nIndustrie, vermieden werden müssen. Für die Vermeidung solcher Emissionen bietet Wasserstoff neue Lösungswege. \nEine erfolgreiche Energiewende bedeutet die Kombination von Versorgungssicherheit, Bezahlbarkeit und Umweltver-\nträglichkeit  mit  innovativem  und  intelligentem  Klimaschutz.  Dafür  werden  alternative  Optionen  zu  den  derzeit  noch \neingesetzten fossilen Energieträgern benötigt. Das gilt insbesondere auch für gasförmige und flüssige Energieträger, \ndie in einem  Industrieland wie Deutschland  auch langfristig  ein integraler Teil des Energiesystems bleiben werden. \nWasserstoff kommt hier eine zentrale Rolle bei der Weiterentwicklung und Vollendung der Energiewende zu. \nDabei  ist aus Sicht  der Bundesregierung allein  Wasserstoff, der auf Basis erneuerbarer Energien hergestellt  wurde \n(„grüner“ Wasserstoff), auf Dauer nachhaltig. Daher ist es Ziel der Bundesregierung, grünen Wasserstoff zu nutzen, für \ndiesen einen zügigen Markthochlauf zu unterstützen sowie entsprechende Wertschöpfungsketten − auch international \n− zu etablieren. \nUm den zukünftigen Bedarf Deutschlands an Wasserstoff und seinen Derivaten zu decken, wird der überwiegende Teil \nimportiert werden müssen. Neben der vertieften Kooperation mit EU-Staaten sollen auch in anderen Partnerländern \nProduktionsmöglichkeiten systematisch erschlossen werden. Die Bundesregierung strebt mit der Wasserstoffstrate-\ngie den Aufbau von Produktionskapazitäten und neuer, nachhaltiger Lieferketten im Ausland in enger Kooperation mit \nPartnerländern  an.  Dabei  gilt  es  sicherzustellen,  dass  lokale  Märkte  und  eine  Dekabornisierung  vor  Ort  durch  die \nProduktion von grünem Wasserstoff unterstützt werden. Dadurch werden auch Beschäftigungseffekte in Deutschland \nund in unseren Partnerländern erzeugt, die in langfristige Wachstumspfade münden. \nEntlang der gesamten Wertschöpfungskette von Wasserstoff und seinen Derivaten besteht noch erheblicher Bedarf \nnach Innovation und Skalierung, um einen internationalen Markthochlauf zu ermöglichen. Daher bedarf es einer In-\nvestitions- und Innovationsoffensive. \nBei  der  Vorbereitung  von  internationalen  Markterfolgen  ist  Forschung  und  Innovation  ein  strategisches  Element. \nFördermaßnahmen dieser Richtlinie knüpfen daher an das 7. Energieforschungsprogramm (EFP) an. \nMit dieser Förderrichtlinie wird ein Angebot zur Unterstützung von internationalen Projekten zum Aufbau von Erzeu-\ngungsanlagen von grünem Wasserstoff und seinen Derivaten sowie für die Speicherung, den Transport und die in-\ntegrierte Anwendung von Wasserstoff und von begleitenden Forschungsvorhaben im Sinne der Nationalen Wasser-\nstoffstrategie eingerichtet. \nDiese  Förderrichtlinie  schafft  einen  neuen  Rahmen  zur  zeitnahen  Förderung  vorab  genannter  Vorhaben  in  Ländern \naußerhalb  der  EU  und  den  EFTA-Staaten.  Das  Programm  unterstützt  den  Aufbau  von  industriellen  Produktions-\nanlagen,  von  Pilot-  und  Demonstrationsprojekten,  von  begleitenden  Forschungsvorhaben  sowie  begleitenden  bzw. \nvorbereitenden  wissenschaftlichen  Analysen  und  Studien.  Das  BMWi1  und  das  BMBF2  berücksichtigen  mit  diesen \nFörderoptionen die unterschiedlichen Finanzierungsbedürfnisse antragsberechtigter Institutionen und setzen die be-\nwährte Ressortarbeitsteilung im Rahmen des 7. EFP um. \n\n1  BMWi = Bundesministerium für Wirtschaft und Energie \n2  BMBF = Bundesministerium für Bildung und Forschung \n\n\x0cBundesanzeiger                          Bekanntmachung \n*210911001072*                              \n*818567* \n\nSeite 2 von 15 \n\nV4 \n\n*210911001072*                                                                                                       \n\n29. 09. 2021 12:13:07 \n\n*818567* \n\n2  Rechtsgrundlagen \nDer Bund gewährt Förderungen auf Grundlage dieser Richtlinie und nach Maßgabe insbesondere folgender Regelun-\ngen in der jeweils gültigen Fassung:  \n– §§ 23 und 44 der Bundeshaushaltsordnung (BHO) sowie die hierzu erlassenen Allgemeinen Verwaltungsvorschrif-\n\nten;   \n\n–  Artikel 25, 28, 36 und 41 der Verordnung (EU) Nr. 651/2014 vom 17. Juni 2014 zur Feststellung der Vereinbarkeit \nbestimmter  Gruppen  von  Beihilfen  mit  dem  Binnenmarkt  in  Anwendung  der  Artikel  107  und  108  des  Vertrags \nüber die Arbeitsweise der Europäischen Union, zuletzt geändert durch Verordnung (EU) 2020/972 vom 2. Juli 2020 \n(ABl. L 215 vom 7.7.2020, S. 3) (Allgemeine Gruppenfreistellungsverordnung − AGVO);   \n\n–  Verordnung  (EU)  Nr.  517/2014  des  Europäischen  Parlaments  und  des  Rates  vom  16.  April  2014  über  fluorierte \n\nTreibhausgase und zur Aufhebung der Verordnung (EG) Nr. 842/2006. \n\nEin Anspruch auf Gewährung einer Zuwendung besteht nicht. Vielmehr entscheidet die Bewilligungsbehörde aufgrund \nihres pflichtgemäßen Ermessens im Rahmen der verfügbaren Haushaltsmittel. Für die Bewilligung, Auszahlung und \nAbrechnung der Zuwendung sowie für den Nachweis und die Prüfung der Verwendung und die gegebenenfalls er-\nforderliche Aufhebung des Zuwendungsbescheids und die Rückforderung der gewährten Zuwendung gelten die §§ 48 \nbis 49a des Verwaltungsverfahrensgesetzes (VwVfG), die §§ 23, 44 BHO und die hierzu erlassenen Allgemeinen Ver-\nwaltungsvorschriften  soweit  nicht  in  diesen  Förderrichtlinien  Abweichungen  von  den  Allgemeinen  Verwaltungs-\nvorschriften zugelassen worden sind. \nDer Bundesrechnungshof ist gemäß den §§ 91, 100 BHO zur Prüfung berechtigt. Ebenfalls zur Prüfung berechtigt sind \nje nach Modul das BMWi bzw. das BMBF als Zuwendungsgeber, die Prüforgane der Europäischen Union sowie der \nbeauftragte  Projektträger  und  Beauftragte  nach  Nummer  8.1  ANBest-P-Kosten  bzw.  Verwaltungsvorschrift  Num-\nmer 11.1 zu § 44 BHO. \n\n3  Begriffsbestimmungen  \n– Derivate  im  Sinne  dieser  Richtlinie  sind  auf  grünem  Wasserstoff  basierende,  gasförmige,  oder  flüssige  Energie-\n\nträger; hierzu zählen unter anderem Methan, Ammoniak, Methanol, Ottokraftstoff, Diesel und Kerosin.   \n\n–  Grüner Wasserstoff im Sinne dieser Richtlinie bezeichnet Wasserstoff, der per Elektrolyse aus Wasser erzeugt wird. \nDer für die Elektrolyse benötigte Strom muss auf Basis erneuerbarer Energien erzeugt werden. Dabei wird bei der \nBestimmung der Eigenschaft als erneuerbar das Begriffsverständnis in § 3 Nummer 21 des Erneuerbare-Energien- \nGesetzes auf den ausländischen Sachverhalt übertragen.   \n\n–  Investitionskosten im Sinne dieser Richtlinie umfassen die Kosten für eine Investition in materielle und immaterielle \nVermögenswerte  (zum  Beispiel  Patente,  Konzessionen)  ohne  Umsatzsteuer  (sofern  der  Antragsteller  nicht  vor-\nsteuerabzugsberechtigt  ist:  inklusive  Umsatzsteuer)  und  müssen  in  unmittelbarem  Zusammenhang  mit  den  ge-\nförderten  Maßnahmen  (Erzeugungsanlagen  von  grünem  Wasserstoff  und  Anlagen  zur  Herstellung  von  Derivaten \nsowie Projekte zur Speicherung, Transport und integrierten Anwendung von Wasserstoff) stehen.\n### CONCISE SUMMARY:"

client = Client(token=os.getenv("ALEPH_ALPHA_API_KEY"))

model = "luminous-supreme-control"
tokenizer = client.tokenizer(model)

tokens = tokenizer.encode(text)
print(f"number tokens: {len(tokens.ids)}")

prompt = Prompt.from_text(text)
request = CompletionRequest(
    prompt=prompt,
)
response = client.complete(request, model=model)
print(response.completions[0].completion)

running the above code I get:

number tokens: 1990

but then

ValueError: (400, '{"error":"Task requires a context size of 2054 tokens. This is longer than the model\'s maximum context length of 2048. To reduce the context size you would typically consider using a smaller prompt or limit the number of completion tokens.","code":"PROMPT_TOO_LONG"}')

Why does the numbers of tokens not match?

Consider using Pydantic as a dependency?

I think from both the user as well as developer perspective, it would make sense to use Pydantic (https://docs.pydantic.dev/latest/) for the request and response models of the client. This will give users the benefit of runtime validation and more meaningful error tracebacks. For developers it will reduce the amount of boiler plate code required for example for JSON encoding and decoding.

Migrate Q&A app from OpenAI to Aleph-Alpha

Hello, I hope it is ok if I ask this here. I am testing if Aleph-Alpha can provide a similar quality of answers than OpenAI. We use their client to make queries to our project database.

First, I did a basic comparison test and the response times from Aleph-Alpha were significantly lower. So far. so good.

image

Then I tried to use AA’s QaRequest class passing as argument just one of our one of our documents. The results were not so satisfying. The response time is higher and the answer is not so explanatory as I would like. Can I get better results? Is it possible to choose a certain model with the QaRequest class so the answer is a bit more detailed? Should I rather try to carry out a normal completion request sending the related text fragments as part of the instruction? How would the prompt string look like?

Aleph-Alpha QaRequest

image

Our App based on OpenAI’s gpt-3.5

image

Thanks for your great work!

List of available models and parameters

Where can i find a list of all available models and their respective maximum input tokens?

I am looking for names i can pass to the client.complete function. Furthermore i want to create an assert which ensures me that the request will be safe within the token length.

from aleph_alpha_client import Client, CompletionRequest
client = Client(token=os.getenv("AA_TOKEN"))
request = CompletionRequest(prompt='What is green?', maximum_tokens=100)
for model_name in model_name_list:
    #todo: assert my_token_length_check(request.get_prompt()), f"Input to long for {model_name}"
    response = client.complete(request=request, model=model_name)
    completion = response.completions[0].completion
    print(completion)

Client not working in Google Colab due to python Versioning

Issue:

The aleph-alpha-client is currently not working in a google colab environment.
While the client is installable, when importing the client with embeddings, an import error occurs:

[/usr/local/lib/python3.7/dist-packages/aleph_alpha_client/embedding.py](https://localhost:8080/#) in <module>
      1 from enum import Enum
----> 2 from typing import (
      3     Any,
      4     Dict,
      5     List,

ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)

This seems to be an issue with Colab running on 3.7 and "typing" requiring 3.8.

Steps to reproduce:

  • Open Colab
  • run:
!pip install aleph-alpha-client
from aleph_alpha_client import AlephAlphaModel, AlephAlphaClient, CompletionRequest, Prompt

Aleph Alpha - Guardrails implementation

Dear All,

I try to use Guardrails with Aleph Alpha (LLM). My intention is to add guardrails to a LangChain chain. My first idea was to implement Nvidia Nemo Guardrails with Aleph Alpha. I am still facing with some issues so I have created a ticket at Nvidia. Do you have any best practices / suggestions for Guardrails implementation, like other solution or provider? I would interested in input-level, system-level and output-level mitigations.

See example here: https://github.com/NVIDIA/NeMo-Guardrails

Thanks and Regards,
Robert

Feature request, Image.from_image

Is your feature request related to a problem? Please describe.

When generating the embeddings for image data, I faced the problem of having to use two different methods for parsing  the url and local system path paths linking to images.

At the moment I'm using the external package called validators to verify whether a str is a valid url path, and if it is, I assume that I should be using the ImagePrompt.from_url function, but it adds additional, unnecessary complexity to my code and is pretty annoying.

          if validators.url(item["value"]):
              request_dict = build_request_dict(
                  request_object=SemanticEmbeddingRequest(
                      prompt=Prompt.from_image(
                          ImagePrompt.from_url(item["value"])
                      ),
                      representation=SemanticRepresentation.Document,
                      compress_to_size=128,
                  ),
                  model="luminous-base",
              )
          else:
              request_dict = build_request_dict(
                  request_object=SemanticEmbeddingRequest(
                      prompt=Prompt.from_image(
                          ImagePrompt.from_file(item["value"])
                      ),
                      representation=SemanticRepresentation.Document,
                      compress_to_size=128,
                  ),
                  model="luminous-base",
              )

Maybe a good idea would be to include the additional method from_image that would deal with figuring out what exact data type is sent to it, so that users don't have to bother with that and they could have a single software solution for various types of input images (url, path, nd.array, PIL.Image, byte array, etc.)

Suggested solution

The potential solution could be something similar to what streamlit has done

def image_to_url(
    image: AtomicImage,
  
  width: int,
    clamp: bool,
    channels: Channels,
    output_format: ImageFormatOrAuto,
    image_id: str,
) -> str:
    """Return a URL that an image can be served from.
    If `image` is already a URL, return it unmodified.
    Otherwise, add the image to the MediaFileManager and return the URL.
    (When running in "raw" mode, we won't actually load data into the
    MediaFileManager, and we'll return an empty URL.)
    """

    image_data: bytes

    # Strings
    if isinstance(image, str):
        # If it's a url, return it directly.
        try:
            p = urlparse(image)
            if p.scheme:
                return image
        except UnicodeDecodeError:
            # If the string runs into a UnicodeDecodeError, we assume it is not a valid URL.
            pass

        # Otherwise, try to open it as a file.
        try:
            with open(image, "rb") as f:
                image_data = f.read()
        except Exception:
            # When we aren't able to open the image file, we still pass the path to
            # the MediaFileManager - its storage backend may have access to files
            # that Streamlit does not.
            mimetype, _ = mimetypes.guess_type(image)
            if mimetype is None:
                mimetype = "application/octet-stream"

            url = runtime.get_instance().media_file_mgr.add(image, mimetype, image_id)
            caching.save_media_data(image, mimetype, image_id)
            return url

    # PIL Images
    elif isinstance(image, (ImageFile.ImageFile, Image.Image)):
        format = _validate_image_format_string(image, output_format)
        image_data = _PIL_to_bytes(image, format)

    # BytesIO
    # Note: This doesn't support SVG. We could convert to png (cairosvg.svg2png)
    # or just decode BytesIO to string and handle that way.
    elif isinstance(image, io.BytesIO):
        image_data = _BytesIO_to_bytes(image)

    # Numpy Arrays (ie opencv)
    elif isinstance(image, np.ndarray):
        image = _clip_image(
            _verify_np_shape(image),
            clamp,
        )

        if channels == "BGR":
            if len(image.shape) == 3:
                image = image[:, :, [2, 1, 0]]
            else:
                raise StreamlitAPIException(
                    'When using `channels="BGR"`, the input image should '
                    "have exactly 3 color channels"
                )

        # Depending on the version of numpy that the user has installed, the
        # typechecker may not be able to deduce that indexing into a
        # `npt.NDArray[Any]` returns a `npt.NDArray[Any]`, so we need to
        # ignore redundant casts below.
        image_data = _np_array_to_bytes(
            array=cast("npt.NDArray[Any]", image),  # type: ignore[redundant-cast]
            output_format=output_format,
        )

    # Raw bytes
    else:
        image_data = image

    # Determine the image's format, resize it, and get its mimetype
    image_format = _validate_image_format_string(image_data, output_format)
    image_data = _ensure_image_size_and_format(image_data, width, image_format)
    mimetype = _get_image_format_mimetype(image_format)

    if runtime.exists():
        url = runtime.get_instance().media_file_mgr.add(image_data, mimetype, image_id)
        caching.save_media_data(image_data, mimetype, image_id)
        return url
    else:
        # When running in "raw mode", we can't access the MediaFileManager.
        return ""

API not accepting `pooling` to be `null` in Embedding function

The API itself doesn't allow null to be a valid input for pooling.
This is in contradiction to the docs found at https://docs.aleph-alpha.com/api/#/paths/~1embed/post

pooling | Array of strings or null
Pooling operation to use. No pooling is used (an embedding per input token is returned) if None.

Example cURL-command:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {...}" -d '{"model": "luminous-base", "prompt": "This issue will be fixed.", "layers": [-1], "pooling": null}' https://api.aleph-alpha.com/embed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.