UNPKG

@genkit-ai/compat-oai

Version:

Genkit AI framework plugin for OpenAI APIs.

100 lines 3.02 kB
import { genkitPluginV2 } from "genkit/plugin"; import OpenAI from "openai"; import { compatOaiModelRef, defineCompatOpenAIModel } from "./model.mjs"; import { toModelName } from "./utils.mjs"; import { SpeechConfigSchema, TranscriptionConfigSchema, compatOaiSpeechModelRef, compatOaiTranscriptionModelRef, defineCompatOpenAISpeechModel, defineCompatOpenAITranscriptionModel } from "./audio.mjs"; import { defineCompatOpenAIEmbedder } from "./embedder.mjs"; import { ImageGenerationCommonConfigSchema, compatOaiImageModelRef, defineCompatOpenAIImageModel } from "./image.mjs"; import { ChatCompletionCommonConfigSchema, compatOaiModelRef as compatOaiModelRef2, defineCompatOpenAIModel as defineCompatOpenAIModel2, openAIModelRunner } from "./model.mjs"; import { TranslationConfigSchema, compatOaiTranslationModelRef, defineCompatOpenAITranslationModel } from "./translate.mjs"; const openAICompatible = (options) => { let listActionsCache; var client; function createClient() { if (client) return client; const { apiKey, ...restofOptions } = options; client = new OpenAI({ ...restofOptions, apiKey: apiKey === false ? "placeholder" : apiKey }); return client; } return genkitPluginV2({ name: options.name, async init() { if (!options.initializer) { return []; } return await options.initializer(createClient()); }, async resolve(actionType, actionName) { if (options.resolver) { return await options.resolver(createClient(), actionType, actionName); } else { if (actionType === "model") { return defineCompatOpenAIModel({ name: toModelName(actionName, options.name), client: createClient(), pluginOptions: options, modelRef: compatOaiModelRef({ name: actionName, namespace: options.name }) }); } return void 0; } }, list: ( // Don't attempt to list models if apiKey set to false options.listActions && options.apiKey !== false ? async () => { if (listActionsCache) return listActionsCache; listActionsCache = await options.listActions(createClient()); return listActionsCache; } : void 0 ) }); }; var index_default = openAICompatible; export { ChatCompletionCommonConfigSchema, ImageGenerationCommonConfigSchema, SpeechConfigSchema, TranscriptionConfigSchema, TranslationConfigSchema, compatOaiImageModelRef, compatOaiModelRef2 as compatOaiModelRef, compatOaiSpeechModelRef, compatOaiTranscriptionModelRef, compatOaiTranslationModelRef, index_default as default, defineCompatOpenAIEmbedder, defineCompatOpenAIImageModel, defineCompatOpenAIModel2 as defineCompatOpenAIModel, defineCompatOpenAISpeechModel, defineCompatOpenAITranscriptionModel, defineCompatOpenAITranslationModel, openAICompatible, openAIModelRunner }; //# sourceMappingURL=index.mjs.map