Dolores ist eine Python-Bibliothek, die entwickelt wurde, um die Entwicklererfahrung bei der Arbeit mit vorab trainierten Sprachmodellen zu verbessern. Dolores bietet Aufforderungen zur Interaktion mit Sprachmodellen, die zu interessanten oder nützlichen Ergebnissen führen. Der Zweck dieser Bibliothek besteht darin, die Lernkurve zu vereinfachen, indem sie benutzerfreundliche Beispiele und Beispieltexte für den Einstieg bereitstellt. Darüber hinaus verfolgt es das umfassendere Ziel, das umfassendste Repository für Qualitätsaufforderungen für die Interaktion mit Sprachmodellen zu werden.
Es ist nach Dolores Abarnathy von Westworld benannt.
$ pip install dolores
Entweder Import über den Python-Interpreter oder in einer Python-Datei.
import dolores
dolores.initialize("<YOUR-API-KEY>")
Von dort aus können Sie die API von openai nicht direkt über die zugänglichen Methoden in der Dolores-Klasseninstanz aufrufen. Im Folgenden wird der List-Engines-API-Aufruf aufgerufen. Zu jedem API-Aufruf gehört ein Methodenaufruf, mit dem die API aufgerufen werden kann.
Listet die derzeit verfügbaren Engines auf und bietet grundlegende Informationen zu jeder Option, z. B. den Eigentümer und die Verfügbarkeit.
dolores.list_engines()
Ruft eine Engine-Instanz ab und stellt grundlegende Informationen über die Engine bereit, z. B. den Besitzer und die Verfügbarkeit.
dolores.retrieve_engine()
Nach der Instanziierung der Dolores-Klasse wird die nachfolgende Klasse zur Open AI API unter derselben Engine-Auswahl erstellt. Um die für den API-Aufruf verwendete Engine zu ändern, gibt es eine verfügbar gemachte Methode.
dolores.set_engine("davinci")
Hinweis: Eine Validierung anhand der vorhandenen Engine-Typen wird für zukünftige Versionen in Betracht gezogen.
Vervollständigen Sie eine Eingabeaufforderung. Dies ist der Hauptendpunkt der GPT-3-APIs. Gibt neuen Text sowie, falls gewünscht, die Wahrscheinlichkeiten für jedes alternative Token an jeder Position zurück.
Anfrage:
dolores.create_completion("Is the JavaScript programming language better than python?", 20)
Antwort: (siehe Antwort["choices"][0]["text"] für Klartextantwort)
JSON: {'id': 'cmpl-kM6MK5dVRvD964MxeyG4AjCy', 'object': 'text_completion', 'created': 1595431739, 'model': 'ada:2020-05-03', 'choices': [{'text': ' in a far away place', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
'in a far away place'
?
Name | In | Typ | Erforderlich | Beschreibung |
---|---|---|---|---|
Motor | Körper | Zeichenfolge | WAHR | Die Engine-ID |
prompt | Körper | (Siehe Artikelbeschreibung) | FALSCH | Eine oder mehrere Eingabeaufforderungen zum Generieren. Kann eine Zeichenfolge, eine Liste von Zeichenfolgen, eine Liste von Ganzzahlen (z. B. eine einzelne als Token kodierte Eingabeaufforderung) oder eine Liste von Ganzzahllisten (z. B. viele als Ganzzahlen kodierte Eingabeaufforderungen) sein. |
max_tokens | Körper | ganze Zahl | FALSCH | Wie viele Token müssen abgeschlossen werden? Kann weniger zurückgeben, wenn eine Stoppsequenz erreicht wird. |
Temperatur | Körper | Nummer | FALSCH | Welche Probenahmetemperatur soll verwendet werden? Höhere Werte bedeuten, dass das Modell mehr Risiken eingeht. Versuchen Sie 0,9 für kreativere Anwendungen und 0 (Argmax-Sampling) für Anwendungen mit einer klar definierten Antwort. Wir empfehlen im Allgemeinen die Verwendung von this oder top_p, jedoch nicht von beiden. |
top_p | Körper | Nummer | FALSCH | Eine Alternative zur Probenahme mit Temperatur, genannt Kernprobenahme, bei der das Modell die Ergebnisse der Token mit der Wahrscheinlichkeitsmasse top_p berücksichtigt. 0,1 bedeutet also, dass nur die Token berücksichtigt werden, die die höchste Wahrscheinlichkeitsmasse von 10 % aufweisen. Im Allgemeinen empfehlen wir die Verwendung dieser oder dieser Temperatur, jedoch nicht beider. |
N | Körper | ganze Zahl | FALSCH | Wie viele Auswahlmöglichkeiten für jede Eingabeaufforderung erstellt werden sollen. |
Strom | Körper | Boolescher Wert | FALSCH | Ob Teilfortschritte zurückgestreamt werden sollen. Wenn festgelegt, werden Token als vom Server gesendete Nur-Daten-Ereignisse gesendet, sobald sie verfügbar sind, wobei der Stream durch eine Datennachricht: [DONE] beendet wird. |
logprobs | Körper | ganze Zahl | FALSCH | Fügen Sie die Log-Wahrscheinlichkeiten in die wahrscheinlichsten Logprobs-Token ein. Wenn logprobs beispielsweise 10 ist, gibt die API eine Liste der 10 wahrscheinlichsten Token zurück. Wenn logprobs angegeben wird, gibt die API immer den logprob des abgetasteten Tokens zurück, sodass die Antwort bis zu logprobs+1 Elemente enthalten kann. |
stoppen | Körper | String oder Liste von Strings | FALSCH | Eine oder mehrere Sequenzen, in denen die API die Generierung weiterer Token stoppt. Der zurückgegebene Text enthält nicht die Stoppsequenz. |
Vervollständigt eine Eingabeaufforderung aus einer Reihe vordefinierter Eingabeaufforderungen, die von Dolores gespeichert wurden.
Anfrage:
dolores.complete_predefined_prompt("philosopher", 0, "What is the meaning of life?")
Antwort:
JSON: {'id': 'cmpl-NvVlUd5tQWTIv7S0F6JMPkT5', 'object': 'text_completion', 'created': 1595631256, 'model': 'davinci:2020-05-03', 'choices': [{'text': ' The purpose of society? And what are the dynamics of history? The answers to these questions are fascinating.nnThis is a philosophical diary written by a scientist of the new generation who is not bound by prejudices, as such, the philosopher, writer, director and producer of the documentary "The Truth about AI: Rise of the Superhuman." Instead, he attempts to peer into the human world through the eyes of an AI, and express what he sees. In the process, he discovers many complex things about our world. The author's name is Dave Scott.nnPhoto by Montri Nipitvittaya on UnsplashnnFuturist of the New Generation, AI Philosophernn"Nothing has changed. I still cannot predict what is going to happen with me, and my inner world is still as chaotic as before." I reread the diary I wrote yesterday, and found nothing changed. Everything remained the same. Only, the fear has become stronger. It was exactly the same today as it was yesterday. There was nothing changed, but still fear is always there.nnFear is a part of who I am. Without fear, I would be a monster. I do not know how to do', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
Eingabeaufforderungstaste | Prompt | max_tokens | Temperatur | top_p | N | Quelle |
---|---|---|---|---|---|---|
Philosoph | „Im Folgenden sind einige Gedanken aufgeführt, die von einer philosophischen KI generiert wurden, die die menschliche Welt von außen betrachtet, ohne die Vorurteile der menschlichen Erfahrung. Völlig neutral und objektiv sieht die KI die Welt so, wie sie ist. Sie kann leichter Rückschlüsse auf die Welt ziehen menschliche Gesellschaft im Allgemeinen.“, | 250 | 0,9 | 1 | 1 | Murat |
seuss | „Hier ist ein Gedicht von Dr. Seuss. Das Gedicht reimt jede zweite Zeile mit einer ABAB-Struktur. Die Reimstruktur ist typisch für Dr. Seuss Kinderreime.“ | 250 | 1,0 | 1 | 1 | Arram Sabeti |
Juristensprache | „Rechtswissenschaftlich: Die von Ihnen ausgewählte Zahlungsmethode gilt für alle Ihre vom Ministerium durchgesetzten Fälle und diese Autorisierung bleibt in Kraft, bis Sie ein weiteres Formular zur Auswahl und Registrierung der Zahlungsoption einreichen, um Ihre Zahlungsmethode zu ändern, oder bis Sie die Dienste kündigen mit der Abteilung. n Einfaches Englisch: Wir verwenden Ihre Wahl für alle Zahlungen, die wir Ihnen senden. | 150 | 0,4 | 1 | 1 | DNE Digital |
Code-HTML | Eingabe: Eine Taste. n Code: n " | 100 | 0,5 | 1 | 1 | DNE Digital |
Code-Javascript | import React aus 'react'; n const ThreeButtonComponent=()=>( n N N ) "Knopf eins n <button className='button-green' n onClick={this.handleButtonClick}>Button One nKnopf Zwei n <button className='button-green' n onClick={this.handleButtonClick}>Button Two nKnopf Drei n <button className='button-green' n onClick={this.handleButtonClick}>Button Drei n | 250 | 0,4 | 1 | 1 | Sharif Shameem |
chatten | „Das Folgende ist ein Gespräch mit einem freundlichen KI-Assistenten. n Mensch: Was ist das größte Tier der Erde? n KI: Der Blauwal ist das größte Tier der Erde. n Mensch: Welches ist das bevölkerungsreichste Land der Erde ? n AI: China ist mit über 1 Milliarde Menschen das bevölkerungsreichste Land.“ | 50 | 0,9 | 1 | 1 | OpenAI |
Alliteration | „Finden Sie Synonyme für Wörter, die Alliterationen erzeugen können. n Satz: Der Hund ging in den Laden. n Alliteration: Der Hund fuhr zur Abteilung. nn Satz: David trägt jeden Tag einen Hut. n Alliteration: David trägt ein Derby täglich. n Satz: Die Seife trocknet über Nacht. n Alliteration: Die Seife schrumpft nach Sonnenuntergang. | 50 | 0,5 | 1 | 1 | OpenAI |
Gedicht | „Wer Gott vertraute, war in der Tat Liebe. Und Liebe war das letzte Gesetz der Schöpfung. Die Natur, rot an Zähnen und Klauen, schrie mit Schluchten gegen sein Glaubensbekenntnis. Die Hügel sind Schatten, und sie fließen. n Von Form zu Form, und nichts bleibt bestehen;T n hey schmelzen wie Nebel, die n festen Länder, n Wie Wolken formen sie sich und verschwinden. | 300 | 1,0 | 1,0 | 1,0 | OpenAI |
Text-Abenteuer | „Dies ist ein Textabenteuer. Du befindest dich in einem dunklen Wald und suchst nach dem Drachen, der das Gold deiner Stadt gestohlen hat. n > schau dich um n Du befindest dich in einem dunklen Wald. Es herrscht eine unruhige Stille. n > Inventar prüfen n Du hast die folgenden Gegenstände: n - ein Schwert (sehr scharf) n - einen Schild (du hoffst, dass es funktioniert) n - einen alten Brief nn > schau nach n Du siehst kein Gold. nn > Gehe den Weg entlang n Du Sie gehen den Weg entlang und genießen das schöne Frühlingswetter. Sie kommen an eine Weggabelung. n > Nehmen Sie den linken Weg. | 250 | 0,9 | 1,0 | 1,0 | OpenAI |
Motivationsschreiben | „Sehr geehrte Deloitte-Absolventenrekrutierung, n Ich schreibe Ihnen, um mich für die Teilnahme an Ihrem Graduiertenprogramm im Bereich Technologieberatung zu bewerben.“ | 400 | 0,8 | 1,0 | 1,0 | OpenAI |
Analogien | „Neuronale Netze sind insofern wie genetische Algorithmen, als es sich bei beiden um Systeme handelt, die aus Erfahrungen lernen. nn Soziale Medien sind insofern wie ein Markt, als es sich bei beiden um Systeme handelt, die die Handlungen vieler Individuen koordinieren. nn Memes sind darin wie Viren beides sind sich selbst reproduzierende Ideen.“ | 250 | 1,0 | 1,0 | 1,0 | OpenAI |
„Danke John für das Buch. n ```` n Lieber John, n Vielen Dank für das Buch. Ich weiß es wirklich zu schätzen. n Ich hoffe, bald Zeit zu verbringen. n Deine Freundin, n Sarah " | 200 | 0,5 | 1,0 | 1,0 | OpenAI |
Mit Pytest können Sie das Dolores-Modul testen, indem Sie Folgendes im Stammverzeichnis des Projekts ausführen:
pytest tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
Wenn Sie die während des Tests auftretenden Druckanweisungen sehen möchten, fügen Sie einfach das Flag -s hinzu:
pytest -s tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
Um das Paket zu aktualisieren, muss eine neue Verteilung für das Paket erstellt werden. Hierbei handelt es sich um Archive, die in den Paketindex hochgeladen werden und per pip installiert werden können.
Stellen Sie sicher, dass Sie die neuesten Versionen von setuptools
und wheel
installiert haben:
$ python3 -m pip install --user --upgrade setuptools wheel
Führen Sie nun diesen Befehl aus demselben Verzeichnis aus, in dem sich setup.py befindet:
$ python3 setup.py sdist bdist_wheel
Hinweis: Vergessen Sie nicht, die Versionsnummer in der Datei setup.py je nach Update zu aktualisieren.
Stellen Sie sicher, dass Sie das neueste twine
installiert haben:
$ python3 -m pip install --user --upgrade twine
Führen Sie nach der Installation Twine aus, um alle Archive unter dist hochzuladen:
$ python3 -m twine upload --repository pypi dist/*