@convo-lang/convo-lang
Version:
A Conversational Language
34 lines • 1.83 kB
JavaScript
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