UNPKG

@convo-lang/convo-lang

Version:
34 lines 1.83 kB
import { secretManager } from "@iyio/common"; import { BaseOpenAiConvoCompletionService } from "../BaseOpenAiConvoCompletionService"; import { BaseOpenAiConvoConverter } from "../BaseOpenAiConvoConverter"; import { convoCompletionService, convoConversationConverterProvider } from "../convo.deps"; import { convoOpenAiInputType, convoOpenAiOutputType } from "./openai-lib"; import { defaultOpenAiChatModel, knownConvoOpenAiModels } from "./openai-models"; import { openAiApiKeyParam, openAiBaseUrlParam, openAiChatModelParam, openAiSecretsParam, openAiVisionModelParam } from "./openai-params"; export const convoOpenAiModule = (scope) => { scope.implementService(convoCompletionService, createOpenAiConvoServiceFromScope); scope.addProvider(convoConversationConverterProvider, createOpenAiConvoConverterFromScope); }; export const createOpenAiConvoServiceFromScope = (scope) => { return new BaseOpenAiConvoCompletionService({ apiKey: scope.to(openAiApiKeyParam).get(), apiBaseUrl: scope.to(openAiBaseUrlParam).get(), secretManager: scope.to(secretManager).get(), secretsName: scope.to(openAiSecretsParam).get(), inputType: convoOpenAiInputType, outputType: convoOpenAiOutputType, models: knownConvoOpenAiModels, isFallback: true, }); }; export const createOpenAiConvoConverterFromScope = (scope) => { return new BaseOpenAiConvoConverter({ chatModel: scope.to(openAiChatModelParam).get() ?? defaultOpenAiChatModel.name, visionModel: scope.to(openAiVisionModelParam).get(), supportedInputTypes: [convoOpenAiInputType], supportedOutputTypes: [convoOpenAiOutputType], models: knownConvoOpenAiModels, hasVision: model => model.startsWith('gtp-4o') }); }; //# sourceMappingURL=openai-service.js.map