Vanaf sgcWebSockets 2023.3.0 wordt de OpenAI-API volledig ondersteund.
De OpenAI-API kan worden toegepast op vrijwel elke taak die gaat over het begrijpen of genereren van natuurlijke taal, code of afbeeldingen. OpenAI biedt een spectrum aan modellen met verschillende krachtniveaus, geschikt voor verschillende taken, evenals de mogelijkheid om je eigen aangepaste modellen te fine-tunen. Deze modellen kunnen worden gebruikt voor alles van contentgeneratie tot semantisch zoeken en classificatie.
Authenticatie
De OpenAI-API gebruikt API-sleutels voor authenticatie. Bezoek je API Keys-pagina om de API-sleutel op te halen die je in je verzoeken gaat gebruiken.
Onthoud dat je API-sleutel geheim is! Deel hem niet met anderen en stel hem niet bloot aan client-side code (browsers, apps). Productieverzoeken moeten via je eigen backend-server worden geleid, waar je API-sleutel veilig kan worden geladen vanuit een omgevingsvariabele of key management-service.Deze API-sleutel moet worden geconfigureerd in de eigenschap OpenAIOptions.ApiKey van het component. Optioneel kunnen gebruikers die tot meerdere organisaties behoren hun Organization instellen in de eigenschap OpenAIOptions.Organization als hun account bij een organisatie hoort.
OpenAI-modellen
Zodra de API-sleutel is geconfigureerd, vind je hieronder een lijst met beschikbare functies om met de OpenAI-API te interacteren.
ModelsToon en beschrijf de verschillende modellen die in de API beschikbaar zijn.
- GetModels: toont de momenteel beschikbare modellen en geeft basisinformatie over elk model, zoals de eigenaar en beschikbaarheid.
- GetModel: haalt een modelinstantie op met basisinformatie over het model, zoals de eigenaar en permissies.
- Model: de ID van het model dat voor dit verzoek gebruikt moet worden
Completions
Bij een prompt geeft het model een of meer voorspelde completions terug en kan het ook de kansen op alternatieve tokens op elke positie teruggeven.
- CreateCompletion: maakt een completion aan voor de opgegeven prompt en parameters
- Model: ID van het model dat gebruikt moet worden. Je kunt de List models-API gebruiken om al je beschikbare modellen te zien, of bekijk ons Model-overzicht voor beschrijvingen.
- Prompt: de prompt om completions voor te genereren.
Chat
Bij een chatgesprek geeft het model een chat-completion-antwoord terug.
- Model: ID van het model dat gebruikt moet worden. Roep GetModels aan om een lijst te krijgen van alle modellen die door de Chat-API worden ondersteund.
- Message: het bericht waarvoor chat-completions gegenereerd moeten worden.
- Role: standaard user, andere opties zijn: system, assistant.
Edits
Bij een prompt en een instructie geeft het model een bewerkte versie van de prompt terug.
- CreateEdit: maakt een nieuwe edit aan voor de opgegeven input, instructie en parameters.
- Model: ID van het model dat gebruikt moet worden. Je kunt het model text-davinci-edit-001 of code-davinci-edit-001 met deze endpoint gebruiken.
- Instruction: de instructie die het model vertelt hoe de prompt bewerkt moet worden.
- Input: (optioneel) de invoertekst die als startpunt voor de edit gebruikt moet worden.
Bij een prompt en/of een invoerafbeelding genereert het model een nieuwe afbeelding.
- CreateImage: maakt een afbeelding op basis van een prompt.
- Prompt: een tekstbeschrijving van de gewenste afbeelding(en). De maximale lengte is 1000 tekens.
- CreateImageEdit: maakt een bewerkte of uitgebreide afbeelding op basis van een originele afbeelding en een prompt.
- Image: de te bewerken afbeelding. Moet een geldig PNG-bestand zijn, kleiner dan 4MB en vierkant. Als er geen mask is opgegeven, moet de afbeelding transparantie hebben, die als mask wordt gebruikt.
- Prompt: een tekstbeschrijving van de gewenste afbeelding(en). De maximale lengte is 1000 tekens.
- CreateImageVariations: maakt een variatie van een opgegeven afbeelding.
- Image: de afbeelding die als basis voor de variatie(s) gebruikt moet worden. Moet een geldig PNG-bestand zijn, kleiner dan 4MB en vierkant.
Embeddings
Krijg een vectorrepresentatie van een opgegeven input die eenvoudig door machine learning-modellen en algoritmen verwerkt kan worden.
- CreateEmbeddings: maakt een embedding-vector die de invoertekst vertegenwoordigt.
- Model: ID van het model dat gebruikt moet worden.
- Input: invoertekst om embeddings voor op te halen.
Audio
Zet audio om in tekst.
- CreateTranscriptionFromFile: transcribeert audio naar de invoertaal vanuit een bestandsnaam
- Model: ID van het model dat gebruikt moet worden. Momenteel is alleen whisper-1 beschikbaar.
- Filename: het audiobestand om te transcriberen, in een van deze formaten: mp3, mp4, mpeg, mpga, m4a, wav of webm.
- CreateTranscription: neemt X seconden audio op en transcribeert die.
- Model: ID van het model dat gebruikt moet worden. Momenteel is alleen whisper-1 beschikbaar.
- Time: tijd in milliseconden, standaard 10 seconden.
- CreateTranslationFromFile: vertaalt audio naar het Engels.
- Model: ID van het model dat gebruikt moet worden. Momenteel is alleen whisper-1 beschikbaar.
- Filename: het audiobestand om te vertalen, in een van deze formaten: mp3, mp4, mpeg, mpga, m4a, wav of webm.
- CreateTranslation: neemt X seconden audio op en vertaalt die.
- Model: ID van het model dat gebruikt moet worden. Momenteel is alleen whisper-1 beschikbaar.
- Time: tijd in milliseconden, standaard 10 seconden.
Files
Files worden gebruikt om documenten te uploaden die met functies zoals Fine-tuning gebruikt kunnen worden.
- ListFiles: geeft een lijst terug van bestanden die tot de organisatie van de gebruiker behoren.
- UploadFile: upload een bestand met document(en) die over verschillende endpoints/functies gebruikt kunnen worden. Momenteel kan de totale grootte van alle bestanden die door één organisatie zijn geüpload maximaal 1 GB zijn.
- Filename: naam van het JSON Lines-bestand dat geüpload moet worden. Als purpose is ingesteld op "fine-tune", is elke regel een JSON-record met de velden "prompt" en "completion" die je trainingsvoorbeelden vertegenwoordigen.
- Purpose: het beoogde doel van de geüploade documenten. Gebruik "fine-tune" voor fine-tuning.
- DeleteFile: verwijder een bestand.
- FileId: de ID van het bestand dat voor dit verzoek gebruikt moet worden
- RetrieveFile: geeft informatie terug over een specifiek bestand.
- FileId: de ID van het bestand dat voor dit verzoek gebruikt moet worden
- RetrieveFileContent: geeft de inhoud van het opgegeven bestand terug
- FileId: de ID van het bestand dat voor dit verzoek gebruikt moet worden.
Fine-Tunes
Beheer fine-tuning-jobs om een model af te stemmen op je specifieke trainingsdata.
- CreateFineTune: maakt een job aan die een opgegeven model fine-tunet vanuit een opgegeven dataset. Het antwoord bevat details van de enqueued job, inclusief jobstatus en de naam van de fine-tuned modellen zodra ze klaar zijn.
- TrainingFile: de ID van een geüpload bestand met trainingsdata.
- ListFineTunes: toont de fine-tuning-jobs van je organisatie
- RetrieveFineTune: haalt informatie op over de fine-tune-job.
- FineTuneId: de ID van de fine-tune-job
- CancelFineTune: annuleert direct een fine-tune-job.
- FineTuneId: de ID van de fine-tune-job
- ListFineTuneEvents: haal gedetailleerde statusupdates op voor een fine-tune-job.
- FineTuneId: de ID van de fine-tune-job
- DeleteFineTuneModel: verwijder een fine-tuned model. Je moet de Owner-rol in je organisatie hebben.
- Model: het model om te verwijderen.
Moderations
Bij een ingevoerde tekst geeft het model aan of het de tekst classificeert als een schending van het contentbeleid van OpenAI.
- CreateModeration: classificeert of tekst het contentbeleid van OpenAI schendt
- Input: de te classificeren invoertekst
OpenAI-voorbeelden
Hieronder vind je enkele voorbeelden van toepassingen gebouwd in Delphi met de OpenAI-API
2. OpenAI Transcription Delphi-client
3. Translate OpenAI Delphi-client
4. Image Generator OpenAI Delphi-client
Hieronder vind je een voorbeeld van een OpenAI-API-client, gebouwd voor Windows met de Delphi-sgcWebSockets-bibliotheek, die de belangrijkste methoden van de API toont.
