@ai-group/chat-sdk 2.1.0 → 2.1.3

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 (76) hide show
  1. package/dist/cjs/components/XAdkChatbot/index.js +61 -98
  2. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  3. package/dist/cjs/components/XAdkChatbot/styles.js +0 -1
  4. package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
  5. package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
  6. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +93 -0
  7. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +7 -0
  8. package/dist/cjs/components/XAdkSender/index.d.ts +4 -0
  9. package/dist/cjs/components/XAdkSender/index.js +444 -0
  10. package/dist/cjs/components/XAdkSender/index.js.map +7 -0
  11. package/dist/cjs/components/XAdkSender/styles.d.ts +56 -0
  12. package/dist/cjs/components/XAdkSender/styles.js +340 -0
  13. package/dist/cjs/components/XAdkSender/styles.js.map +7 -0
  14. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +2 -2
  15. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +2 -2
  16. package/dist/cjs/components/XAdkWebProvider/index.js +8 -5
  17. package/dist/cjs/components/XAdkWebProvider/index.js.map +2 -2
  18. package/dist/cjs/components/XAdkWebProvider/styles.d.ts +1 -0
  19. package/dist/cjs/components/XAdkWebProvider/styles.js +7 -1
  20. package/dist/cjs/components/XAdkWebProvider/styles.js.map +2 -2
  21. package/dist/cjs/components/XAiConversations/index.js +1 -1
  22. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  23. package/dist/cjs/components/XAiConversations/styles.d.ts +1 -0
  24. package/dist/cjs/components/XAiConversations/styles.js +3 -0
  25. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  26. package/dist/cjs/components/XAiSender/index.js +17 -35
  27. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  28. package/dist/cjs/hooks/useADKChat.d.ts +2 -2
  29. package/dist/cjs/hooks/useADKChat.js +10 -6
  30. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  31. package/dist/cjs/types/XAdkChatbot.d.ts +6 -1
  32. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  33. package/dist/cjs/types/XAdkProvider.d.ts +1 -0
  34. package/dist/cjs/types/XAdkProvider.js.map +1 -1
  35. package/dist/cjs/types/XAdkSender.d.ts +38 -0
  36. package/dist/cjs/types/XAdkSender.js +18 -0
  37. package/dist/cjs/types/XAdkSender.js.map +7 -0
  38. package/dist/esm/components/XAdkChatbot/index.js +74 -125
  39. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  40. package/dist/esm/components/XAdkChatbot/styles.js +1 -1
  41. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  42. package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
  43. package/dist/esm/components/XAdkSender/XAdkSender.stories.js +77 -0
  44. package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +1 -0
  45. package/dist/esm/components/XAdkSender/index.d.ts +4 -0
  46. package/dist/esm/components/XAdkSender/index.js +611 -0
  47. package/dist/esm/components/XAdkSender/index.js.map +1 -0
  48. package/dist/esm/components/XAdkSender/styles.d.ts +56 -0
  49. package/dist/esm/components/XAdkSender/styles.js +50 -0
  50. package/dist/esm/components/XAdkSender/styles.js.map +1 -0
  51. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +3 -2
  52. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
  53. package/dist/esm/components/XAdkWebProvider/index.js +41 -31
  54. package/dist/esm/components/XAdkWebProvider/index.js.map +1 -1
  55. package/dist/esm/components/XAdkWebProvider/styles.d.ts +1 -0
  56. package/dist/esm/components/XAdkWebProvider/styles.js +4 -2
  57. package/dist/esm/components/XAdkWebProvider/styles.js.map +1 -1
  58. package/dist/esm/components/XAiConversations/index.js +1 -0
  59. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  60. package/dist/esm/components/XAiConversations/styles.d.ts +1 -0
  61. package/dist/esm/components/XAiConversations/styles.js +15 -14
  62. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  63. package/dist/esm/components/XAiSender/index.js +16 -22
  64. package/dist/esm/components/XAiSender/index.js.map +1 -1
  65. package/dist/esm/hooks/useADKChat.d.ts +2 -2
  66. package/dist/esm/hooks/useADKChat.js +38 -30
  67. package/dist/esm/hooks/useADKChat.js.map +1 -1
  68. package/dist/esm/types/XAdkChatbot.d.ts +6 -1
  69. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  70. package/dist/esm/types/XAdkProvider.d.ts +1 -0
  71. package/dist/esm/types/XAdkProvider.js.map +1 -1
  72. package/dist/esm/types/XAdkSender.d.ts +38 -0
  73. package/dist/esm/types/XAdkSender.js +2 -0
  74. package/dist/esm/types/XAdkSender.js.map +1 -0
  75. package/dist/umd/chat-sdk.min.js +1 -1
  76. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useCallback","useMemo","useRef","useState","fetchEventSource","EventStreamContentType","message","v4","SESSION_PAGE_SIZE","API_SUCCESS_CODE","ErrorCode","SuccessCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","text","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","url","token","_ref$config","config","_ref$type","type","onError","onMessage","onSuccess","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","_useState3","appVersionNo","appTheme","appName","onboardingInfo","prologue","questionFiles","suggested_questions","_useState4","appInfo","setAppInfo","_useState5","_useState6","sessionList","setSessionList","_useState7","_useState8","currentSessionId","setCurrentSessionId","_useState9","total","pageNum","pageSize","_useState10","sessionPagination","setSessionPagination","_useState11","_useState12","setPrologue","_useState13","_useState14","suggestedQuestions","setSuggestedQuestions","_useState15","_useState16","messages","setMessages","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","arguments","insertPrologue","updateMessage","m","storeEvents","event","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","role","author","invocationId","eventId","timestamp","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","Object","keys","processPart","_event$groundingMetad2","newChunk","newMessage","partial","processFollowupPart","_event$content","content","processErrorMessage","chunkJson","processActionArtifact","sendMessageRequest","values","Promise","resolve","abort","AbortController","requestUrl","method","signal","body","JSON","stringify","openWhenHidden","headers","stream","Authorization","onopen","response","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","next","ok","get","status","stop","onmessage","error","warning","_iterator2","_step2","onclose","onerror","console","startChat","_ref3","_callee2","_callee2$","_context2","abrupt","trim","sessionId","initAppConversations","_x","apply","suggestChat","stopChat","_ctrl$current","clearChat","setTimeout","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","fileData","raw","fileUri","setCurrentSessionDetail","_ref4","_callee3","_yield$fetchSessionDe","_data","_appInfo$onboardingIn","_appInfo$onboardingIn2","_callee3$","_context3","sent","_x2","_ref5","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","_data2","pagination","formatSessions","_data2$","_args4","_callee4$","_context4","key","label","Date","sessionTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref6","_callee5","_yield$closeSession","_callee5$","_context5","_x3","updateSession","_ref7","_callee6","_yield$updateSessionT","_callee6$","_context6","_x4","_x5","initConfig","_ref8","_callee7","_yield$fetchAppConfig","_data3","_callee7$","_context7","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","API_ERROR","suggestions"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from 'react';\nimport { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';\nimport { message } from 'antd';\nimport { v4 } from 'uuid';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport type { AgentRunRequest, Event, FunctionResponse, IMessage, Part } from '@/types';\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from '@/constants';\nimport { type Error, ErrorCode, type SendContent, type Success, SuccessCode, type SessionData } from '@/types';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, closeSession, updateSessionTitle, type ChatConfig } from '@/services/api';\nimport { safeJsonParse } from '@/utils';\n\nexport interface DebugOptions {\n url: string\n sessionId?: string;\n config: any;\n token: string;\n type?: 'agentDebug' | 'appDebug';\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\nconst combineTextParts = (parts: Part[]) => {\n const result: Part[] = [];\n let combinedTextPart: Part|undefined;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const part of parts) {\n if (part.text) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text += part.text;\n }\n } else {\n combinedTextPart = undefined;\n result.push(part);\n }\n }\n return result;\n};\n\nfunction useADKChat({\n url,\n token,\n config = {},\n type = 'agentDebug',\n onError,\n onMessage,\n onSuccess,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo } = config || {};\n // 智能体信息\n const [appInfo, setAppInfo] = useState<ChatConfig>({\n appNo,\n appVersionNo: '',\n appTheme: '',\n appName: '',\n onboardingInfo: {\n prologue: '',\n questionFiles: [],\n suggested_questions: [],\n },\n });\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 开场白\n const [prologue, setPrologue] = useState<string>('');\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n const mergedMessages = useMemo(() => {\n const fnResMap: Record<string, FunctionResponse> = {};\n messages.forEach((msg) => {\n if (msg.functionResponse) {\n fnResMap[msg?.functionResponse?.id || ''] = msg.functionResponse;\n }\n });\n return messages.map((msg) => {\n if (msg.functionCall) {\n return {\n ...msg,\n functionResponse: fnResMap[msg?.functionCall?.id || ''],\n };\n }\n return msg;\n });\n }, [messages]);\n const textMsgRef = useRef<IMessage>(null);\n const eventDataRef = useRef<Map<string, any>>(new Map());\n\n // 插入消息\n const insertMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n const lastMessage = prev[prev.length - 1];\n if (lastMessage?.isLoading) {\n return [...prev.slice(0, -1), msg, lastMessage];\n }\n return [...prev, msg];\n });\n }, []);\n\n // 初始化开场白预设置问题\n const insertSuggestedQuestions = (suggested_questions: string[] = []) => {\n if (!suggested_questions?.length) return;\n // 无消息内容 且 有建议问题时\n if (messages.length === 0 && suggested_questions.length) {\n setSuggestedQuestions(suggested_questions);\n };\n };\n\n // 初始化开场白\n const insertPrologue = (prologue: string) => {\n if (prologue) {\n setPrologue(prologue);\n }\n };\n\n // 更新消息\n const updateMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n return prev.map((m) => {\n if (m.id === msg.id) {\n return msg;\n }\n return m;\n });\n });\n }, []);\n\n // 存储事件\n const storeEvents = useCallback((part: Part | null, event: any) => {\n let title = '';\n\n if (part == null && event.actions?.artifactDelta) {\n title += 'eventAction: artifact';\n } else if (part) {\n if (part.text) {\n title += `text:${part.text}`;\n } else if (part.functionCall) {\n title += `functionCall:${part.functionCall.name}`;\n } else if (part.functionResponse) {\n title += `functionResponse:${part.functionResponse.name}`;\n } else if (part.executableCode) {\n title += `executableCode:${part.executableCode.code?.slice(0, 10)}`;\n } else if (part.codeExecutionResult) {\n title += `codeExecutionResult:${part.codeExecutionResult.outcome}`;\n } else if (part.errorMessage) {\n title += `errorMessage:${part.errorMessage}`;\n }\n }\n\n const updatedEvent = { ...event, title };\n\n const newEventData = new Map(eventDataRef.current);\n newEventData.set(event.id, updatedEvent);\n eventDataRef.current = newEventData;\n }, []);\n\n // 存储消息\n const storeMessage = useCallback((\n part: Part | null,\n event: Event,\n role: 'user' | 'bot',\n ) => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role,\n };\n\n if (part) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n };\n } else if (part.text) {\n msg.text = part.text;\n msg.thought = part.thought;\n\n if (event?.groundingMetadata?.searchEntryPoint?.renderedContent) {\n msg.renderedContent = event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.functionCall) {\n msg.functionCall = part.functionCall;\n } else if (part.functionResponse) {\n msg.functionResponse = part.functionResponse;\n } else if (part.executableCode) {\n msg.executableCode = part.executableCode;\n } else if (part.codeExecutionResult) {\n msg.codeExecutionResult = part.codeExecutionResult;\n }\n }\n\n if (part && Object.keys(part).length > 0) {\n insertMessage(msg);\n }\n }, [insertMessage]);\n\n // 处理消息部分(关键更新)\n const processPart = useCallback((event: Event, part: Part) => {\n const renderedContent = event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n const newChunk = part.text;\n\n if (!textMsgRef.current || textMsgRef.current.thought !== part.thought) {\n const newMessage: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role: 'bot',\n text: newChunk,\n thought: part.thought,\n };\n\n if (renderedContent) {\n newMessage.renderedContent = renderedContent;\n }\n\n textMsgRef.current = newMessage;\n // 存储原数据\n storeEvents(part, event);\n // 插入消息\n insertMessage(newMessage);\n } else {\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n return;\n }\n if (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...textMsgRef.current,\n text: (textMsgRef.current.text || '') + newChunk,\n };\n updateMessage(textMsgRef.current);\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(\n part,\n event,\n 'bot',\n );\n }\n }, [storeEvents, storeMessage, insertMessage, updateMessage]);\n\n // 处理建议类消息\n const processFollowupPart = useCallback((event: Event) => {\n // 获取建议类消息的文本内容\n const part = event?.content?.parts?.[0] || null;\n const text = part?.text || '';\n storeEvents(part, event);\n if (text) {\n setSuggestedQuestions((prev) => [...prev, text]);\n }\n }, [storeEvents, insertMessage]);\n\n // 处理错误消息\n const processErrorMessage = useCallback((chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: 'bot',\n });\n }, [storeEvents, insertMessage]);\n\n // 处理动作和制品\n const processActionArtifact = useCallback((event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, 'bot');\n }\n }, [storeEvents, storeMessage]);\n\n // 发送消息请求\n const sendMessageRequest = useCallback((values: AgentRunRequest) => {\n return new Promise<void>((resolve) => {\n if (ctrl.current) {\n ctrl.current.abort();\n }\n setLoading(true);\n ctrl.current = new AbortController();\n const requestUrl = `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`;\n\n fetchEventSource(requestUrl, {\n method: 'POST',\n signal: ctrl.current.signal,\n body: JSON.stringify(values),\n openWhenHidden: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n stream: 'true',\n Authorization: `Bearer ${token}`,\n },\n async onopen(response) {\n if (response.ok && response.headers.get('content-type') === EventStreamContentType) {\n // everything's good\n } else if (response.status >= 400 && response.status < 500 && response.status !== 429) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const chunkJson: Event = safeJsonParse(event.data, {});\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n if (chunkJson.content) {\n // 建议类消息单独处理 \n if (chunkJson.content.role === 'followup') {\n processFollowupPart(chunkJson);\n return;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const part of combineTextParts(chunkJson.content.parts)) {\n processPart(chunkJson, part);\n }\n } else if (chunkJson.errorMessage) {\n processErrorMessage(chunkJson);\n } else if (chunkJson.actions) {\n processActionArtifact(chunkJson);\n }\n },\n onclose: () => {\n setLoading(false);\n textMsgRef.current = null;\n resolve();\n },\n onerror: (error) => {\n setLoading(false);\n resolve();\n console.error('EventSource failed:', error);\n throw error;\n },\n });\n });\n }, [type, currentSessionId, processActionArtifact, processErrorMessage, processPart]);\n\n // 发送会话\n const startChat = async (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n return [...prev, {\n id: v4(),\n role: 'user',\n text,\n }];\n });\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: 'user',\n parts: [{\n text,\n }],\n },\n });\n // 获取聊天记录\n initAppConversations();\n };\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat(text);\n };\n // 停止会话\n const stopChat = useCallback(() => {\n ctrl.current?.abort();\n setLoading(false);\n textMsgRef.current = null;\n }, [ctrl]);\n\n // 清除会话\n const clearChat = () => {\n setCurrentSessionId(v4());\n // 重置聊天内容\n setTimeout(() => {\n stopChat();\n setMessages([]);\n })\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role = (item.content.role || '').toLowerCase() === 'user' ? 'user' : 'bot';\n const parts = Array.isArray(item.content.parts)\n ? item.content.parts.filter((p: any) => {\n if (!p) return false;\n return Boolean(\n p.text || p.inlineData || p.functionCall || p.functionResponse || p.fileData || p.executableCode || p.codeExecutionResult || p.errorMessage\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n parts.forEach((part: any) => {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n role,\n raw: item,\n } as IMessage;\n\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n } as any;\n }\n if (part.text) {\n msg.text = part.text;\n if (typeof part.thought !== 'undefined') msg.thought = part.thought;\n }\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.functionResponse) msg.functionResponse = part.functionResponse;\n if (part.fileData) {\n msg.inlineData = {\n displayName: part.fileData.displayName || '',\n data: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n } as any;\n }\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult) msg.codeExecutionResult = part.codeExecutionResult;\n if (part.errorMessage) msg.text = part.errorMessage;\n\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\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 { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n // 新接口直接返回按 event/item 结构的数组,传入 formatMessages 处理\n if (Array.isArray(data) && data.length > 0) {\n formatMessages(data, true);\n setPrologue(appInfo?.onboardingInfo?.prologue || '');\n } else {\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n }\n }\n\n \n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setLoading(true);\n\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.sessionTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: sessionPagination.pageNum, pageSize: sessionPagination.pageSize, total: pagination?.total || 0 });\n const { sessionId } = data?.[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue('');\n setSuggestedQuestions([]);\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue('');\n setSuggestedQuestions([]);\n }\n } catch {\n //\n } finally {\n setLoading(false);\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\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 title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setLoading(true);\n const { data, result } = await fetchAppConfig({ url, appNo });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\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 } finally {\n setLoading(false);\n }\n };\n\n // 初始化—获取配置\n useEffect(() => {\n if (url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n currentSessionId,\n sessionList,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useCallback","useMemo","useRef","useState","fetchEventSource","EventStreamContentType","message","v4","SESSION_PAGE_SIZE","API_SUCCESS_CODE","ErrorCode","SuccessCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","text","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","url","token","_ref$config","config","_ref$type","type","onError","onMessage","onSuccess","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","_useState3","appVersionNo","appTheme","appName","onboardingInfo","prologue","questionFiles","suggested_questions","_useState4","appInfo","setAppInfo","_useState5","_useState6","initialized","setInitialized","_useState7","_useState8","sessionList","setSessionList","_useState9","_useState10","currentSessionId","setCurrentSessionId","_useState11","total","pageNum","pageSize","_useState12","sessionPagination","setSessionPagination","_useState13","_useState14","setPrologue","_useState15","_useState16","suggestedQuestions","setSuggestedQuestions","_useState17","_useState18","messages","setMessages","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","arguments","insertPrologue","updateMessage","m","storeEvents","event","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","role","author","invocationId","eventId","timestamp","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","Object","keys","processPart","_event$groundingMetad2","newChunk","newMessage","partial","processFollowupPart","_event$content","content","processErrorMessage","chunkJson","processActionArtifact","sendMessageRequest","values","Promise","resolve","abort","AbortController","requestUrl","method","signal","body","JSON","stringify","openWhenHidden","headers","stream","Authorization","onopen","response","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","next","ok","get","status","stop","onmessage","error","warning","_iterator2","_step2","onclose","onerror","console","startChat","_ref3","_callee2","_callee2$","_context2","abrupt","trim","sessionId","initAppConversations","_x","apply","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","newSessionId","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","fileData","raw","fileUri","setCurrentSessionDetail","_ref4","_callee3","_yield$fetchSessionDe","_data","_appInfo$onboardingIn2","_appInfo$onboardingIn3","_callee3$","_context3","sent","_x2","_ref5","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","_data2","pagination","formatSessions","_data2$","_args4","_callee4$","_context4","key","label","Date","sessionTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref6","_callee5","_yield$closeSession","_callee5$","_context5","_x3","updateSession","_ref7","_callee6","_yield$updateSessionT","_callee6$","_context6","_x4","_x5","initConfig","_ref8","_callee7","_yield$fetchAppConfig","_data3","_callee7$","_context7","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","API_ERROR","suggestions"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from 'react';\nimport { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';\nimport { message } from 'antd';\nimport { v4 } from 'uuid';\nimport type { AgentRunRequest, Event, FunctionResponse, IMessage, Part } from '@/types';\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from '@/constants';\nimport { type Error, ErrorCode, type SendContent, type Success, SuccessCode, type SessionData } from '@/types';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, closeSession, updateSessionTitle, type ChatConfig } from '@/services/api';\nimport { safeJsonParse } from '@/utils';\n\nexport interface DebugOptions {\n url: string\n sessionId?: string;\n config: any;\n token: string;\n type?: 'agentDebug' | 'appDebug';\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: IMessage) => void;\n}\n\nconst combineTextParts = (parts: Part[]) => {\n const result: Part[] = [];\n let combinedTextPart: Part|undefined;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const part of parts) {\n if (part.text) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text += part.text;\n }\n } else {\n combinedTextPart = undefined;\n result.push(part);\n }\n }\n return result;\n};\n\nfunction useADKChat({\n url,\n token,\n config = {},\n type = 'agentDebug',\n onError,\n onMessage,\n onSuccess,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo } = config || {};\n // 智能体信息\n const [appInfo, setAppInfo] = useState<ChatConfig>({\n appNo,\n appVersionNo: '',\n appTheme: '',\n appName: '',\n onboardingInfo: {\n prologue: '',\n questionFiles: [],\n suggested_questions: [],\n },\n });\n // 初始化完成\n const [initialized, setInitialized] = useState(false);\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 开场白\n const [prologue, setPrologue] = useState<string>('');\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n const mergedMessages = useMemo(() => {\n const fnResMap: Record<string, FunctionResponse> = {};\n messages.forEach((msg) => {\n if (msg.functionResponse) {\n fnResMap[msg?.functionResponse?.id || ''] = msg.functionResponse;\n }\n });\n return messages.map((msg) => {\n if (msg.functionCall) {\n return {\n ...msg,\n functionResponse: fnResMap[msg?.functionCall?.id || ''],\n };\n }\n return msg;\n });\n }, [messages]);\n const textMsgRef = useRef<IMessage>(null);\n const eventDataRef = useRef<Map<string, any>>(new Map());\n\n // 插入消息\n const insertMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n const lastMessage = prev[prev.length - 1];\n if (lastMessage?.isLoading) {\n return [...prev.slice(0, -1), msg, lastMessage];\n }\n return [...prev, msg];\n });\n }, []);\n\n // 初始化开场白预设置问题\n const insertSuggestedQuestions = (suggested_questions: string[] = []) => {\n if (!suggested_questions?.length) return;\n // 无消息内容 且 有建议问题时\n if (messages.length === 0 && suggested_questions.length) {\n setSuggestedQuestions(suggested_questions);\n };\n };\n\n // 初始化开场白\n const insertPrologue = (prologue: string) => {\n if (prologue) {\n setPrologue(prologue);\n }\n };\n\n // 更新消息\n const updateMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n return prev.map((m) => {\n if (m.id === msg.id) {\n return msg;\n }\n return m;\n });\n });\n }, []);\n\n // 存储事件\n const storeEvents = useCallback((part: Part | null, event: any) => {\n let title = '';\n\n if (part == null && event.actions?.artifactDelta) {\n title += 'eventAction: artifact';\n } else if (part) {\n if (part.text) {\n title += `text:${part.text}`;\n } else if (part.functionCall) {\n title += `functionCall:${part.functionCall.name}`;\n } else if (part.functionResponse) {\n title += `functionResponse:${part.functionResponse.name}`;\n } else if (part.executableCode) {\n title += `executableCode:${part.executableCode.code?.slice(0, 10)}`;\n } else if (part.codeExecutionResult) {\n title += `codeExecutionResult:${part.codeExecutionResult.outcome}`;\n } else if (part.errorMessage) {\n title += `errorMessage:${part.errorMessage}`;\n }\n }\n\n const updatedEvent = { ...event, title };\n\n const newEventData = new Map(eventDataRef.current);\n newEventData.set(event.id, updatedEvent);\n eventDataRef.current = newEventData;\n }, []);\n\n // 存储消息\n const storeMessage = useCallback((\n part: Part | null,\n event: Event,\n role: 'user' | 'bot',\n ) => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role,\n };\n\n if (part) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n };\n } else if (part.text) {\n msg.text = part.text;\n msg.thought = part.thought;\n\n if (event?.groundingMetadata?.searchEntryPoint?.renderedContent) {\n msg.renderedContent = event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.functionCall) {\n msg.functionCall = part.functionCall;\n } else if (part.functionResponse) {\n msg.functionResponse = part.functionResponse;\n } else if (part.executableCode) {\n msg.executableCode = part.executableCode;\n } else if (part.codeExecutionResult) {\n msg.codeExecutionResult = part.codeExecutionResult;\n }\n }\n\n if (part && Object.keys(part).length > 0) {\n insertMessage(msg);\n }\n }, [insertMessage]);\n\n // 处理消息部分(关键更新)\n const processPart = useCallback((event: Event, part: Part) => {\n const renderedContent = event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n const newChunk = part.text;\n\n if (!textMsgRef.current || textMsgRef.current.thought !== part.thought) {\n const newMessage: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role: 'bot',\n text: newChunk,\n thought: part.thought,\n };\n\n if (renderedContent) {\n newMessage.renderedContent = renderedContent;\n }\n\n textMsgRef.current = newMessage;\n // 存储原数据\n storeEvents(part, event);\n // 插入消息\n insertMessage(newMessage);\n } else {\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n return;\n }\n if (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...textMsgRef.current,\n text: (textMsgRef.current.text || '') + newChunk,\n };\n updateMessage(textMsgRef.current);\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(\n part,\n event,\n 'bot',\n );\n }\n }, [storeEvents, storeMessage, insertMessage, updateMessage]);\n\n // 处理建议类消息\n const processFollowupPart = useCallback((event: Event) => {\n // 获取建议类消息的文本内容\n const part = event?.content?.parts?.[0] || null;\n const text = part?.text || '';\n storeEvents(part, event);\n if (text) {\n setSuggestedQuestions((prev) => [...prev, text]);\n }\n }, [storeEvents, insertMessage]);\n\n // 处理错误消息\n const processErrorMessage = useCallback((chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: 'bot',\n });\n }, [storeEvents, insertMessage]);\n\n // 处理动作和制品\n const processActionArtifact = useCallback((event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, 'bot');\n }\n }, [storeEvents, storeMessage]);\n\n // 发送消息请求\n const sendMessageRequest = useCallback((values: AgentRunRequest) => {\n return new Promise<void>((resolve) => {\n if (ctrl.current) {\n ctrl.current.abort();\n }\n setLoading(true);\n ctrl.current = new AbortController();\n const requestUrl = `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`;\n\n fetchEventSource(requestUrl, {\n method: 'POST',\n signal: ctrl.current.signal,\n body: JSON.stringify(values),\n openWhenHidden: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n stream: 'true',\n Authorization: `Bearer ${token}`,\n },\n async onopen(response) {\n if (response.ok && response.headers.get('content-type') === EventStreamContentType) {\n // everything's good\n } else if (response.status >= 400 && response.status < 500 && response.status !== 429) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const chunkJson: Event = safeJsonParse(event.data, {});\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n if (chunkJson.content) {\n // 建议类消息单独处理 \n if (chunkJson.content.role === 'followup') {\n processFollowupPart(chunkJson);\n return;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const part of combineTextParts(chunkJson.content.parts)) {\n processPart(chunkJson, part);\n }\n } else if (chunkJson.errorMessage) {\n processErrorMessage(chunkJson);\n } else if (chunkJson.actions) {\n processActionArtifact(chunkJson);\n }\n },\n onclose: () => {\n setLoading(false);\n textMsgRef.current = null;\n resolve();\n },\n onerror: (error) => {\n setLoading(false);\n resolve();\n console.error('EventSource failed:', error);\n throw error;\n },\n });\n });\n }, [type, currentSessionId, processActionArtifact, processErrorMessage, processPart]);\n\n // 发送会话\n const startChat = async (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n return [...prev, {\n id: v4(),\n role: 'user',\n text,\n }];\n });\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: 'user',\n parts: [{\n text,\n }],\n },\n });\n // 获取聊天记录\n initAppConversations();\n };\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat(text);\n };\n // 停止会话\n const stopChat = useCallback(() => {\n ctrl.current?.abort();\n setLoading(false);\n textMsgRef.current = null;\n }, [ctrl]);\n\n // 清除会话\n const clearChat = () => {\n const newSessionId = v4();\n setCurrentSessionId(newSessionId);\n // 重置聊天内容\n stopChat();\n setMessages([]);\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role = (item.content.role || '').toLowerCase() === 'user' ? 'user' : 'bot';\n const parts = Array.isArray(item.content.parts)\n ? item.content.parts.filter((p: any) => {\n if (!p) return false;\n return Boolean(\n p.text || p.inlineData || p.functionCall || p.functionResponse || p.fileData || p.executableCode || p.codeExecutionResult || p.errorMessage\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n parts.forEach((part: any) => {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n role,\n raw: item,\n } as IMessage;\n\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n } as any;\n }\n if (part.text) {\n msg.text = part.text;\n if (typeof part.thought !== 'undefined') msg.thought = part.thought;\n }\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.functionResponse) msg.functionResponse = part.functionResponse;\n if (part.fileData) {\n msg.inlineData = {\n displayName: part.fileData.displayName || '',\n data: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n } as any;\n }\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult) msg.codeExecutionResult = part.codeExecutionResult;\n if (part.errorMessage) msg.text = part.errorMessage;\n\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\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 { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n setPrologue(appInfo?.onboardingInfo?.prologue || '');\n // 新接口直接返回按 event/item 结构的数组,传入 formatMessages 处理\n if (Array.isArray(data) && data.length > 0) {\n formatMessages(data, true);\n } else {\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n }\n }\n\n \n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setLoading(true);\n\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.sessionTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: sessionPagination.pageNum, pageSize: sessionPagination.pageSize, total: pagination?.total || 0 });\n const { sessionId } = data?.[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue('');\n setSuggestedQuestions([]);\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n setInitialized(true);\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue('');\n setSuggestedQuestions([]);\n }\n } catch {\n //\n } finally {\n setLoading(false);\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\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 title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setLoading(true);\n const { data, result } = await fetchAppConfig({ url, appNo });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\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 } finally {\n setLoading(false);\n }\n };\n\n // 初始化—获取配置\n useEffect(() => {\n if (url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n initialized,\n currentSessionId,\n sessionList,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { type SendContent } from './XAiSender';
2
3
  export interface IInvocation {
3
4
  id: string;
4
5
  name: string;
@@ -170,6 +171,8 @@ export interface IMessage {
170
171
  }
171
172
  export interface XAdkChatbotProps {
172
173
  loading?: boolean;
174
+ /** 是否支持文件上传 */
175
+ allowUpload?: boolean;
173
176
  /** 消息列表 */
174
177
  messages: IMessage[];
175
178
  /** 开场白 */
@@ -180,6 +183,8 @@ export interface XAdkChatbotProps {
180
183
  showFnCallDetail?: boolean;
181
184
  /** 是否显示清除聊天记录按钮 */
182
185
  clearBtnShow?: boolean;
186
+ /** 是否初始化 */
187
+ initialized?: boolean;
183
188
  /** 底部插槽 */
184
189
  footer?: (props: {
185
190
  message: IMessage;
@@ -187,7 +192,7 @@ export interface XAdkChatbotProps {
187
192
  isLastMsg: boolean;
188
193
  }) => React.ReactNode;
189
194
  /** 提交回调 */
190
- onSubmit?: (text: string) => void;
195
+ onSubmit?: ({ text, files }: SendContent) => void;
191
196
  /** 停止回调 */
192
197
  onStop?: () => void;
193
198
  /** 清除回调 */
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/XAdkChatbot.ts"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface IInvocation {\n id: string;\n name: string;\n spanId: string;\n traceId: string;\n parentSpanId: string;\n startTime: number;\n endTime: number;\n sessionId: string;\n invocationId: string;\n duration: number;\n attributes: Record<string, string>;\n botName: string;\n botNo: string;\n status: number;\n agentName: string;\n agentNo: string;\n agentVersionNo: string;\n userId: string;\n}\n\nexport interface AgentRunRequest {\n stream?: boolean;\n sessionId: string | undefined;\n content: {\n parts: Array<{\n text?: string;\n functionResponse?: {\n id?: string;\n name?: string;\n response?: any;\n };\n }>;\n role: string;\n };\n stateDelta?: any;\n}\n\nexport interface Blob {\n displayName?: string;\n mimeType?: string;\n data: string;\n}\n\nexport interface FunctionCall {\n id?: string;\n name: string;\n args: {[key: string]: any};\n}\n\nexport interface FunctionResponse {\n id?: string;\n name: string;\n response: {[key: string]: any};\n}\n\nexport interface FileData {\n mimeType: string;\n fileUri: string;\n}\n\nexport interface ExecutableCode {\n language: 'UNKNOWN'|'PYTHON';\n code: string;\n}\n\nexport interface CodeExecutionResult {\n outcome: 'UNKNOWN'|'OK'|'FAILED'|'DEADLINE_EXCEEDED';\n output: string;\n}\n\nexport interface Part {\n text?: string;\n inlineData?: Blob;\n functionCall?: FunctionCall;\n functionResponse?: FunctionResponse;\n thought?: boolean;\n fileData?: FileData;\n executableCode?: ExecutableCode;\n codeExecutionResult?: CodeExecutionResult;\n errorMessage?: string;\n}\n\nexport interface GenAiContent {\n role: string;\n parts: Part[];\n}\n\nexport interface LlmRequest {\n contents: GenAiContent[];\n}\n\nexport interface LlmResponse {\n partial?: boolean;\n content: GenAiContent;\n error?: string;\n errorMessage?: string;\n errorCode?: string;\n longRunningToolIds?: string[];\n}\n\nexport interface EventActions {\n message?: string;\n artifactDelta?: any;\n functionCall?: FunctionCall;\n functionResponse?: FunctionResponse;\n finishReason?: string;\n}\n\nexport interface Event extends LlmResponse {\n id?: string;\n author?: string;\n invocationId?: string;\n actions?: EventActions;\n longRunningToolIds?: string[];\n branch?: string;\n timestamp?: number;\n evalStatus?: any;\n failedMetric?: any;\n evalScore?: any;\n evalThreshold?: any;\n groundingMetadata?: {\n searchEntryPoint?: {\n renderedContent?: any;\n };\n };\n}\n\nexport interface SessionState {\n [key: string]: unknown;\n}\n\nexport interface Session {\n id?: string;\n appName?: string;\n userId?: string;\n state?: SessionState;\n events?: Event[];\n lastUpdateTime?: number;\n}\n\nexport interface TimeTick {\n position: number;\n label: string;\n}\n\nexport interface IMessage {\n /** 前端生成的唯一标识 */\n id: string;\n /** 单次请求的唯一标识 */\n invocationId?: string;\n /** 单个Event的唯一标识,一个event里有可能有多个parts的消息 */\n eventId?: string;\n /** 消息发起人:智能体名称、user */\n author?: string;\n role: 'bot' | 'user';\n /** 时间戳 */\n timestamp?: number;\n isLoading?: boolean;\n /** 函数调用 */\n functionCall?: FunctionCall;\n /** 函数调用结果 */\n functionResponse?: FunctionResponse;\n /** 文件上传 */\n inlineData?: Blob;\n /** 文本消息 */\n text?: string;\n /** 思考 */\n thought?: boolean;\n executableCode?: ExecutableCode;\n codeExecutionResult?: CodeExecutionResult;\n renderedContent?: any;\n /** 原始数据 */\n raw?: any;\n // 下面暂时没有用到\n evalStatus?: any;\n failedMetric?: any;\n evalScore?: any;\n evalThreshold?: any;\n invocationIndex?: any;\n finalResponsePartIndex?: any;\n toolUseIndex?: any;\n}\n\nexport interface XAdkChatbotProps {\n // 加载状态\n loading?: boolean;\n /** 消息列表 */\n messages: IMessage[];\n /** 开场白 */\n prologue?: string;\n /** 建议回复 */\n suggestions?: string[];\n /** 显示函数调用详情 */\n showFnCallDetail?: boolean;\n /** 是否显示清除聊天记录按钮 */\n clearBtnShow?: boolean;\n /** 底部插槽 */\n footer?: (props: { message: IMessage; isLastBotMsg: boolean; isLastMsg: boolean; }) => React.ReactNode;\n /** 提交回调 */\n onSubmit?: (text: string) => void;\n /** 停止回调 */\n onStop?: () => void;\n /** 清除回调 */\n onClear?: () => void;\n /** 建议回复回调 */\n onSuggest?: (text: string) => void;\n}"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/types/XAdkChatbot.ts"],"sourcesContent":["import { type SendContent } from './XAiSender';\n\nexport interface IInvocation {\n id: string;\n name: string;\n spanId: string;\n traceId: string;\n parentSpanId: string;\n startTime: number;\n endTime: number;\n sessionId: string;\n invocationId: string;\n duration: number;\n attributes: Record<string, string>;\n botName: string;\n botNo: string;\n status: number;\n agentName: string;\n agentNo: string;\n agentVersionNo: string;\n userId: string;\n}\n\nexport interface AgentRunRequest {\n stream?: boolean;\n sessionId: string | undefined;\n content: {\n parts: Array<{\n text?: string;\n functionResponse?: {\n id?: string;\n name?: string;\n response?: any;\n };\n }>;\n role: string;\n };\n stateDelta?: any;\n}\n\nexport interface Blob {\n displayName?: string;\n mimeType?: string;\n data: string;\n}\n\nexport interface FunctionCall {\n id?: string;\n name: string;\n args: {[key: string]: any};\n}\n\nexport interface FunctionResponse {\n id?: string;\n name: string;\n response: {[key: string]: any};\n}\n\nexport interface FileData {\n mimeType: string;\n fileUri: string;\n}\n\nexport interface ExecutableCode {\n language: 'UNKNOWN'|'PYTHON';\n code: string;\n}\n\nexport interface CodeExecutionResult {\n outcome: 'UNKNOWN'|'OK'|'FAILED'|'DEADLINE_EXCEEDED';\n output: string;\n}\n\nexport interface Part {\n text?: string;\n inlineData?: Blob;\n functionCall?: FunctionCall;\n functionResponse?: FunctionResponse;\n thought?: boolean;\n fileData?: FileData;\n executableCode?: ExecutableCode;\n codeExecutionResult?: CodeExecutionResult;\n errorMessage?: string;\n}\n\nexport interface GenAiContent {\n role: string;\n parts: Part[];\n}\n\nexport interface LlmRequest {\n contents: GenAiContent[];\n}\n\nexport interface LlmResponse {\n partial?: boolean;\n content: GenAiContent;\n error?: string;\n errorMessage?: string;\n errorCode?: string;\n longRunningToolIds?: string[];\n}\n\nexport interface EventActions {\n message?: string;\n artifactDelta?: any;\n functionCall?: FunctionCall;\n functionResponse?: FunctionResponse;\n finishReason?: string;\n}\n\nexport interface Event extends LlmResponse {\n id?: string;\n author?: string;\n invocationId?: string;\n actions?: EventActions;\n longRunningToolIds?: string[];\n branch?: string;\n timestamp?: number;\n evalStatus?: any;\n failedMetric?: any;\n evalScore?: any;\n evalThreshold?: any;\n groundingMetadata?: {\n searchEntryPoint?: {\n renderedContent?: any;\n };\n };\n}\n\nexport interface SessionState {\n [key: string]: unknown;\n}\n\nexport interface Session {\n id?: string;\n appName?: string;\n userId?: string;\n state?: SessionState;\n events?: Event[];\n lastUpdateTime?: number;\n}\n\nexport interface TimeTick {\n position: number;\n label: string;\n}\n\nexport interface IMessage {\n /** 前端生成的唯一标识 */\n id: string;\n /** 单次请求的唯一标识 */\n invocationId?: string;\n /** 单个Event的唯一标识,一个event里有可能有多个parts的消息 */\n eventId?: string;\n /** 消息发起人:智能体名称、user */\n author?: string;\n role: 'bot' | 'user';\n /** 时间戳 */\n timestamp?: number;\n isLoading?: boolean;\n /** 函数调用 */\n functionCall?: FunctionCall;\n /** 函数调用结果 */\n functionResponse?: FunctionResponse;\n /** 文件上传 */\n inlineData?: Blob;\n /** 文本消息 */\n text?: string;\n /** 思考 */\n thought?: boolean;\n executableCode?: ExecutableCode;\n codeExecutionResult?: CodeExecutionResult;\n renderedContent?: any;\n /** 原始数据 */\n raw?: any;\n // 下面暂时没有用到\n evalStatus?: any;\n failedMetric?: any;\n evalScore?: any;\n evalThreshold?: any;\n invocationIndex?: any;\n finalResponsePartIndex?: any;\n toolUseIndex?: any;\n}\n\nexport interface XAdkChatbotProps {\n // 加载状态\n loading?: boolean;\n /** 是否支持文件上传 */\n allowUpload?: boolean;\n /** 消息列表 */\n messages: IMessage[];\n /** 开场白 */\n prologue?: string;\n /** 建议回复 */\n suggestions?: string[];\n /** 显示函数调用详情 */\n showFnCallDetail?: boolean;\n /** 是否显示清除聊天记录按钮 */\n clearBtnShow?: boolean;\n /** 是否初始化 */\n initialized?: boolean;\n /** 底部插槽 */\n footer?: (props: { message: IMessage; isLastBotMsg: boolean; isLastMsg: boolean; }) => React.ReactNode;\n /** 提交回调 */\n onSubmit?: ({ text, files }: SendContent) => void;\n /** 停止回调 */\n onStop?: () => void;\n /** 清除回调 */\n onClear?: () => void;\n /** 建议回复回调 */\n onSuggest?: (text: string) => void;\n}"],"mappings":""}
@@ -44,6 +44,7 @@ export interface XAdkProviderConfig {
44
44
  session?: {
45
45
  showSessionList?: boolean;
46
46
  };
47
+ allowUpload?: boolean;
47
48
  appNo: string;
48
49
  chatProps?: ChatConfig;
49
50
  debug?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/XAdkProvider.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { IMessage } from '@/types/XAdkChatbot';\n\n/**\n * 主题类型\n * @type {'default'}\n * @version 1.0.0\n */\nexport type ThemeType = 'default';\n\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (text: string) => void;\n stopChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSessionDetail: (id: string) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n clearBtnShow?: boolean;\n inputShow?: boolean;\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n };\n appNo: string;\n chatProps?: ChatConfig;\n debug?: boolean;\n}\n\n/**\n * XAdkProvider Props\n */\nexport interface XAdkProviderProps {\n /**\n * AI 服务基础地址\n */\n url?: string;\n /**\n * 认证 token\n */\n token: string;\n /**\n * 组件功能配置\n */\n config?: XAdkProviderConfig;\n /**\n * Provider 唯一标识\n */\n providerId?: string;\n /**\n * 消息成功回调\n */\n onSuccess?: (success: any) => void;\n /**\n * 错误回调\n */\n onError?: (err: any) => void;\n /**\n * 每条消息回调\n */\n onMessage?: (content: string, data: IMessage) => void;\n /**\n * 自定义插槽渲染函数\n */\n footer?: (args: FooterRenderArgs) => ReactNode;\n /**\n * React 子元素\n */\n children?: ReactNode;\n}\n\n// XAiSDKProps 继承 XAdkProviderProps\nexport interface XAiSDKProps extends XAdkProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/types/XAdkProvider.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { IMessage } from '@/types/XAdkChatbot';\n\n/**\n * 主题类型\n * @type {'default'}\n * @version 1.0.0\n */\nexport type ThemeType = 'default';\n\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (text: string) => void;\n stopChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSessionDetail: (id: string) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n clearBtnShow?: boolean;\n inputShow?: boolean;\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n };\n allowUpload?: boolean;\n appNo: string;\n chatProps?: ChatConfig;\n debug?: boolean;\n}\n\n/**\n * XAdkProvider Props\n */\nexport interface XAdkProviderProps {\n /**\n * AI 服务基础地址\n */\n url?: string;\n /**\n * 认证 token\n */\n token: string;\n /**\n * 组件功能配置\n */\n config?: XAdkProviderConfig;\n /**\n * Provider 唯一标识\n */\n providerId?: string;\n /**\n * 消息成功回调\n */\n onSuccess?: (success: any) => void;\n /**\n * 错误回调\n */\n onError?: (err: any) => void;\n /**\n * 每条消息回调\n */\n onMessage?: (content: string, data: IMessage) => void;\n /**\n * 自定义插槽渲染函数\n */\n footer?: (args: FooterRenderArgs) => ReactNode;\n /**\n * React 子元素\n */\n children?: ReactNode;\n}\n\n// XAiSDKProps 继承 XAdkProviderProps\nexport interface XAiSDKProps extends XAdkProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}"],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { UploadProps } from 'antd';
2
+ export interface ServerFile {
3
+ fileName: string;
4
+ fileId: number;
5
+ tempUrl: string;
6
+ type: string;
7
+ mimeType: string;
8
+ }
9
+ export interface LocalFile {
10
+ id: string;
11
+ uid: string;
12
+ name: string;
13
+ file: File;
14
+ size: number;
15
+ type: string;
16
+ progress: number;
17
+ status: 'pending' | 'uploading' | 'success' | 'error';
18
+ fileId?: number;
19
+ tempUrl?: string;
20
+ response?: any;
21
+ }
22
+ export interface XAdkSenderProps {
23
+ clearBtnShow?: boolean;
24
+ allowUpload?: boolean;
25
+ loading?: boolean;
26
+ onClear?: () => void;
27
+ onChange?: (value: string) => void;
28
+ onSubmit?: (data: {
29
+ text: string;
30
+ files: ServerFile[];
31
+ }) => void;
32
+ onStop?: () => void;
33
+ uploadProps?: UploadProps;
34
+ maxFileSize?: number;
35
+ allowedFileTypes?: string[];
36
+ maxFiles?: number;
37
+ onFilesChange?: (files: ServerFile[]) => void;
38
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=XAdkSender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/XAdkSender.ts"],"sourcesContent":["// types/XAdkSender.ts\nimport { UploadProps } from 'antd';\n\nexport interface ServerFile {\n fileName: string;\n fileId: number;\n tempUrl: string;\n type: string;\n mimeType: string; \n}\n\nexport interface LocalFile {\n id: string;\n uid: string;\n name: string;\n file: File;\n size: number;\n type: string;\n progress: number;\n status: 'pending' | 'uploading' | 'success' | 'error';\n // 服务器返回字段\n fileId?: number;\n tempUrl?: string;\n response?: any;\n}\n\nexport interface XAdkSenderProps {\n clearBtnShow?: boolean;\n allowUpload?: boolean;\n loading?: boolean;\n onClear?: () => void;\n onChange?: (value: string) => void;\n onSubmit?: (data: {\n text: string;\n files: ServerFile[];\n }) => void;\n onStop?: () => void;\n \n // 上传相关配置\n uploadProps?: UploadProps;\n maxFileSize?: number; // 最大文件大小(MB)\n allowedFileTypes?: string[]; // 允许的文件类型\n maxFiles?: number; // 最大文件数量\n \n // 文件状态回调\n onFilesChange?: (files: ServerFile[]) => void;\n}"],"mappings":""}