UNPKG

@convo-lang/convo-lang

Version:
40 lines 2.24 kB
import { secretManager } from "@iyio/common"; import { BaseOpenAiConvoCompletionService } from "../BaseOpenAiConvoCompletionService.js"; import { BaseOpenAiConvoConverter } from "../BaseOpenAiConvoConverter.js"; import { convoCompletionService, convoConversationConverterProvider, convoEmbeddingsService, convoTranscriptionService, convoTtsService } from "../convo.deps.js"; import { convoOpenAiInputType, convoOpenAiOutputType } from "./openai-lib.js"; import { defaultOpenAiChatModel, openAiModels } from "./openai-models.js"; import { openAiApiKeyParam, openAiBaseUrlParam, openAiChatModelParam, openAiSecretsParam, openAiVisionModelParam } from "./openai-params.js"; export const convoOpenAiModule = (scope) => { scope.implementService(convoCompletionService, createOpenAiConvoServiceFromScope); scope.implementService(convoTranscriptionService, createOpenAiConvoServiceFromScope); scope.implementService(convoTtsService, createOpenAiConvoServiceFromScope); scope.implementService(convoEmbeddingsService, createOpenAiConvoServiceFromScope); scope.addProvider(convoConversationConverterProvider, createOpenAiConvoConverterFromScope); }; export const createOpenAiConvoServiceFromScope = (scope) => { return new BaseOpenAiConvoCompletionService({ serviceId: 'open-ai', 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: openAiModels, isFallback: true, supportsTranscription: true, supportsTts: 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: openAiModels, hasVision: model => model.startsWith('gtp-4o') }); }; //# sourceMappingURL=openai-service.js.map