import { default as React } from 'react'; import { AdapterProps } from '../core/types'; import { ThoughtNode, ThoughtChainVersionMode } from '../thought_chain_types'; export interface RetriveChatMessageAdapterProps extends AdapterProps { contentType?: 'plainText' | 'stream'; content: any; align?: 'left' | 'right' | 'center'; status?: 'sending' | 'printing' | 'finished' | 'error'; displayStatus?: 'ready' | 'processing' | 'thinking' | 'uploading' | 'error' | 'initializing' | 'analyzing'; avatar?: string; isUser?: boolean; userAvatar?: string; aiAvatar?: string; userName?: string; aiName?: string; date?: string; time?: string; timestamp?: string; showTime?: boolean; llmConfig?: { model?: string; temperature?: number; diversity?: number; maxTokens?: number; }; prompt?: string; retrieveInfo?: any; retrieveConfig?: any; /** 召回/LLM 是否处于加载中(例如后端仍在流式返回数据时),用于在 UI 中展示 loading 状态 */ retrieveLoading?: boolean; /** * 整体 loading 状态(推荐使用): * - true 时,语义回答/召回等区域会自动展示统一的 loading 文案 * - 兼容老用法:未传 loading 时,仍可使用 retrieveLoading + contentType/displayStatus 控制 */ loading?: boolean; feedbackResult: null | number; queryId: string; eventsEmit?: (eventName: string, payload?: any) => void; defaultAnswer?: string; idx: number; isWelcome?: boolean; isLast?: boolean; messages: any[]; respTime: number; resultType: number; tokens?: number; tools?: { like?: boolean; dislike?: boolean; repeat?: boolean; forward?: boolean; copy?: boolean; delete?: boolean; edit?: boolean; }; is_download?: string; from?: string; supportMarkdown?: boolean; errorMessage?: string; /** * 是否开启思维链 UI 展示 * 开启后,当数据中包含 chain 或外部传入 thoughtChainNodes 时, * 会在语义回答区域自动渲染思维链卡片。 */ enableThoughtChain?: boolean; /** * 思维链版本控制: * - auto: 按数据自动识别(默认) * - v1: 仅使用旧版 展示,不渲染思维链卡片 * - v2: 强制使用新版 chain/thoughtNodes 渲染 */ thoughtChainVersionMode?: ThoughtChainVersionMode; /** * 原始 chain 数据(通常来自后端 reply.chain) */ chain?: any; /** * 已映射好的思维链节点(实时 SSE 场景可直接传入) */ thoughtChainNodes?: ThoughtNode[]; /** * 是否开启思维链(后端字段 enableCot) */ enableCot?: number; /** * 思维链总耗时(毫秒),从后端 SSE 流中的 chainRespTime 字段获取 */ chainRespTime?: number; /** * 思维链状态(用于流式模式) * status=4 时显示"思考中",其他状态显示"思考完成" */ thoughtChainStatus?: number; /** * 组件初次渲染时默认展示的标签页: * - semantic: 语义回答(默认) * - prompt: Prompt 内容 * - retrieve: 召回信息 * - config: 检索配置 * 业务方可通过该参数在“无 LLM 语义回答”场景下直接切到召回信息等标签。 */ defaultShowTab?: TabType; /** * 是否启用 PrismJS 语法高亮(默认 false,使用普通代码块样式) */ enablePrism?: boolean; } type TabType = 'semantic' | 'prompt' | 'retrieve' | 'config'; declare const RetriveChatMessageAdapter: React.FC; export default RetriveChatMessageAdapter;