export interface SSEApi { paramBody: KbChatParam signal: AbortSignal answerDone: () => void // 对话结束回调 onMessage?: (data: any) => void onError?: (err: any) => void contentChange?: (text: string) => void // 思考过程更新 resultChange?: (key: string, result: object) => void // 结果更新 } /** * KbChatParam */ export interface KbChatParam { enableThinking?: boolean /** * 历史对话 */ history?: History[] history_keyword?: string[] kb_name?: string maxTokens?: number /** * 知识来源, local_kb, temp_kb */ mode?: string model?: Model prompt_name?: string /** * 要使用的模版名称 */ promptName?: string /** * 用户问题 */ query?: string /** * 暂时看不可用 */ return_direct?: boolean /** * 排序模型打分阈值 */ score_threshold?: number /** * 搜索类型 */ search_type?: SearchType stream?: boolean temperature?: number /** * 匹配向量数 */ topK?: number } /** * com.zjugis.ai.llm.knowledgeqa.param.KbChatParam.History * * History */ export interface History { content?: string role?: Role } export enum Role { Assistant = 'ASSISTANT', System = 'SYSTEM', Tool = 'TOOL', Unknown = 'UNKNOWN', User = 'USER' } export enum Model { DeepseekR1 = 'DEEPSEEK_R1', Empty = 'EMPTY', Qwen25 = 'QWEN_25', Qwen3 = 'QWEN3', QwenPlus = 'QWEN_PLUS', Qwq32B = 'QWQ_32B', QwqPlus = 'QWQ_PLUS' } /** * 搜索类型 */ export enum SearchType { Concise = 'CONCISE', InDepth = 'IN_DEPTH', Research = 'RESEARCH' }