UNPKG

tmaiplugin

Version:

TrainingMaster AIGC Component

45 lines 1.52 kB
//ts check /** * 内容插件生成工厂 */ import { FaqPlugin } from "./faqplugin"; import { QuestionPlugin } from "./questionplugin" import { CommentPlugin } from "./commentplugin"; import { SimilarityPlugin } from "./similarityplugin" import { SummaryPlugin } from "./summaryplugin" import PluginBase from './aipluginbase'; /** * OpenAI/NLP 的服务提供商 OpenAI,微软,百度文心(待接入),google(待接入) */ export const PluginEnum = { FAQ: 'faq', QUESTION: 'question', COMMENT: 'comment', SIMILARITY:'similarity', SUMMARY:'summary', } as const; /** * 插件调用GPT的参数 */ export interface GptInfo{ 'provider':string, 'option':any } export type PluginEnum = typeof PluginEnum[keyof typeof PluginEnum]; /** * 根据类型创建不同的TTS引擎对象 * @param {*} provider * @param {*} apikey * @param {*} setting * @returns */ export function createPlugIn(provider: PluginEnum, gptParam: GptInfo): PluginBase | null { switch (provider) { case PluginEnum.FAQ: return new FaqPlugin(gptParam.provider, gptParam.option); case PluginEnum.QUESTION: return new QuestionPlugin(gptParam.provider, gptParam.option); case PluginEnum.COMMENT: return new CommentPlugin(gptParam.provider, gptParam.option); case PluginEnum.SIMILARITY: return new SimilarityPlugin(gptParam.provider, gptParam.option); case PluginEnum.SUMMARY: return new SummaryPlugin(gptParam.provider, gptParam.option); default: return null; } };