UNPKG

@genkit-ai/compat-oai

Version:

Genkit AI framework plugin for OpenAI APIs.

86 lines 2.27 kB
import { GenkitError, modelActionMetadata } from "genkit"; import { logger } from "genkit/logging"; import { openAICompatible } from "../index.js"; import { defineCompatOpenAIModel } from "../model.js"; import { deepSeekModelRef, deepSeekRequestBuilder, SUPPORTED_DEEPSEEK_MODELS } from "./deepseek.js"; const resolver = async (ai, client, actionType, actionName) => { if (actionType === "model") { const modelRef = deepSeekModelRef({ name: `deepseek/${actionName}` }); defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef, requestBuilder: deepSeekRequestBuilder }); } else { logger.warn("Only model actions are supported by the DeepSeek plugin"); } }; const listActions = async (client) => { return await client.models.list().then( (response) => response.data.filter((model2) => model2.object === "model").map((model2) => { const modelRef = SUPPORTED_DEEPSEEK_MODELS[model2.id] ?? deepSeekModelRef({ name: `deepseek/${model2.id}` }); return modelActionMetadata({ name: modelRef.name, info: modelRef.info, configSchema: modelRef.configSchema }); }) ); }; function deepSeekPlugin(options) { const apiKey = options?.apiKey ?? process.env.DEEPSEEK_API_KEY; if (!apiKey) { throw new GenkitError({ status: "FAILED_PRECONDITION", message: "Please pass in the API key or set the DEEPSEEK_API_KEY environment variable." }); } return openAICompatible({ name: "deepseek", baseURL: "https://api.deepseek.com", apiKey, ...options, initializer: async (ai, client) => { Object.values(SUPPORTED_DEEPSEEK_MODELS).forEach( (modelRef) => defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef, requestBuilder: deepSeekRequestBuilder }) ); }, resolver, listActions }); } const model = (name, config) => { return deepSeekModelRef({ name: `deepseek/${name}`, config }); }; const deepSeek = Object.assign(deepSeekPlugin, { model }); var deepseek_default = deepSeek; export { deepSeek, deepSeekPlugin, deepseek_default as default }; //# sourceMappingURL=index.mjs.map