Ein minimaler und einfühlsamer OpenAI -Client, der durch Fetch betrieben wird.
Leider holen die offiziellen OpenAI -Pakete auf problematische Weise und sind ziemlich aufgebläht.
openai-fetch in Betracht zu ziehen:openai-fetch ist ~ 14 kb und openai ~ 152 KB istopenai -Paket, wenn:npm install openai-fetch Dieses Paket erfordert node >= 18 oder eine Umgebung mit fetch .
Dieses Paket exportiert ESM. Wenn Ihr Projekt CommonJs verwendet, sollten Sie auf ESM umstellen oder die Funktion Dynamic import() verwenden.
import { OpenAIClient } from 'openai-fetch' ;
const client = new OpenAIClient ( { apiKey : '<your api key>' } ) ; Der apiKey ist optional und wird aus process.env.OPENAI_API_KEY gelesen, falls vorhanden.
Die API folgt OpenAI sehr genau, sodass ihre Referenzdokumentation im Allgemeinen verwendet werden kann. Alles ist stark eingegeben, sodass Sie wissen, ob etwas anders ist, sobald TypeScript Ihren Code analysiert.
// Generate a single chat completion
client . createChatCompletion ( params : ChatParams ) : Promise < ChatResponse > ;
// Stream a single completion via a ReadableStream
client . streamChatCompletion ( params : ChatStreamParams ) : Promise < ChatStreamResponse > ;
// Generate one or more completions
client . createCompletions ( params : CompletionParams ) : Promise < CompletionResponse > ;
// Stream a single completion via a ReadableStream
client . streamCompletion ( params : CompletionStreamParams ) : Promise < CompletionStreamResponse > ;
// Generate one or more embeddings
client . createEmbeddings ( params : EmbeddingParams ) : Promise < EmbeddingResponse >
// Checks for potentially harmful content
client . createModeration ( params : ModerationParams ) : Promise < ModerationResponse >
// Text-to-Speech
client . createSpeech ( params : SpeechParams ) : Promise < SpeechResponse >Die Typdefinitionen sind über Tsserver durchgesetzt und können hier gefunden werden: Typdefinitionen.
MIT © Dexa