tmaiplugin
Version:
TrainingMaster AIGC Component
45 lines • 1.52 kB
text/typescript
//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;
}
};