@ai-group/chat-sdk 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/components/XAiChatbot/index.d.ts +10 -0
  2. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  3. package/dist/cjs/components/XAiConversations/index.d.ts +4 -0
  4. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +6 -0
  5. package/dist/cjs/components/XAiSender/index.d.ts +4 -0
  6. package/dist/cjs/context/AiProviderContext.d.ts +14 -0
  7. package/dist/cjs/hooks/useAgentGenerator.js +3 -1
  8. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  9. package/dist/cjs/hooks/useEventStreamRequest.d.ts +30 -0
  10. package/dist/cjs/hooks/useProviderContext.d.ts +33 -0
  11. package/dist/cjs/types/XAiChatbot.d.ts +156 -0
  12. package/dist/cjs/types/XAiMessage.d.ts +110 -0
  13. package/dist/cjs/types/XAiMessage.js.map +2 -2
  14. package/dist/cjs/types/XAiProvider.d.ts +347 -0
  15. package/dist/cjs/types/index.d.ts +5 -0
  16. package/dist/esm/components/XAiChatbot/index.d.ts +10 -0
  17. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  18. package/dist/esm/components/XAiConversations/index.d.ts +4 -0
  19. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +6 -0
  20. package/dist/esm/components/XAiSender/index.d.ts +4 -0
  21. package/dist/esm/context/AiProviderContext.d.ts +14 -0
  22. package/dist/esm/hooks/useAgentGenerator.js +3 -1
  23. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  24. package/dist/esm/hooks/useEventStreamRequest.d.ts +30 -0
  25. package/dist/esm/hooks/useProviderContext.d.ts +33 -0
  26. package/dist/esm/types/XAiChatbot.d.ts +156 -0
  27. package/dist/esm/types/XAiMessage.d.ts +110 -0
  28. package/dist/esm/types/XAiMessage.js.map +1 -1
  29. package/dist/esm/types/XAiProvider.d.ts +347 -0
  30. package/dist/esm/types/index.d.ts +5 -0
  31. package/dist/umd/chat-sdk.min.js +1 -1
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useMemo","useCallback","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","SESSION_PAGE_SIZE","fetchAppConfig","fetchSessionList","fetchSessionDetail","delSessionId","updateSessionTitle","getNodeTemplate","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","MessageProcessor","textSpeed","arguments","length","undefined","_classCallCheck","_defineProperty","_createClass","key","value","getKnowledgeIcons","knowledgeType","icon","expandIcon","getToolIcons","toolType","getWorkflowIcon","updateExecutionCost","messages","messageIndex","uniqueId","cost","msg","execute","execution","find","item","id","extra","toFixed","findLastPendingAIMessage","i","role","assistant","type","status","createNewAIMessage","createdAt","Date","content","text","thinks","init","ensureAIMessageExists","_this$findLastPending","_this$findLastPending2","_slicedToArray","index","existingMsg","_toConsumableArray","_objectSpread","newMessage","newMessages","concat","handleSuggestion","data","suggestIndex","findIndex","newSuggestion","done","suggestion","description","push","_suggestion$content","handleReasoning","_this$ensureAIMessage","_this$ensureAIMessage2","aiMsg","updatedMsg","pending","updatedMessages","handleReasoningEnd","_this$ensureAIMessage3","_this$ensureAIMessage4","handleRecallKnowledgeStart","_this$ensureAIMessage5","_this$ensureAIMessage6","_ref","_ref$uniqueId","args","icons","name","handleRecallKnowledgeEnd","_data$data","_this$findLastPending3","_this$findLastPending4","_aiMsg","handleInvokeToolStart","_this$ensureAIMessage7","_this$ensureAIMessage8","_ref2","_ref2$uniqueId","handleInvokeToolEnd","_data$data2","_this$findLastPending5","_this$findLastPending6","handleComponentStart","_aiMsg$execute","_this$ensureAIMessage9","_this$ensureAIMessage10","nodeId","componentType","_getNodeTemplate","handleComponentEnd","_data$content","_this$findLastPending7","_this$findLastPending8","handleResponse","_this$ensureAIMessage11","_this$ensureAIMessage12","contentType","success","errorMsg","raw","failed","handleFinish","_data$data3","_this$findLastPending9","_this$findLastPending10","processResponse","responseData","response","action","_response","_response$data","suggest","reasoning","reasoningEnd","componentStart","componentEnd","recallKnowledgeStart","recallKnowledgeEnd","invokeToolStart","invokeToolEnd","finish","useAgentGenerator","params","url","token","config","onError","onMessage","onSuccess","rest","_objectWithoutProperties","_excluded","_useState","_useState2","setMessages","_useState3","_useState4","sessionList","setSessionList","_useState5","total","pageNum","pageSize","_useState6","sessionPagination","setSessionPagination","_useState7","_useState8","currentSessionId","setCurrentSessionId","_useState9","_useState10","appInfo","setAppInfo","requestInfo","_ref3","appNo","pt","tc","messageProcessor","initConfig","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","wrap","_callee$","_context","prev","next","sent","code","APP_CONFIG_INIT_SUCCESS","message","APP_NOT_FOUND","t0","API_ERROR","stop","apply","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","console","log","start","loading","setMessage","_ref5","_callee2","messageType","_callee2$","_context2","prologueIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","insertIndex","splice","warn","_x","_x2","chat","_ref6","_callee3","insert","requestBody","_args3","_callee3$","_context3","user","filter","appParams","inputs_msg","sessionId","Authorization","_x3","_x4","reChat","_lastUserMsg$content","lastAIIndex","findLastIndex","m","lastUserMsg","findLast","stopChat","newMsg","formatMessages","initMessagesList","forEach","_ref7","messageTime","initPrologue","_ref8","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref9","_ref9$suggested_quest","suggested_questions","_ref9$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","_item$extra4","some","_item$extra5","initAppConversations","_ref10","_callee5","fetchDetail","_result$data","resultData","_result$data2","_result$data3","_result$data4","formatSessions","_args5","_callee5$","_context5","label","title","timestamp","gmtCreated","getTime","meta","totalCount","setCurrentSessionDetail","APP_MESSAGES_INIT_SUCCESS","_ref11","_callee6","sessionResult","_sessionResult$data","sessionsData","_callee6$","_context6","list","reduce","acc","cur","msgs","sessionMessages","isLike","_x5","deleteSession","_ref12","_callee7","_callee7$","_context7","createNewChat","_x6","updateSession","_ref13","_callee8","_callee8$","_context8","_x7","_x8"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["import { useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { Error, ErrorCode, Success, SuccessCode, sessionData } from '@/types';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, delSessionId, updateSessionTitle } from '@/services/api';\nimport { getNodeTemplate } from '@/utils/workflowNode';\n// 图标导入\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\n// ==================== 类型定义 ====================\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n\nexport type Contents = ContentDef[];\n\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START',\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END',\n invokeToolStart = 'INVOKE_AGENT_TOOL_START',\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END',\n reasoning = 'REASONING',\n reasoningStart = 'REASONING_START',\n reasoningEnd = 'REASONING_END',\n componentStart = 'COMPONENT_START',\n componentStream = 'COMPONENT_STREAM',\n componentEnd = 'COMPONENT_END',\n suggest = 'FOLLOW_UP',\n response = 'RESPONSE',\n finish = 'FINISHED',\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled',\n enabled = 'enabled',\n remote = 'remote',\n}\n\nexport type ThinkStep = any;\n\nexport interface Action {\n name: string;\n description: string;\n jsonSchema: string;\n available?: ActionAvailability;\n}\n\nexport interface BaseFields {\n textSpeed?: number;\n onChatDone?: () => void;\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\ninterface AgentFields extends BaseFields {\n type: 'agent';\n botNo: string;\n agentNo: string;\n versionNo: string;\n sessionId?: string;\n}\n\ninterface AppFields extends BaseFields {\n type: 'app';\n botNo?: string;\n appNo?: string;\n appVersionNo?: string;\n sessionId?: string;\n}\n\ninterface TrialAppFields extends BaseFields {\n type: 'trialApp';\n tc: string;\n appNo: string;\n sessionId?: string;\n}\n\ninterface PromptDebugFields extends BaseFields {\n type: 'promptDebug';\n sessionId?: string;\n requestId?: string;\n promptNo: string;\n versionNo?: string;\n compareNo?: string;\n}\n\ntype Params = AgentFields | AppFields | TrialAppFields | PromptDebugFields;\n\n// ==================== 消息处理器 ====================\nclass MessageProcessor {\n private textSpeed: number;\n\n constructor(textSpeed = 60) {\n this.textSpeed = textSpeed;\n }\n\n // 获取知识图标\n private getKnowledgeIcons(knowledgeType: string) {\n return knowledgeType === 'DOCUMENT'\n ? { icon: documentIcon, expandIcon: documentExpandIcon }\n : { icon: qaIcon, expandIcon: qaExpandIcon };\n }\n\n // 获取工具图标\n private getToolIcons(toolType: string) {\n return toolType === 'SKILL'\n ? { icon: skillNoIcon, expandIcon: skillNoExpandIcon }\n : { icon: toolIcon, expandIcon: toolExpandIcon };\n }\n\n // 获取工作流图标(暂时不做区分)\n private getWorkflowIcon() {\n return { icon: skillNoIcon, expandIcon: skillNoExpandIcon };\n }\n\n // 更新执行时间\n private updateExecutionCost(\n messages: Messages[],\n messageIndex: number,\n uniqueId: string,\n cost: number,\n ) {\n const msg = messages[messageIndex] as TextMessage;\n if (msg?.execute) {\n const execution = msg.execute.find((item) => item.id === uniqueId);\n if (execution) {\n execution.extra.cost = cost ? (cost / 1000).toFixed(2) : 0;\n }\n }\n }\n\n // 查找最后一个待处理的AI消息\n private findLastPendingAIMessage(messages: Messages[]): [number, TextMessage | null] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === MessageRole.assistant\n && msg.type === 'TextMessage'\n && (msg.status === 'init' || msg.status === 'pending')) {\n return [i, msg as TextMessage];\n }\n }\n return [-1, null];\n }\n\n // 创建新的AI消息\n private createNewAIMessage(): TextMessage {\n return {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n execute: [],\n thinks: '',\n status: MessageStatus.init,\n };\n }\n\n // 确保存在待处理的AI消息\n private ensureAIMessageExists(messages: Messages[]): [Messages[], number, TextMessage] {\n const [index, existingMsg] = this.findLastPendingAIMessage(messages);\n\n if (index !== -1 && existingMsg) {\n return [[...messages], index, { ...existingMsg }];\n }\n\n const newMessage = this.createNewAIMessage();\n const newMessages = [...messages, newMessage];\n return [newMessages, newMessages.length - 1, newMessage];\n }\n\n // 处理建议\n handleSuggestion(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const newMessages = [...messages];\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n\n if (suggestIndex === -1) {\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{ key: uuidV4(), description: content }],\n };\n newMessages.push(newSuggestion);\n } else {\n const suggestion = newMessages[suggestIndex] as SuggestionMessage;\n suggestion?.content?.push({\n key: uuidV4(),\n description: content,\n });\n }\n\n return newMessages;\n }\n\n // 处理思考过程\n handleReasoning(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: (aiMsg.thinks || '') + content,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理思考过程结束\n handleReasoningEnd(messages: Messages[]): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: `${aiMsg.thinks || ''}\\n`,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理知识库调用开始\n handleRecallKnowledgeStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4(), args, knowledgeType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getKnowledgeIcons(knowledgeType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: knowledgeType === 'DOCUMENT' ? '已搜索文档知识库' : '已搜索问答知识库',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理知识库调用结束\n handleRecallKnowledgeEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.data?.uniqueId, data.cost);\n return newMessages;\n }\n\n // 处理工具调用开始\n handleInvokeToolStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4(), args, toolType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getToolIcons(toolType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工具调用结束\n handleInvokeToolEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.data?.uniqueId, data.cost);\n return newMessages;\n }\n\n // 处理工作流组件开始\n handleComponentStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { content } = data;\n const { nodeId, args, componentType } = content;\n const { name } = getNodeTemplate(componentType);\n aiMsg?.execute?.push({\n id: nodeId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: name ? `已调用${name}组件` : '已调用工作流组件',\n arguments: args,\n extra: {\n ...data,\n ...this.getWorkflowIcon(),\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件结束\n handleComponentEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.content?.nodeId, data.cost);\n return newMessages;\n }\n\n // 处理响应正文\n handleResponse(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { contentType, content, success, errorMsg } = data;\n if (success) {\n aiMsg.raw = data.raw;\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n } else {\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理完成\n handleFinish(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n const msg = newMessages[index] as TextMessage;\n msg.execute = msg.execute || [];\n msg.execute.push({\n id: data?.data?.uniqueId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: data?.cost ? (data?.cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n\n msg.status = MessageStatus.done;\n return newMessages;\n }\n\n // 处理响应数据\n processResponse(messages: Messages[], responseData: any): Messages[] {\n if (!responseData?.content && !responseData?.data) return messages;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n const { action, data = {} } = response;\n\n data.raw = responseData;\n\n switch (action) {\n case ActionType.suggest:\n return this.handleSuggestion(messages, data);\n\n case ActionType.reasoning:\n return this.handleReasoning(messages, data);\n\n case ActionType.reasoningEnd:\n return this.handleReasoningEnd(messages);\n\n case ActionType.componentStart:\n return this.handleComponentStart(messages, data);\n\n case ActionType.componentEnd:\n return this.handleComponentEnd(messages, data);\n\n case ActionType.recallKnowledgeStart:\n return this.handleRecallKnowledgeStart(messages, data);\n\n case ActionType.recallKnowledgeEnd:\n return this.handleRecallKnowledgeEnd(messages, data);\n\n case ActionType.invokeToolStart:\n return this.handleInvokeToolStart(messages, data);\n\n case ActionType.invokeToolEnd:\n return this.handleInvokeToolEnd(messages, data);\n\n case ActionType.response:\n return this.handleResponse(messages, data);\n\n case ActionType.finish:\n return this.handleFinish(messages, data);\n\n default:\n return messages;\n }\n }\n}\n\nconst useAgentGenerator = (params: UseAgentGeneratorProps) => {\n const {\n url,\n token,\n config,\n onError,\n onMessage,\n onSuccess,\n ...rest\n } = params;\n\n const textSpeed = 60;\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 聊天记录分页设置\n // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });\n // 会话记录\n const [sessionList, setSessionList] = useState<sessionData[]>([]);\n // 会话请求是否加载中\n // const [sessionLoading, setSessionLoading] = useState<boolean>(false);\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo, pt, tc } = config || {};\n\n // 消息处理器\n const messageProcessor = useMemo(() => new MessageProcessor(textSpeed), [textSpeed]);\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const result = await fetchAppConfig({ url, ...config });\n if (result.success) {\n setAppInfo(result.data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据流处理\n useEffect(() => {\n if (!responseData) return;\n\n setMessages((prev) => messageProcessor.processResponse(prev, responseData));\n }, [responseData, messageProcessor]);\n\n // 添加对话(非交互触发)\n const setMessage = useCallback(async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n if (prologueIndex === -1) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: { text: content },\n extra: { prologue: true, noFooter: true },\n };\n return [newMessage, ...prev];\n }\n\n return prev.map((item) => (item.extra?.prologue && item.content && 'text' in item.content\n ? { ...item, content: { text: content } } as TextMessage\n : item));\n });\n break;\n }\n\n case 'suggest': {\n setMessages((prev) => {\n const suggestIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n\n if (suggestIndex === -1) {\n const newMessages = [...prev];\n const insertIndex = prologueIndex === -1 ? 0 : prologueIndex + 1;\n newMessages.splice(insertIndex, 0, newSuggestion);\n return newMessages;\n }\n\n return prev.map((item) => (item.type === 'SuggestionMessage'\n ? { ...item, content }\n : item));\n });\n break;\n }\n\n default:\n console.warn(`Unknown message type: ${messageType}`);\n }\n }, []);\n\n // 简单对话\n const chat = async <T = any>(content: T, extra?: any, insert = true) => {\n if (insert) {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n extra,\n content: { text: content as string },\n };\n\n setMessages((prev) => {\n const newMessages = prev.filter((item) => item.type !== 'SuggestionMessage');\n newMessages.push(newMessage);\n return newMessages;\n });\n }\n\n const requestBody: any = {\n appParams: {\n inputs_msg: content,\n },\n sessionId: currentSessionId,\n };\n\n start(\n `${url}/appouter/${appNo}/sendMsg?pt=${pt}&tc=${tc}`,\n requestBody,\n {\n Authorization: `Bearer ${token}`,\n },\n );\n };\n\n // 重新生成方法\n const reChat = useCallback(() => {\n setMessages((prev) => {\n const newMessages = [...prev];\n\n // 删除最新 AI 消息\n const lastAIIndex = newMessages?.findLastIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage'\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n\n // 删除建议消息\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestIndex !== -1) {\n newMessages.splice(suggestIndex, 1);\n }\n\n // 找到最后一条用户消息重新发送\n const lastUserMsg = newMessages.findLast(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n\n if (lastUserMsg?.content?.text) {\n setTimeout(() => {\n chat(lastUserMsg.content.text as string, lastUserMsg.extra, false);\n }, 0);\n }\n\n return newMessages;\n });\n }, [chat]);\n\n // 停止对话\n const stopChat = () => {\n stop();\n setMessages((prev) => prev.map((m) => {\n // 所有进行中的消息变更为结束\n if (m.status === MessageStatus.pending || m.status === MessageStatus.init) {\n const newMsg = { ...m, status: MessageStatus.done };\n if (m.type === 'TextMessage' && m.status === MessageStatus.init) {\n (newMsg as TextMessage).content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n return newMsg;\n }\n return m;\n }));\n };\n\n // 初始化历史记录\n const formatMessages = (data: any, init = false) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n execute: [],\n status: MessageStatus.done,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n if (init) {\n return [...initMessagesList];\n }\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n const result = await fetchSessionList({\n url,\n appNo,\n pt,\n tc,\n token,\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.success) {\n const resultData = result?.data?.data || [];\n if (resultData.length > 0) {\n const formatSessions = resultData.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.gmtCreated).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: result?.data?.pageNum, pageSize: result?.data?.pageSize, total: result?.data?.totalCount });\n const { sessionId } = resultData[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 设置当前会话详情\n const setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const sessionResult = await fetchSessionDetail({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n\n if (sessionResult?.success) {\n const sessionsData = sessionResult?.data?.list?.reduce((acc: any[], cur) => {\n const msgs = (cur.sessionMessages || []).map((msg) => ({\n ...msg,\n raw: cur,\n isLike: cur?.isLike,\n }));\n return [...acc, ...msgs];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData, true);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(uuidV4());\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const result = await delSessionId({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n if (result?.success) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n createNewChat();\n }\n }\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const result = await updateSessionTitle({\n url,\n appNo,\n pt,\n tc,\n title,\n sessionId,\n token,\n });\n if (result?.success) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 生成新对话\n const createNewChat = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionList,\n currentSessionId,\n sessionPagination,\n initAppConversations,\n reChat,\n chat,\n createNewChat,\n setCurrentSessionId,\n setCurrentSessionDetail,\n updateSession,\n deleteSession,\n setMessage,\n setMessages,\n stopChat,\n initPrologue,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useState","useEffect","useMemo","useCallback","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","SESSION_PAGE_SIZE","fetchAppConfig","fetchSessionList","fetchSessionDetail","delSessionId","updateSessionTitle","getNodeTemplate","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","MessageProcessor","textSpeed","arguments","length","undefined","_classCallCheck","_defineProperty","_createClass","key","value","getKnowledgeIcons","knowledgeType","icon","expandIcon","getToolIcons","toolType","getWorkflowIcon","updateExecutionCost","messages","messageIndex","uniqueId","cost","msg","execute","execution","find","item","id","extra","toFixed","findLastPendingAIMessage","i","role","assistant","type","status","createNewAIMessage","createdAt","Date","content","text","thinks","init","ensureAIMessageExists","_this$findLastPending","_this$findLastPending2","_slicedToArray","index","existingMsg","_toConsumableArray","_objectSpread","newMessage","newMessages","concat","handleSuggestion","data","suggestIndex","findIndex","newSuggestion","done","suggestion","description","push","_suggestion$content","handleReasoning","_this$ensureAIMessage","_this$ensureAIMessage2","aiMsg","updatedMsg","pending","updatedMessages","handleReasoningEnd","_this$ensureAIMessage3","_this$ensureAIMessage4","handleRecallKnowledgeStart","_this$ensureAIMessage5","_this$ensureAIMessage6","_ref","_ref$uniqueId","args","icons","name","handleRecallKnowledgeEnd","_data$data","_this$findLastPending3","_this$findLastPending4","_aiMsg","handleInvokeToolStart","_this$ensureAIMessage7","_this$ensureAIMessage8","_ref2","_ref2$uniqueId","handleInvokeToolEnd","_data$data2","_this$findLastPending5","_this$findLastPending6","handleComponentStart","_aiMsg$execute","_this$ensureAIMessage9","_this$ensureAIMessage10","nodeId","componentType","_getNodeTemplate","handleComponentEnd","_data$content","_this$findLastPending7","_this$findLastPending8","handleResponse","_this$ensureAIMessage11","_this$ensureAIMessage12","contentType","success","errorMsg","raw","failed","handleFinish","_data$data3","_this$findLastPending9","_this$findLastPending10","processResponse","responseData","response","action","_response","_response$data","suggest","reasoning","reasoningEnd","componentStart","componentEnd","recallKnowledgeStart","recallKnowledgeEnd","invokeToolStart","invokeToolEnd","finish","useAgentGenerator","params","url","token","config","onError","onMessage","onSuccess","rest","_objectWithoutProperties","_excluded","_useState","_useState2","setMessages","_useState3","_useState4","sessionList","setSessionList","_useState5","total","pageNum","pageSize","_useState6","sessionPagination","setSessionPagination","_useState7","_useState8","currentSessionId","setCurrentSessionId","_useState9","_useState10","appInfo","setAppInfo","requestInfo","_ref3","appNo","pt","tc","messageProcessor","initConfig","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","wrap","_callee$","_context","prev","next","sent","code","APP_CONFIG_INIT_SUCCESS","message","APP_NOT_FOUND","t0","API_ERROR","stop","apply","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","console","log","start","loading","setMessage","_ref5","_callee2","messageType","_callee2$","_context2","prologueIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","insertIndex","splice","warn","_x","_x2","chat","_ref6","_callee3","insert","requestBody","_args3","_callee3$","_context3","user","filter","appParams","inputs_msg","sessionId","Authorization","_x3","_x4","reChat","_lastUserMsg$content","lastAIIndex","findLastIndex","m","lastUserMsg","findLast","stopChat","newMsg","formatMessages","initMessagesList","forEach","_ref7","messageTime","isLike","initPrologue","_ref8","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref9","_ref9$suggested_quest","suggested_questions","_ref9$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","_item$extra4","some","_item$extra5","initAppConversations","_ref10","_callee5","fetchDetail","_result$data","resultData","_result$data2","_result$data3","_result$data4","formatSessions","_args5","_callee5$","_context5","label","title","timestamp","gmtCreated","getTime","meta","totalCount","setCurrentSessionDetail","APP_MESSAGES_INIT_SUCCESS","_ref11","_callee6","sessionResult","_sessionResult$data","sessionsData","_callee6$","_context6","list","reduce","acc","cur","msgs","sessionMessages","_x5","deleteSession","_ref12","_callee7","_callee7$","_context7","createNewChat","_x6","updateSession","_ref13","_callee8","_callee8$","_context8","_x7","_x8"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["import { useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { Error, ErrorCode, Success, SuccessCode, sessionData } from '@/types';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, delSessionId, updateSessionTitle } from '@/services/api';\nimport { getNodeTemplate } from '@/utils/workflowNode';\n// 图标导入\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\n// ==================== 类型定义 ====================\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n\nexport type Contents = ContentDef[];\n\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START',\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END',\n invokeToolStart = 'INVOKE_AGENT_TOOL_START',\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END',\n reasoning = 'REASONING',\n reasoningStart = 'REASONING_START',\n reasoningEnd = 'REASONING_END',\n componentStart = 'COMPONENT_START',\n componentStream = 'COMPONENT_STREAM',\n componentEnd = 'COMPONENT_END',\n suggest = 'FOLLOW_UP',\n response = 'RESPONSE',\n finish = 'FINISHED',\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled',\n enabled = 'enabled',\n remote = 'remote',\n}\n\nexport type ThinkStep = any;\n\nexport interface Action {\n name: string;\n description: string;\n jsonSchema: string;\n available?: ActionAvailability;\n}\n\nexport interface BaseFields {\n textSpeed?: number;\n onChatDone?: () => void;\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\ninterface AgentFields extends BaseFields {\n type: 'agent';\n botNo: string;\n agentNo: string;\n versionNo: string;\n sessionId?: string;\n}\n\ninterface AppFields extends BaseFields {\n type: 'app';\n botNo?: string;\n appNo?: string;\n appVersionNo?: string;\n sessionId?: string;\n}\n\ninterface TrialAppFields extends BaseFields {\n type: 'trialApp';\n tc: string;\n appNo: string;\n sessionId?: string;\n}\n\ninterface PromptDebugFields extends BaseFields {\n type: 'promptDebug';\n sessionId?: string;\n requestId?: string;\n promptNo: string;\n versionNo?: string;\n compareNo?: string;\n}\n\ntype Params = AgentFields | AppFields | TrialAppFields | PromptDebugFields;\n\n// ==================== 消息处理器 ====================\nclass MessageProcessor {\n private textSpeed: number;\n\n constructor(textSpeed = 60) {\n this.textSpeed = textSpeed;\n }\n\n // 获取知识图标\n private getKnowledgeIcons(knowledgeType: string) {\n return knowledgeType === 'DOCUMENT'\n ? { icon: documentIcon, expandIcon: documentExpandIcon }\n : { icon: qaIcon, expandIcon: qaExpandIcon };\n }\n\n // 获取工具图标\n private getToolIcons(toolType: string) {\n return toolType === 'SKILL'\n ? { icon: skillNoIcon, expandIcon: skillNoExpandIcon }\n : { icon: toolIcon, expandIcon: toolExpandIcon };\n }\n\n // 获取工作流图标(暂时不做区分)\n private getWorkflowIcon() {\n return { icon: skillNoIcon, expandIcon: skillNoExpandIcon };\n }\n\n // 更新执行时间\n private updateExecutionCost(\n messages: Messages[],\n messageIndex: number,\n uniqueId: string,\n cost: number,\n ) {\n const msg = messages[messageIndex] as TextMessage;\n if (msg?.execute) {\n const execution = msg.execute.find((item) => item.id === uniqueId);\n if (execution) {\n execution.extra.cost = cost ? (cost / 1000).toFixed(2) : 0;\n }\n }\n }\n\n // 查找最后一个待处理的AI消息\n private findLastPendingAIMessage(messages: Messages[]): [number, TextMessage | null] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === MessageRole.assistant\n && msg.type === 'TextMessage'\n && (msg.status === 'init' || msg.status === 'pending')) {\n return [i, msg as TextMessage];\n }\n }\n return [-1, null];\n }\n\n // 创建新的AI消息\n private createNewAIMessage(): TextMessage {\n return {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n execute: [],\n thinks: '',\n status: MessageStatus.init,\n };\n }\n\n // 确保存在待处理的AI消息\n private ensureAIMessageExists(messages: Messages[]): [Messages[], number, TextMessage] {\n const [index, existingMsg] = this.findLastPendingAIMessage(messages);\n\n if (index !== -1 && existingMsg) {\n return [[...messages], index, { ...existingMsg }];\n }\n\n const newMessage = this.createNewAIMessage();\n const newMessages = [...messages, newMessage];\n return [newMessages, newMessages.length - 1, newMessage];\n }\n\n // 处理建议\n handleSuggestion(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const newMessages = [...messages];\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n\n if (suggestIndex === -1) {\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{ key: uuidV4(), description: content }],\n };\n newMessages.push(newSuggestion);\n } else {\n const suggestion = newMessages[suggestIndex] as SuggestionMessage;\n suggestion?.content?.push({\n key: uuidV4(),\n description: content,\n });\n }\n\n return newMessages;\n }\n\n // 处理思考过程\n handleReasoning(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: (aiMsg.thinks || '') + content,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理思考过程结束\n handleReasoningEnd(messages: Messages[]): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: `${aiMsg.thinks || ''}\\n`,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理知识库调用开始\n handleRecallKnowledgeStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4(), args, knowledgeType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getKnowledgeIcons(knowledgeType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: knowledgeType === 'DOCUMENT' ? '已搜索文档知识库' : '已搜索问答知识库',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理知识库调用结束\n handleRecallKnowledgeEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.data?.uniqueId, data.cost);\n return newMessages;\n }\n\n // 处理工具调用开始\n handleInvokeToolStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4(), args, toolType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getToolIcons(toolType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工具调用结束\n handleInvokeToolEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.data?.uniqueId, data.cost);\n return newMessages;\n }\n\n // 处理工作流组件开始\n handleComponentStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { content } = data;\n const { nodeId, args, componentType } = content;\n const { name } = getNodeTemplate(componentType);\n aiMsg?.execute?.push({\n id: nodeId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: name ? `已调用${name}组件` : '已调用工作流组件',\n arguments: args,\n extra: {\n ...data,\n ...this.getWorkflowIcon(),\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件结束\n handleComponentEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n const newMessages = [...messages];\n this.updateExecutionCost(newMessages, index, data?.content?.nodeId, data.cost);\n return newMessages;\n }\n\n // 处理响应正文\n handleResponse(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { contentType, content, success, errorMsg } = data;\n if (success) {\n aiMsg.raw = data.raw;\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n } else {\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理完成\n handleFinish(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n const msg = newMessages[index] as TextMessage;\n msg.execute = msg.execute || [];\n msg.execute.push({\n id: data?.data?.uniqueId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: data?.cost ? (data?.cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n\n msg.status = MessageStatus.done;\n return newMessages;\n }\n\n // 处理响应数据\n processResponse(messages: Messages[], responseData: any): Messages[] {\n if (!responseData?.content && !responseData?.data) return messages;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n const { action, data = {} } = response;\n\n data.raw = responseData;\n\n switch (action) {\n case ActionType.suggest:\n return this.handleSuggestion(messages, data);\n\n case ActionType.reasoning:\n return this.handleReasoning(messages, data);\n\n case ActionType.reasoningEnd:\n return this.handleReasoningEnd(messages);\n\n case ActionType.componentStart:\n return this.handleComponentStart(messages, data);\n\n case ActionType.componentEnd:\n return this.handleComponentEnd(messages, data);\n\n case ActionType.recallKnowledgeStart:\n return this.handleRecallKnowledgeStart(messages, data);\n\n case ActionType.recallKnowledgeEnd:\n return this.handleRecallKnowledgeEnd(messages, data);\n\n case ActionType.invokeToolStart:\n return this.handleInvokeToolStart(messages, data);\n\n case ActionType.invokeToolEnd:\n return this.handleInvokeToolEnd(messages, data);\n\n case ActionType.response:\n return this.handleResponse(messages, data);\n\n case ActionType.finish:\n return this.handleFinish(messages, data);\n\n default:\n return messages;\n }\n }\n}\n\nconst useAgentGenerator = (params: UseAgentGeneratorProps) => {\n const {\n url,\n token,\n config,\n onError,\n onMessage,\n onSuccess,\n ...rest\n } = params;\n\n const textSpeed = 60;\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 聊天记录分页设置\n // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });\n // 会话记录\n const [sessionList, setSessionList] = useState<sessionData[]>([]);\n // 会话请求是否加载中\n // const [sessionLoading, setSessionLoading] = useState<boolean>(false);\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo, pt, tc } = config || {};\n\n // 消息处理器\n const messageProcessor = useMemo(() => new MessageProcessor(textSpeed), [textSpeed]);\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const result = await fetchAppConfig({ url, ...config });\n if (result.success) {\n setAppInfo(result.data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据流处理\n useEffect(() => {\n if (!responseData) return;\n\n setMessages((prev) => messageProcessor.processResponse(prev, responseData));\n }, [responseData, messageProcessor]);\n\n // 添加对话(非交互触发)\n const setMessage = useCallback(async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n if (prologueIndex === -1) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: { text: content },\n extra: { prologue: true, noFooter: true },\n };\n return [newMessage, ...prev];\n }\n\n return prev.map((item) => (item.extra?.prologue && item.content && 'text' in item.content\n ? { ...item, content: { text: content } } as TextMessage\n : item));\n });\n break;\n }\n\n case 'suggest': {\n setMessages((prev) => {\n const suggestIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n\n if (suggestIndex === -1) {\n const newMessages = [...prev];\n const insertIndex = prologueIndex === -1 ? 0 : prologueIndex + 1;\n newMessages.splice(insertIndex, 0, newSuggestion);\n return newMessages;\n }\n\n return prev.map((item) => (item.type === 'SuggestionMessage'\n ? { ...item, content }\n : item));\n });\n break;\n }\n\n default:\n console.warn(`Unknown message type: ${messageType}`);\n }\n }, []);\n\n // 简单对话\n const chat = async <T = any>(content: T, extra?: any, insert = true) => {\n if (insert) {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n extra,\n content: { text: content as string },\n };\n\n setMessages((prev) => {\n const newMessages = prev.filter((item) => item.type !== 'SuggestionMessage');\n newMessages.push(newMessage);\n return newMessages;\n });\n }\n\n const requestBody: any = {\n appParams: {\n inputs_msg: content,\n },\n sessionId: currentSessionId,\n };\n\n start(\n `${url}/appouter/${appNo}/sendMsg?pt=${pt}&tc=${tc}`,\n requestBody,\n {\n Authorization: `Bearer ${token}`,\n },\n );\n };\n\n // 重新生成方法\n const reChat = useCallback(() => {\n setMessages((prev) => {\n const newMessages = [...prev];\n\n // 删除最新 AI 消息\n const lastAIIndex = newMessages?.findLastIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage'\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n\n // 删除建议消息\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestIndex !== -1) {\n newMessages.splice(suggestIndex, 1);\n }\n\n // 找到最后一条用户消息重新发送\n const lastUserMsg = newMessages.findLast(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n\n if (lastUserMsg?.content?.text) {\n setTimeout(() => {\n chat(lastUserMsg.content.text as string, lastUserMsg.extra, false);\n }, 0);\n }\n\n return newMessages;\n });\n }, [chat]);\n\n // 停止对话\n const stopChat = () => {\n stop();\n setMessages((prev) => prev.map((m) => {\n // 所有进行中的消息变更为结束\n if (m.status === MessageStatus.pending || m.status === MessageStatus.init) {\n const newMsg = { ...m, status: MessageStatus.done };\n if (m.type === 'TextMessage' && m.status === MessageStatus.init) {\n (newMsg as TextMessage).content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n return newMsg;\n }\n return m;\n }));\n };\n\n // 初始化历史记录\n const formatMessages = (data: any, init = false) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n execute: [],\n status: MessageStatus.done,\n isLike: item.isLike,\n raw: item.raw,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n if (init) {\n return [...initMessagesList];\n }\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n const result = await fetchSessionList({\n url,\n appNo,\n pt,\n tc,\n token,\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.success) {\n const resultData = result?.data?.data || [];\n if (resultData.length > 0) {\n const formatSessions = resultData.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.gmtCreated).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: result?.data?.pageNum, pageSize: result?.data?.pageSize, total: result?.data?.totalCount });\n const { sessionId } = resultData[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 设置当前会话详情\n const setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const sessionResult = await fetchSessionDetail({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n\n if (sessionResult?.success) {\n const sessionsData = sessionResult?.data?.list?.reduce((acc: any[], cur) => {\n const msgs = (cur.sessionMessages || []).map((msg) => ({\n ...msg,\n raw: cur,\n isLike: cur?.isLike,\n }));\n return [...acc, ...msgs];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData, true);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(uuidV4());\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const result = await delSessionId({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n if (result?.success) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n createNewChat();\n }\n }\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const result = await updateSessionTitle({\n url,\n appNo,\n pt,\n tc,\n title,\n sessionId,\n token,\n });\n if (result?.success) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 生成新对话\n const createNewChat = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionList,\n currentSessionId,\n sessionPagination,\n initAppConversations,\n reChat,\n chat,\n createNewChat,\n setCurrentSessionId,\n setCurrentSessionDetail,\n updateSession,\n deleteSession,\n setMessage,\n setMessages,\n stopChat,\n initPrologue,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ interface IResponseData {
2
+ code: string;
3
+ httpCode?: number;
4
+ data: string | {
5
+ message: string;
6
+ };
7
+ message: string;
8
+ content: string;
9
+ requestId: string;
10
+ sessionId: string;
11
+ error?: boolean;
12
+ success?: boolean;
13
+ }
14
+ interface UseEventStreamProps {
15
+ streaming: boolean;
16
+ options?: RequestInit;
17
+ onOpen?: (response: Response) => void;
18
+ onError?: (error: Error) => void;
19
+ onClose?: () => void;
20
+ textSpeed?: number;
21
+ }
22
+ interface UseEventStreamReturn {
23
+ responseData: IResponseData | Record<any, any>;
24
+ loading: boolean;
25
+ start: (url: string, values?: any, headers?: Record<string, string>) => void;
26
+ stop: () => void;
27
+ onError?: (error: Error) => void;
28
+ }
29
+ export declare const useEventStreamRequest: ({ onOpen, onError, streaming, onClose, textSpeed, }: UseEventStreamProps) => UseEventStreamReturn;
30
+ export default useEventStreamRequest;
@@ -0,0 +1,33 @@
1
+ import type { XAiContextType } from "../context/AiProviderContext";
2
+ export interface UseProviderContextOptions<T> {
3
+ props: T;
4
+ providerProps?: (keyof XAiContextType)[];
5
+ mergeLogic?: (props: T, context: XAiContextType | undefined) => T;
6
+ }
7
+ export interface UseProviderContextReturn<T> {
8
+ mergedProps: T;
9
+ isInProvider: boolean;
10
+ context: XAiContextType | undefined;
11
+ getProviderValue: <K extends keyof XAiContextType>(key: K) => XAiContextType[K] | undefined;
12
+ }
13
+ export type MethodCaller<T extends any[] = any[], R = any> = (...args: T) => R;
14
+ export interface ProviderMethods {
15
+ isInProvider: boolean;
16
+ sendMessage: MethodCaller<[string], void>;
17
+ stopGeneration: MethodCaller<[], void>;
18
+ clearMessages: MethodCaller<[], void>;
19
+ regenerateLastMessage: MethodCaller<[string], void>;
20
+ }
21
+ /**
22
+ * 通用的 Provider 上下文 Hook
23
+ * 用于判断组件是否在 XAiProvider 中,并合并相关属性
24
+ */
25
+ export declare const useProviderContext: <T extends Record<string, any>>(options: UseProviderContextOptions<T>) => UseProviderContextReturn<T>;
26
+ /**
27
+ * 专门为 XAiChatbot 设计的 Hook
28
+ */
29
+ export declare const useChatbotContext: (componentProps: any) => UseProviderContextReturn<any>;
30
+ /**
31
+ * 通用的 Provider 方法调用 Hook
32
+ */
33
+ export declare const useProviderMethods: () => ProviderMethods;
@@ -0,0 +1,156 @@
1
+ import React, { ReactNode, RefObject, MouseEvent, ReactElement } from 'react';
2
+ import type { PromptProps } from '@ant-design/x';
3
+ import type { MessageType } from 'src/client/base';
4
+ import type { Messages } from './XAiMessage';
5
+ export interface User {
6
+ id: string;
7
+ name: string;
8
+ avatar?: string;
9
+ }
10
+ export interface MessageProps {
11
+ _id: string;
12
+ type: string;
13
+ content: Record<string, any>;
14
+ createdAt: number;
15
+ user: User;
16
+ position?: 'left' | 'right' | 'center' | 'pop';
17
+ hasTime?: boolean;
18
+ status?: 'pending' | 'sent' | 'fail';
19
+ }
20
+ export interface QuickReplyItemProps {
21
+ name: string;
22
+ code: string;
23
+ icon?: string;
24
+ img?: string;
25
+ isNew?: boolean;
26
+ isHighlight?: boolean;
27
+ }
28
+ export interface ComposerHandle {
29
+ setText: (text: string) => void;
30
+ }
31
+ export interface ScrollToEndOptions {
32
+ animated?: boolean;
33
+ force?: boolean;
34
+ }
35
+ export interface MessageContainerHandle {
36
+ scrollToEnd: (options?: ScrollToEndOptions) => void;
37
+ }
38
+ export interface NavbarProps {
39
+ title?: string;
40
+ subtitle?: string;
41
+ avatar?: string;
42
+ }
43
+ export interface ToolbarItemProps {
44
+ id: string;
45
+ icon: string;
46
+ label: string;
47
+ disabled?: boolean;
48
+ }
49
+ export interface IconButtonProps {
50
+ icon: string;
51
+ onClick: () => void;
52
+ disabled?: boolean;
53
+ }
54
+ export interface RecorderProps {
55
+ onStart?: () => void;
56
+ onStop?: (audioBlob: Blob) => void;
57
+ onError?: (error: Error) => void;
58
+ }
59
+ export type InputType = 'text' | 'voice';
60
+ export interface ChatbotMessageFields {
61
+ messages?: MessageType[];
62
+ setMessages?: React.Dispatch<React.SetStateAction<MessageType[]>>;
63
+ /** 发送消息回调 */
64
+ onSend?: (type: string, content: string) => void;
65
+ /** 清空消息回调 */
66
+ onClear?: () => void;
67
+ /** 停止生成回调 */
68
+ onStop?: () => void;
69
+ }
70
+ export interface ActionItem {
71
+ key?: string;
72
+ icon?: React.ReactNode;
73
+ render?: (index: number, msg: any) => React.ReactNode;
74
+ tooltip?: string;
75
+ }
76
+ /**
77
+ * AI 聊天机器人组件
78
+ */
79
+ export interface XAiChatbotProps extends ChatbotMessageFields {
80
+ /** 宽屏断点 */
81
+ wideBreakpoint?: string;
82
+ /** 导航栏展示 */
83
+ navbarShow?: boolean;
84
+ /** 导航栏配置 */
85
+ navbar?: NavbarProps;
86
+ /** 导航栏渲染函数,会覆盖 navbar */
87
+ renderNavbar?: () => ReactNode;
88
+ /** 是否加载中 */
89
+ loading?: boolean;
90
+ /** 加载更多文案 */
91
+ loadMoreText?: string;
92
+ /** 在消息列表上面的渲染函数 */
93
+ renderBeforeMessageList?: () => ReactNode;
94
+ /** 消息列表 ref */
95
+ messagesRef?: RefObject<MessageContainerHandle>;
96
+ /** 下拉加载回调 */
97
+ onRefresh?: () => Promise<any>;
98
+ /** 滚动消息列表回调 */
99
+ onScroll?: (event: React.UIEvent<HTMLDivElement, UIEvent>) => void;
100
+ /** 消息内容渲染函数 */
101
+ renderMessageContent?: (message: MessageProps) => ReactNode;
102
+ /** 快捷短语列表 */
103
+ quickReplies?: QuickReplyItemProps[];
104
+ /** 快捷短语是否可见 */
105
+ quickRepliesVisible?: boolean;
106
+ /** 输入框初始内容 */
107
+ text?: string;
108
+ /** 空状态渲染插槽 */
109
+ empty?: ReactElement;
110
+ /** 空状态图片 */
111
+ emptyStateImage?: string;
112
+ /** 空状态文案 */
113
+ emptyStateText?: string;
114
+ /** 输入框占位符 */
115
+ placeholder?: string;
116
+ /** 输入框粘贴图片后的回调 */
117
+ onImageSend?: (file: File) => Promise<any>;
118
+ /** 输入方式 */
119
+ inputType?: InputType;
120
+ /** 语音输入配置 */
121
+ recorder?: RecorderProps;
122
+ /** 工具栏配置 */
123
+ toolbar?: ToolbarItemProps[];
124
+ /** AI头像 */
125
+ avatar?: ReactNode;
126
+ /** 用户头像 */
127
+ userAvatar?: ReactNode;
128
+ /** 发送按钮 */
129
+ sendBtn?: ReactNode;
130
+ /** 是否展示清空按钮 */
131
+ clearBtnShow?: boolean;
132
+ /** 工具栏点击回调 */
133
+ onToolbarClick?: (item: ToolbarItemProps, event: MouseEvent) => void;
134
+ /** 工具栏打开/关闭回调 */
135
+ onAccessoryToggle?: (isAccessoryOpen: boolean) => void;
136
+ /** 输入框右边图标按钮配置 */
137
+ rightAction?: IconButtonProps;
138
+ /** 上传按钮是否显示 */
139
+ uploadBtnShow?: boolean;
140
+ /** 底部文案 */
141
+ footerTips?: string;
142
+ /** 帮助消息点击回调 */
143
+ onSuggestMessageClick?: (item: PromptProps, id: string) => void;
144
+ /** 消息左下角展示字段 */
145
+ messageTooltip?: (msg: Messages) => React.ReactNode;
146
+ /** 消息右下角功能区 */
147
+ messageActions?: ActionItem[];
148
+ /** 消息右下角功能区点击回调 */
149
+ onMessagesActionsCallback?: (index: number, data: Messages) => void;
150
+ /** 输入组件 */
151
+ Composer?: React.ElementType;
152
+ /** 是否展示输入框 */
153
+ inputShow?: boolean;
154
+ /** 消息顶部 */
155
+ messageHeader?: ReactNode;
156
+ }