Da sgcWebSockets 2023.3.0 l'API OpenAI è pienamente supportata.
L'API OpenAI può essere applicata praticamente a qualsiasi compito che comporti la comprensione o la generazione di linguaggio naturale, codice o immagini. OpenAI offre una gamma di modelli con diversi livelli di potenza adatti a compiti diversi, oltre alla possibilità di fare fine-tuning di modelli personalizzati. Questi modelli possono essere usati per tutto, dalla generazione di contenuti alla ricerca semantica e alla classificazione.
Autenticazione
L'API OpenAI usa API key per l'autenticazione. Visita la tua pagina API Keys per recuperare l'API key da usare nelle tue richieste.
Ricorda che la tua API key è un segreto! Non condividerla con altri e non esporla in nessun codice lato client (browser, app). Le richieste di produzione devono essere instradate tramite il tuo backend, dove la tua API key può essere caricata in modo sicuro da una variabile d'ambiente o da un servizio di gestione chiavi.Questa API Key deve essere configurata nella proprietà OpenAIOptions.ApiKey del componente. Facoltativamente, per gli utenti che appartengono a più organizzazioni, puoi impostare la tua Organization nella proprietà OpenAIOptions.Organization se il tuo account appartiene a un'organizzazione.
Modelli OpenAI
Una volta configurata l'API Key, qui sotto trovi un elenco di funzioni disponibili per interagire con l'API OpenAI.
ModelsElenca e descrive i vari modelli disponibili nell'API.
- GetModels: Elenca i modelli attualmente disponibili e fornisce informazioni di base su ciascuno come proprietario e disponibilita'.
- GetModel: Recupera un'istanza di modello, fornendo informazioni di base sul modello come proprietario e permissioning.
- Model: L'ID del modello da utilizzare per questa richiesta
Completions
Dato un prompt, il modello restituisce uno o piu' completamenti previsti e puo' anche restituire le probabilita' di token alternativi in ogni posizione.
- CreateCompletion: Crea un completamento per il prompt e i parametri forniti
- Model: ID del modello da utilizzare. Puoi usare l'API List models per vedere tutti i modelli disponibili, o consultare la panoramica dei modelli per le relative descrizioni.
- Prompt: Il prompt per generare i completamenti.
Chat
Data una conversazione chat, il modello restituisce una risposta di chat completion.
- Model: ID del modello da utilizzare. Chiama GetModels per ottenere l'elenco di tutti i modelli supportati dall'API Chat.
- Message: Il messaggio per cui generare i completamenti della chat.
- Role: di default user, altre opzioni: system, assistant.
Edits
Dato un prompt e un'istruzione, il modello restituisce una versione modificata del prompt.
- CreateEdit: Crea una nuova edit per l'input, l'istruzione e i parametri forniti.
- Model: ID del modello da utilizzare. Puoi usare i modelli text-davinci-edit-001 o code-davinci-edit-001 con questo endpoint.
- Instruction: L'istruzione che indica al modello come modificare il prompt.
- Input: (facoltativo) Il testo di input da utilizzare come punto di partenza per la modifica.
Dato un prompt e/o un'immagine di input, il modello genera una nuova immagine.
- CreateImage: Crea un'immagine a partire da un prompt.
- Prompt: Una descrizione testuale dell'immagine o delle immagini desiderate. La lunghezza massima e' 1000 caratteri.
- CreateImageEdit: Crea un'immagine modificata o estesa a partire da un'immagine originale e un prompt.
- Image: L'immagine da modificare. Deve essere un file PNG valido, inferiore a 4MB e quadrato. Se la mask non viene fornita, l'immagine deve avere trasparenza, che sara' utilizzata come mask.
- Prompt: Una descrizione testuale dell'immagine o delle immagini desiderate. La lunghezza massima e' 1000 caratteri.
- CreateImageVariations: Crea una variazione di un'immagine.
- Image: L'immagine da utilizzare come base per la variazione o le variazioni. Deve essere un file PNG valido, inferiore a 4MB e quadrato.
Embeddings
Ottiene una rappresentazione vettoriale di un input, facilmente consumabile da modelli e algoritmi di machine learning.
- CreateEmbeddings: Crea un vettore di embedding che rappresenta il testo di input.
- Model: ID del modello da utilizzare.
- Input: Testo di input di cui ottenere gli embeddings.
Audio
Trasforma l'audio in testo.
- CreateTranscriptionFromFile: Trascrive l'audio nella lingua di input a partire da un filename
- Model: ID del modello da utilizzare. Al momento e' disponibile solo whisper-1.
- Filename: Il file audio da trascrivere, in uno dei formati: mp3, mp4, mpeg, mpga, m4a, wav o webm.
- CreateTranscription: Registra audio per X secondi e lo trascrive.
- Model: ID del modello da utilizzare. Al momento e' disponibile solo whisper-1.
- Time: tempo in millisecondi, di default 10 secondi.
- CreateTranslationFromFile: Traduce l'audio in inglese.
- Model: ID del modello da utilizzare. Al momento e' disponibile solo whisper-1.
- Filename: Il file audio da tradurre, in uno dei formati: mp3, mp4, mpeg, mpga, m4a, wav o webm.
- CreateTranslation: Registra audio per X seocnds e lo traduce.
- Model: ID del modello da utilizzare. Al momento e' disponibile solo whisper-1.
- Time: tempo in millisecondi, di default 10 secondi.
Files
I file servono per caricare documenti utilizzabili con funzionalita' come il Fine-tuning.
- ListFiles: Restituisce l'elenco dei file appartenenti all'organizzazione dell'utente.
- UploadFile: Carica un file contenente documenti utilizzabili in vari endpoint/funzionalita'. Attualmente la dimensione totale dei file caricati da un'organizzazione puo' arrivare fino a 1 GB.
- Filename: Nome del file JSON Lines da caricare. Se il purpose e' impostato a "fine-tune", ogni riga e' un record JSON con i campi "prompt" e "completion" che rappresentano gli esempi di training.
- Purpose: Lo scopo previsto dei documenti caricati. Usa "fine-tune" per il Fine-tuning.
- DeleteFile: Elimina un file.
- FileId: L'ID del file da utilizzare per questa richiesta
- RetrieveFile: Restituisce informazioni su un file specifico.
- FileId: L'ID del file da utilizzare per questa richiesta
- RetrieveFileContent: Restituisce il contenuto del file specificato
- FileId: L'ID del file da utilizzare per questa richiesta.
Fine-Tunes
Gestisce i job di fine-tuning per adattare un modello ai tuoi dati di training specifici.
- CreateFineTune: Crea un job che esegue il fine-tuning di un modello specificato a partire da un dataset. La risposta include i dettagli del job enqueued, lo stato e il nome del modello fine-tuned una volta completato.
- TrainingFile: L'ID di un file caricato che contiene i dati di training.
- ListFineTunes: Elenca i job di fine-tuning della tua organizzazione
- RetrieveFineTune: Recupera informazioni sul job di fine-tune.
- FineTuneId: L'ID del job di fine-tune
- CancelFineTune: Annulla immediatamente un job di fine-tune.
- FineTuneId: L'ID del job di fine-tune
- ListFineTuneEvents: Recupera aggiornamenti di stato dettagliati per un job di fine-tune.
- FineTuneId: L'ID del job di fine-tune
- DeleteFineTuneModel: Elimina un modello fine-tuned. Devi avere il ruolo Owner nella tua organizzazione.
- Model: Il modello da eliminare.
Moderations
Dato un testo di input, restituisce se il modello lo classifica come violazione della content policy di OpenAI.
- CreateModeration: Classifica se un testo viola la Content Policy di OpenAI
- Input: Il testo di input da classificare
Esempi OpenAI
Qui sotto trovi alcuni esempi di applicazioni costruite in Delphi usando l'API OpenAI
2. OpenAI Transcription Delphi Client
3. Translate OpenAI Delphi Client
4. Image Generator OpenAI Delphi Client
Qui sotto trovi un client API OpenAI di esempio compilato per Windows usando la libreria Delphi sgcWebSockets, che mostra i metodi principali dell'API.
