Ab sgcWebSockets 2023.3.0 wird die OpenAI-API vollständig unterstützt.
Die OpenAI-API lässt sich auf praktisch jede Aufgabe anwenden, die das Verstehen oder Erzeugen von natürlicher Sprache, Code oder Bildern umfasst. OpenAI bietet eine Reihe von Modellen mit unterschiedlich starker Leistung, die für verschiedene Aufgaben geeignet sind, sowie die Möglichkeit, eigene Modelle per Fine-Tuning zu trainieren. Diese Modelle lassen sich für alles einsetzen – von der Inhaltsgenerierung bis hin zur semantischen Suche und Klassifikation.
Authentifizierung
Die OpenAI-API verwendet API-Keys zur Authentifizierung. Rufe deine API-Keys-Seite auf, um den API-Key abzurufen, den du in deinen Anfragen verwendest.
Denk daran, dass dein API-Key geheim ist! Gib ihn nicht an andere weiter und stelle ihn nicht in Client-Code (Browsern, Apps) bereit. Produktionsanfragen müssen über deinen eigenen Backend-Server geroutet werden, auf dem der API-Key sicher aus einer Umgebungsvariable oder einem Key-Management-Service geladen werden kann.Dieser API-Key muss in der Eigenschaft OpenAIOptions.ApiKey der Komponente konfiguriert werden. Optional kannst du für Nutzer, die mehreren Organisationen angehören, in der Eigenschaft OpenAIOptions.Organization deine Organisation setzen, falls dein Konto zu einer Organisation gehört.
OpenAI-Modelle
Sobald der API-Key konfiguriert ist, findest du unten eine Liste der verfügbaren Funktionen zur Interaktion mit der OpenAI-API.
ModelsListe und beschreibe die verschiedenen in der API verfügbaren Modelle.
- GetModels: Listet die derzeit verfügbaren Modelle auf und liefert grundlegende Informationen zu jedem Modell wie Owner und Verfügbarkeit.
- GetModel: Ruft eine Modell-Instanz ab und liefert grundlegende Informationen zum Modell wie Owner und permissioning.
- Model: Die ID des Modells, das für diese Anfrage verwendet werden soll
Completions
Auf Basis eines Prompts gibt das Modell eine oder mehrere vorhergesagte Completions zurück und kann zusätzlich für jede Position die Wahrscheinlichkeiten alternativer Tokens liefern.
- CreateCompletion: Erstellt eine Completion für den angegebenen Prompt und die Parameter
- Model: ID des zu verwendenden Modells. Mit der List-Models-API kannst du alle verfügbaren Modelle einsehen, oder schau dir unsere Modellübersicht für Beschreibungen an.
- Prompt: Der Prompt, für den Completions erzeugt werden sollen.
Chat
Auf Basis eines Chat-Gesprächs gibt das Modell eine Chat-Completion-Antwort zurück.
- Model: ID des zu verwendenden Modells. Rufe GetModels auf, um eine Liste aller von der Chat-API unterstützten Modelle zu erhalten.
- Message: Die Nachricht, für die Chat-Completions erzeugt werden sollen.
- Role: standardmäßig user, andere Optionen sind: system, assistant.
Edits
Auf Basis eines Prompts und einer Anweisung gibt das Modell eine bearbeitete Version des Prompts zurück.
- CreateEdit: Erstellt ein neues Edit für die angegebene Eingabe, Anweisung und Parameter.
- Model: ID des zu verwendenden Modells. Mit diesem Endpunkt kannst du text-davinci-edit-001 oder code-davinci-edit-001 verwenden.
- Instruction: Die Anweisung, die dem Modell sagt, wie der Prompt bearbeitet werden soll.
- Input: (optional) Der Eingabetext, der als Ausgangspunkt für die Bearbeitung dient.
Auf Basis eines Prompts und/oder eines Eingabebilds erzeugt das Modell ein neues Bild.
- CreateImage: Erstellt ein Bild aus einem Prompt.
- Prompt: Eine Textbeschreibung des gewünschten Bilds bzw. der gewünschten Bilder. Die maximale Länge beträgt 1000 Zeichen.
- CreateImageEdit: Erstellt ein bearbeitetes oder erweitertes Bild aus einem Originalbild und einem Prompt.
- Image: Das zu bearbeitende Bild. Muss eine gültige PNG-Datei sein, kleiner als 4 MB und quadratisch. Wird keine Maske angegeben, muss das Bild Transparenz enthalten, die als Maske verwendet wird.
- Prompt: Eine Textbeschreibung des gewünschten Bilds. Die maximale Länge beträgt 1000 Zeichen.
- CreateImageVariations: Erstellt eine Variation eines vorhandenen Bilds.
- Image: Das Bild, das als Grundlage für die Variation(en) dient. Muss eine gültige PNG-Datei sein, kleiner als 4 MB und quadratisch.
Embeddings
Erhalte eine Vektorrepräsentation einer Eingabe, die von Machine-Learning-Modellen und Algorithmen leicht verarbeitet werden kann.
- CreateEmbeddings: Erstellt einen Embedding-Vektor, der den Eingabetext repräsentiert.
- Model: ID des zu verwendenden Modells.
- Input: Eingabetext, für den Embeddings erzeugt werden sollen.
Audio
Wandle Audio in Text um.
- CreateTranscriptionFromFile: Transkribiert Audio aus einer Datei in die Eingabesprache
- Model: ID des zu verwendenden Modells. Derzeit ist nur whisper-1 verfügbar.
- Filename: Die zu transkribierende Audiodatei in einem der folgenden Formate: mp3, mp4, mpeg, mpga, m4a, wav oder webm.
- CreateTranscription: Nimmt X Sekunden Audio auf und transkribiert es.
- Model: ID des zu verwendenden Modells. Derzeit ist nur whisper-1 verfügbar.
- Time: Zeit in Millisekunden, standardmäßig 10 Sekunden.
- CreateTranslationFromFile: Übersetzt Audio aus einer Datei ins Englische.
- Model: ID des zu verwendenden Modells. Derzeit ist nur whisper-1 verfügbar.
- Filename: Die zu übersetzende Audiodatei in einem der folgenden Formate: mp3, mp4, mpeg, mpga, m4a, wav oder webm.
- CreateTranslation: Nimmt X seocnds Audio auf und übersetzt es.
- Model: ID des zu verwendenden Modells. Derzeit ist nur whisper-1 verfügbar.
- Time: Zeit in Millisekunden, standardmäßig 10 Sekunden.
Files
Files dienen dazu, Dokumente hochzuladen, die mit Funktionen wie Fine-Tuning verwendet werden können.
- ListFiles: Gibt eine Liste der Dateien zurück, die zur Organisation des Nutzers gehören.
- UploadFile: Lade eine Datei mit Dokumenten hoch, die über verschiedene Endpunkte/Funktionen verwendet werden kann. Derzeit dürfen alle von einer Organisation hochgeladenen Dateien zusammen bis zu 1 GB groß sein.
- Filename: Name der hochzuladenden JSON-Lines-Datei. Ist der Purpose auf "fine-tune" gesetzt, ist jede Zeile ein JSON-Eintrag mit den Feldern "prompt" und "completion", die deine Trainingsbeispiele darstellen.
- Purpose: Der vorgesehene Zweck der hochgeladenen Dokumente. Verwende "fine-tune" für Fine-Tuning.
- DeleteFile: Löscht eine Datei.
- FileId: Die ID der Datei, die für diese Anfrage verwendet werden soll
- RetrieveFile: Gibt Informationen zu einer bestimmten Datei zurück.
- FileId: Die ID der Datei, die für diese Anfrage verwendet werden soll
- RetrieveFileContent: Gibt den Inhalt der angegebenen Datei zurück
- FileId: Die ID der Datei, die für diese Anfrage verwendet werden soll.
Fine-Tunes
Verwalte Fine-Tuning-Jobs, um ein Modell an deine spezifischen Trainingsdaten anzupassen.
- CreateFineTune: Erstellt einen Job, der ein angegebenes Modell auf Basis eines bestimmten dataset per Fine-Tuning trainiert. Die Antwort enthält Details zum eingereihten Job, inklusive Jobstatus und Namen der per Fine-Tuning erzeugten Modelle, sobald der Job abgeschlossen ist.
- TrainingFile: Die ID einer hochgeladenen Datei mit den Trainingsdaten.
- ListFineTunes: Liste die Fine-Tuning-Jobs deiner Organisation auf
- RetrieveFineTune: Liefert Informationen zum Fine-Tune-Job.
- FineTuneId: Die ID des Fine-Tune-Jobs
- CancelFineTune: Bricht einen Fine-Tune-Job sofort ab.
- FineTuneId: Die ID des Fine-Tune-Jobs
- ListFineTuneEvents: Erhalte feingranulare Statusupdates zu einem Fine-Tune-Job.
- FineTuneId: Die ID des Fine-Tune-Jobs
- DeleteFineTuneModel: Löscht ein per Fine-Tuning erzeugtes Modell. Dazu brauchst du in deiner Organisation die Owner-Rolle.
- Model: Das zu löschende Modell.
Moderations
Gibt für einen Eingabetext aus, ob das Modell ihn als Verstoß gegen die Content Policy von OpenAI einstuft.
- CreateModeration: Klassifiziert, ob ein Text gegen die Content Policy von OpenAI verstößt
- Input: Der zu klassifizierende Eingabetext
OpenAI-Beispiele
Unten findest du einige Beispiele von Delphi-Anwendungen, die die OpenAI-API nutzen
2. OpenAI Transcription Delphi Client
3. Translate OpenAI Delphi Client
4. Image Generator OpenAI Delphi Client
Unten findest du einen Beispiel-OpenAI-API-Client für Windows, gebaut mit der Delphi-sgcWebSockets-Bibliothek, der die wichtigsten Methoden der API zeigt.
