@ai-group/chat-sdk 3.3.8 → 3.3.11
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.
- package/dist/cjs/components/XAdkChatbot/index.js +8 -11
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/Switch.d.ts +16 -0
- package/dist/cjs/components/XAdkSender/Switch.js +95 -0
- package/dist/cjs/components/XAdkSender/Switch.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.d.ts +6 -1
- package/dist/cjs/components/XAdkSender/index.js +26 -25
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.js +6 -6
- package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.js +4 -5
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +3 -3
- package/dist/esm/components/XAdkChatbot/index.js +6 -10
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/Switch.d.ts +16 -0
- package/dist/esm/components/XAdkSender/Switch.js +53 -0
- package/dist/esm/components/XAdkSender/Switch.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.d.ts +6 -1
- package/dist/esm/components/XAdkSender/index.js +15 -12
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.js +3 -3
- package/dist/esm/components/XAdkSender/styles.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +5 -5
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","withBasicStyles","useStyles","container","_templateObject","_taggedTemplateLiteral","mainArea","_templateObject2","senderWrap","_templateObject3","inputAndButtons","_templateObject4","textAreaWrapper","_templateObject5","textArea","_templateObject6","buttonGroup","_templateObject7","iconButton","_templateObject8","clearButton","_templateObject9","uploadButton","_templateObject10","sendButton","_templateObject11","tip","_templateObject12"],"sources":["../../../../src/components/XAdkSender/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n // 容器样式 - 最外层边框\n container: css`\n
|
|
1
|
+
{"version":3,"names":["css","withBasicStyles","useStyles","container","_templateObject","_taggedTemplateLiteral","mainArea","_templateObject2","senderWrap","_templateObject3","inputAndButtons","_templateObject4","textAreaWrapper","_templateObject5","textArea","_templateObject6","buttonGroup","_templateObject7","iconButton","_templateObject8","clearButton","_templateObject9","uploadButton","_templateObject10","sendButton","_templateObject11","tip","_templateObject12"],"sources":["../../../../src/components/XAdkSender/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n // 容器样式 - 最外层边框\n container: css`\n position: relative;\n overflow: hidden;\n padding: 10px 15px;\n overflow: visible;\n border: 2px solid transparent;\n transition: all 0.3s ease;\n\n &.drag-over {\n border: 2px dashed #000;\n background: rgba(0, 0, 0, 0.02);\n }\n `,\n\n // 主内容区域\n mainArea: css`\n background: #fff;\n border-radius: 20px;\n overflow: hidden;\n `,\n\n // 发送区域\n senderWrap: css`\n display: flex;\n flex-direction: column;\n gap: 6px;\n background: var(--yb-input-bg-color);\n border: 0.5px solid var(--widget-line, rgba(0, 0, 0, 0.08));\n border-radius: 20px;\n box-sizing: border-box;\n caret-color: var(--yb-input-caret-color);\n flex: auto;\n font-size: 14px;\n line-height: 22px;\n padding: 7px 12px;\n position: relative;\n transition-duration: 0.2s;\n transition-property:\n color, background-color, border-color, text-decoration-color, fill,\n stroke, box-shadow;\n transition-timing-function: linear;\n box-shadow: 0 6px 30px 0 rgba(0, 0, 0, 0.08);\n `,\n\n // 输入框和按钮容器\n inputAndButtons: css`\n flex: 1;\n display: flex;\n align-items: flex-end;\n gap: 8px;\n `,\n\n // 文本输入框容器\n textAreaWrapper: css`\n flex: 1;\n display: flex;\n align-items: center;\n background: #fff;\n padding: 0 16px;\n min-height: 44px;\n\n /* 移除所有蓝色效果 */\n &:focus-within {\n border-color: #d9d9d9;\n box-shadow: none;\n }\n\n .ant-input:disabled {\n background: transparent !important;\n }\n\n &::placeholder {\n color: #bfbfbf;\n }\n `,\n\n // 文本输入框\n textArea: css`\n flex: 1;\n border: none;\n background: transparent;\n font-size: 14px;\n line-height: 1.5;\n padding: 12px 0;\n outline: none;\n color: #262626;\n `,\n\n // 按钮组\n buttonGroup: css`\n display: flex;\n gap: 8px;\n align-items: center;\n height: 44px;\n `,\n\n // 按钮统一样式\n iconButton: css`\n width: 36px;\n height: 36px;\n min-width: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n\n &:hover {\n transform: translateY(-1px);\n }\n\n &:active {\n transform: translateY(0);\n }\n `,\n\n // 清空按钮\n clearButton: css`\n border: 1px solid #f0f0f0;\n background: #fff;\n color: #8c8c8c;\n\n &:hover {\n border-color: #d9d9d9;\n color: #262626;\n background: #fafafa;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n\n // 上传按钮\n uploadButton: css`\n border: 1px solid #f0f0f0;\n background: #fff;\n\n &:hover {\n //\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n border-color: #f0f0f0;\n background: #fafafa;\n }\n `,\n\n // 发送按钮\n sendButton: css`\n background: #000;\n border: none;\n color: #fff;\n\n &:hover:not(:disabled) {\n background: #333; /* 悬停状态 */\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: #cccccc;\n color: #fff;\n }\n\n &.stop {\n //\n\n &:hover:not(:disabled) {\n //\n }\n\n &:disabled {\n background: #cccccc; /* 禁用状态也保持淡灰色 */\n }\n }\n `,\n\n // 底部提示\n tip: css`\n margin: 12px 0;\n text-align: center;\n font-size: 12px;\n color: #8c8c8c;\n `,\n}));\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAE,SAAS,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,qRAYb;IAED;IACAC,QAAQ,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,oFAIZ;IAED;IACAG,UAAU,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,2oBAoBd;IAED;IACAK,eAAe,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,yFAKnB;IAED;IACAO,eAAe,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,maAqBnB;IAED;IACAS,QAAQ,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,uLASZ;IAED;IACAW,WAAW,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,4FAKf;IAED;IACAa,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,kUAiBd;IAED;IACAe,WAAW,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,6QAef;IAED;IACAiB,YAAY,EAAEtB,GAAG,CAAAuB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,2OAchB;IAED;IACAmB,UAAU,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,2fA2Bd;IAED;IACAqB,GAAG,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA;EAMV,CAAC;AAAA,CAAC,CAAC"}
|
|
@@ -280,8 +280,10 @@ function useADKChat(_ref) {
|
|
|
280
280
|
// 处理消息部分(关键更新)
|
|
281
281
|
var processPart = useCallback(function (event, part) {
|
|
282
282
|
var _event$groundingMetad2;
|
|
283
|
+
var ignore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
283
284
|
var renderedContent = (_event$groundingMetad2 = event.groundingMetadata) === null || _event$groundingMetad2 === void 0 || (_event$groundingMetad2 = _event$groundingMetad2.searchEntryPoint) === null || _event$groundingMetad2 === void 0 ? void 0 : _event$groundingMetad2.renderedContent;
|
|
284
285
|
if (part.text) {
|
|
286
|
+
if (ignore) return;
|
|
285
287
|
var newChunk = part.text;
|
|
286
288
|
if (!textMsgRef.current || textMsgRef.current.thought !== part.thought) {
|
|
287
289
|
var newMessage = {
|
|
@@ -412,10 +414,6 @@ function useADKChat(_ref) {
|
|
|
412
414
|
|
|
413
415
|
// 处理新的数据格式: { data: {...}, result: {...} }
|
|
414
416
|
var chunkJson = rawData;
|
|
415
|
-
// 忽略 partial为 false 包
|
|
416
|
-
if (chunkJson.partial === false) {
|
|
417
|
-
return;
|
|
418
|
-
}
|
|
419
417
|
if (rawData.data && rawData.result) {
|
|
420
418
|
// 转换为旧格式
|
|
421
419
|
chunkJson = _objectSpread(_objectSpread({}, rawData.data), {}, {
|
|
@@ -443,8 +441,10 @@ function useADKChat(_ref) {
|
|
|
443
441
|
_step2;
|
|
444
442
|
try {
|
|
445
443
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
444
|
+
var _chunkJson;
|
|
446
445
|
var part = _step2.value;
|
|
447
|
-
|
|
446
|
+
// partial为 true 时忽略该条消息文本
|
|
447
|
+
processPart(chunkJson, part, ((_chunkJson = chunkJson) === null || _chunkJson === void 0 ? void 0 : _chunkJson.partial) === false);
|
|
448
448
|
}
|
|
449
449
|
} catch (err) {
|
|
450
450
|
_iterator2.e(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useCallback","useMemo","useRef","useState","fetchEventSource","EventStreamContentType","message","v4","SESSION_PAGE_SIZE","API_SUCCESS_CODE","SuccessCode","ErrorCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","addFeedback","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","isPureText","text","fileData","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","_ref$url","url","window","location","origin","token","_ref$config","config","_ref$type","type","_ref$enabled","enabled","strategies","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","_useState3","_useState4","sessionLoading","setSessionLoading","sendingRef","ctrl","_ref2","appNo","showFirstSession","_useState5","_useState6","appInfo","setAppInfo","_useState7","_useState8","initialized","setInitialized","_useState9","_useState10","sessionList","setSessionList","_useState11","_useState12","currentSessionId","setCurrentSessionId","_useState13","total","pageNum","pageSize","_useState14","sessionPagination","setSessionPagination","_useState15","_useState16","prologue","setPrologue","_useState17","_useState18","suggestedQuestions","setSuggestedQuestions","_useState19","_useState20","messages","setMessages","stateDeltaRef","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","suggested_questions","arguments","insertPrologue","updateMessage","m","withEventMeta","event","_event$modelCode","_event$usageMetadata","_event$finishReason","modelCode","usageMetadata","finishReason","raw","updateLastBotEventMeta","next","index","findLastIndex","role","storeEvents","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","author","invocationId","eventId","timestamp","isLike","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","ok","get","status","API_ERROR","stop","onmessage","rawData","sessionId","error","warning","_iterator2","_step2","onclose","_textMsgRef$current","onerror","console","startChat","_ref4","_callee2","_ref3","_ref3$text","_ref3$files","files","_callee2$","_context2","abrupt","trim","temp","file","_file$response","_file$response2","_file$response3","fileName","fileUri","tempUrl","fileUrl","_file$response4","_file$response5","_file$response6","_file$response7","_file$response8","_file$response9","fileId","fileType","stateDelta","finish","initAppConversations","_x","apply","reChat","_ref5","_callee3","lastUserIndex","newMessages","lastUserMessage","_lastUserMessage$text","_lastUserMessage$file","_callee3$","_context3","confirmFnCall","fnCall","confirmed","_strategies$createFun","_strategies$createFun2","createFunctionResponse","call","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","textParts","fileDataParts","otherParts","_iterator3","_step3","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSession","_ref6","_callee4","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee4$","_context4","sent","_x2","_ref7","_callee5","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args5","_callee5$","_context5","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","deleteSession","_ref8","_callee6","_yield$closeSession","_callee6$","_context6","_x3","likeMessage","_ref9","_callee7","feedbackData","_yield$addFeedback","_callee7$","_context7","requestId","_x4","_x5","_x6","updateSession","_ref10","_callee8","_yield$updateSessionT","_callee8$","_context8","_x7","_x8","initConfig","_ref11","_callee9","_yield$fetchAppConfig","_callee9$","_context9","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","suggestions","setStateDelta","delta"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from \"react\";\nimport {\n fetchEventSource,\n EventStreamContentType,\n} from \"@microsoft/fetch-event-source\";\nimport { message } from \"antd\";\nimport { v4 } from \"uuid\";\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from \"@/constants\";\nimport {\n SuccessCode,\n ErrorCode,\n DebugOptions,\n FunctionCall,\n SendContent,\n SessionData,\n AgentRunRequest,\n Event,\n FunctionResponse,\n IMessage,\n Part,\n} from \"@/types\";\nimport {\n fetchAppConfig,\n fetchSessionList,\n fetchSessionDetail,\n closeSession,\n updateSessionTitle,\n addFeedback,\n type ChatConfig,\n} from \"@/services/api\";\nimport { safeJsonParse } from \"@/utils\";\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 // 纯文本 part(没有 fileData 等其他字段)才合并\n const isPureText = part.text && !part.fileData;\n if (isPureText) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text =\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 = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n strategies,\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const [sessionLoading, setSessionLoading] = useState(false);\n const sendingRef = useRef(false); // 同步锁,防止快速重复点击\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo, showFirstSession } = config || {};\n const [appInfo, setAppInfo] = useState<ChatConfig | null>(null);\n // 初始化完成\n const [initialized, setInitialized] = useState(false);\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>(() => v4());\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({\n total: 0,\n pageNum: 1,\n pageSize: SESSION_PAGE_SIZE,\n });\n // 开场白\n const [prologue, setPrologue] = useState<string>(\"\");\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n // 用户自定义业务参数 (stateDelta),每次发送请求时携带\n const stateDeltaRef = useRef<Record<string, any> | undefined>(undefined);\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 const withEventMeta = useCallback((msg: IMessage, event: Event): IMessage => {\n return {\n ...msg,\n modelCode: event.modelCode ?? msg.modelCode,\n usageMetadata: event.usageMetadata ?? msg.usageMetadata,\n finishReason: event.finishReason ?? msg.finishReason,\n raw: {\n ...(msg.raw || {}),\n ...event,\n },\n };\n }, []);\n\n const updateLastBotEventMeta = useCallback(\n (event: Event) => {\n if (!event.modelCode && !event.usageMetadata && !event.finishReason)\n return;\n\n setMessages((prev) => {\n const next = [...prev];\n const index = next.findLastIndex((msg) => msg.role === \"bot\");\n if (index < 0) return prev;\n\n next[index] = withEventMeta(next[index], event);\n return next;\n });\n },\n [withEventMeta],\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, event: Event, role: \"user\" | \"bot\") => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n isLike: event.isLike || 0,\n role,\n modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 =\n event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.fileData) {\n msg.fileData = [part.fileData];\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 },\n [insertMessage],\n );\n\n // 处理消息部分(关键更新)\n const processPart = useCallback(\n (event: Event, part: Part) => {\n const renderedContent =\n event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n const newChunk = part.text;\n\n if (\n !textMsgRef.current ||\n textMsgRef.current.thought !== part.thought\n ) {\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 isLike: event.isLike || 0,\n thought: part.thought,\n modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...withEventMeta(textMsgRef.current, event),\n text: (textMsgRef.current.text || \"\") + newChunk,\n };\n updateMessage(textMsgRef.current);\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n }\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage, withEventMeta],\n );\n\n // 处理建议类消息\n const processFollowupPart = useCallback(\n (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 },\n [storeEvents, insertMessage],\n );\n\n // 处理错误消息\n const processErrorMessage = useCallback(\n (chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: \"bot\",\n });\n },\n [storeEvents, insertMessage],\n );\n\n // 处理动作和制品\n const processActionArtifact = useCallback(\n (event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, \"bot\");\n }\n },\n [storeEvents, storeMessage],\n );\n\n // 发送消息请求\n const sendMessageRequest = useCallback(\n (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 (\n response.ok &&\n response.headers.get(\"content-type\") === EventStreamContentType\n ) {\n // everything's good\n } else if (response.status === 401 || response.status === 403) {\n setLoading(false);\n onError?.({\n code: ErrorCode.API_ERROR,\n message:\n response.status === 401\n ? \"认证失败,token 无效或已过期\"\n : \"无权限访问该资源\",\n });\n resolve();\n } else if (\n response.status >= 400 &&\n response.status < 500 &&\n response.status !== 429\n ) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const rawData = safeJsonParse(event.data, {});\n\n // 处理新的数据格式: { data: {...}, result: {...} }\n let chunkJson: Event = rawData;\n // 忽略 partial为 false 包\n if (chunkJson.partial === false) {\n return;\n }\n\n if (rawData.data && rawData.result) {\n // 转换为旧格式\n chunkJson = {\n ...rawData.data,\n content: rawData.data, // data 本身就是 content\n invocationId: rawData.result.invocationId,\n sessionId: rawData.result.sessionId,\n id: rawData.result.invocationId,\n };\n }\n\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n onStream?.(chunkJson);\n updateLastBotEventMeta(chunkJson);\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 if (textMsgRef.current) {\n onMessage?.(textMsgRef.current?.text || \"\", textMsgRef.current);\n }\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 },\n [\n type,\n currentSessionId,\n processActionArtifact,\n processErrorMessage,\n processPart,\n updateLastBotEventMeta,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading || sendingRef.current) return;\n if (!text.trim() && !files?.length && !functionResponse) return;\n sendingRef.current = true;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n let temp = [...prev];\n // 如果 text 存在\n if (text.trim()) {\n temp.push({\n id: v4(),\n role: \"user\",\n text,\n });\n }\n // 如果file 存在\n if (files.length > 0) {\n temp.push({\n id: v4(),\n role: \"user\",\n fileData: files.map((file) => ({\n displayName: file.fileName || file.name,\n mimeType: file.mimeType || file.response?.mimeType,\n fileUri:\n file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n })),\n });\n }\n // 如果 functionResponse 存在\n if (functionResponse) {\n temp.push({\n id: v4(),\n role: \"user\",\n functionResponse,\n });\n }\n return temp;\n });\n try {\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: functionResponse ? [{ functionResponse }] : [{ text }],\n },\n files: files.map((file) => ({\n fileName: file.fileName || file.response?.fileName,\n fileId: file.fileId || file.response?.fileId,\n tempUrl:\n file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && {\n stateDelta: stateDeltaRef.current,\n }),\n });\n } finally {\n sendingRef.current = false;\n }\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = async () => {\n if (loading || sendingRef.current) return;\n if (messages.length === 0) return;\n sendingRef.current = true;\n // 清空建议问题\n setSuggestedQuestions([]);\n\n // 找到最后一条用户消息的索引,删除其后所有 bot 消息\n const lastUserIndex = messages.findLastIndex(\n (msg) => msg.role === \"user\" && !msg.functionResponse,\n );\n if (lastUserIndex === -1) {\n sendingRef.current = false;\n return;\n }\n\n const newMessages = messages.slice(0, lastUserIndex + 1);\n setMessages(newMessages);\n\n const lastUserMessage = newMessages[lastUserIndex];\n const { text = \"\", fileData = [] } = lastUserMessage;\n\n try {\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [{ text }],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && {\n stateDelta: stateDeltaRef.current,\n }),\n });\n } finally {\n sendingRef.current = false;\n }\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse = strategies?.createFunctionResponse?.(\n fnCall,\n confirmed,\n ) ?? {\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n };\n startChat({ functionResponse });\n };\n\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat({ text });\n };\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 setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n setMessages([]);\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role =\n (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 ||\n p.inlineData ||\n p.functionCall ||\n p.functionResponse ||\n p.fileData ||\n p.executableCode ||\n p.codeExecutionResult ||\n p.errorMessage,\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n // 将同一条历史消息的 text/fileData parts 合并到一条 IMessage,避免拆分显示\n const textParts = parts.filter(\n (p: any) => p.text || p.errorMessage || p.inlineData,\n );\n const fileDataParts = parts.filter((p: any) => p.fileData);\n const otherParts = parts.filter(\n (p: any) => !p.text && !p.errorMessage && !p.inlineData && !p.fileData,\n );\n\n // 如果有 text/fileData,合并为一条消息\n if (textParts.length > 0 || fileDataParts.length > 0) {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\n raw: item,\n } as IMessage;\n\n for (const part of textParts) {\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 = (msg.text ? msg.text + \"\\n\" : \"\") + part.text;\n if (typeof part.thought !== \"undefined\") msg.thought = part.thought;\n }\n if (part.errorMessage) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.errorMessage;\n }\n }\n\n if (fileDataParts.length > 0) {\n msg.fileData = fileDataParts.map((part: any) => ({\n displayName: part.fileData.displayName || \"\",\n fileUri: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n }));\n }\n\n mapped.push(msg);\n }\n\n // 处理其他类型的 parts(functionCall、executableCode 等)\n otherParts.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 isLike: item.isLike,\n role,\n modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\n raw: item,\n } as IMessage;\n\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult)\n msg.codeExecutionResult = part.codeExecutionResult;\n // 补全函数调用结果\n if (part.functionResponse) {\n // 通过 functionCall.id 寻找对应的函数调用消息,在那条消息上添加functionResponse\n const functionCallMsg = mapped.find(\n (msg) => msg.functionCall?.id === part.functionResponse?.id,\n );\n if (functionCallMsg) {\n functionCallMsg.functionResponse = part.functionResponse;\n }\n return;\n }\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\n };\n\n // 设置当前会话详情\n const setCurrentSession = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n // 切换会话时,abort 当前流式请求,防止数据污染和 loading 状态泄漏\n stopChat();\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(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setSessionLoading(true);\n\n const {\n data = [],\n pagination,\n result,\n } = 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.startTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n total: pagination?.total || 0,\n });\n const { sessionId } = data?.[0];\n if (showFirstSession) {\n setCurrentSession(sessionId);\n } else {\n fetchDetail && setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n fetchDetail &&\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n // 成功回调\n if (!initialized) {\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: \"初始化聊天记录成功\",\n data: {\n sessionId,\n },\n });\n setInitialized(true);\n }\n } else {\n // 无会话记录时,初始化会话详情\n clearChat();\n }\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue(\"\");\n setSuggestedQuestions([]);\n }\n } catch {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取会话列表失败\",\n });\n } finally {\n setSessionLoading(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(true);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\n }\n } else {\n message.error(\"删除会话失败\");\n }\n };\n\n // 点赞/点踩\n const likeMessage = async (\n invocationId: string,\n isLike: 1 | -1,\n feedbackData?: { feedbackTags?: string; feedbackDescription?: string },\n ) => {\n if (!appNo || !invocationId) return false;\n const { result } = await addFeedback({\n url,\n appNo,\n token,\n requestId: invocationId,\n isLike,\n ...feedbackData,\n });\n if (result?.code === API_SUCCESS_CODE) {\n setMessages((prev) =>\n prev.map((m) =>\n m.invocationId === invocationId ? { ...m, isLike } : m,\n ),\n );\n return true;\n }\n return false;\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();\n } else {\n message.error(\"更新会话失败\");\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setSessionLoading(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 setSessionLoading(false);\n }\n };\n\n // 初始化—获取配置 (仅在启用时)\n useEffect(() => {\n if (enabled && url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n reChat,\n stopChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n initialized,\n currentSessionId,\n sessionList,\n sessionPagination,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n sessionLoading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSession,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n setStateDelta: (delta: Record<string, any> | undefined) => {\n stateDeltaRef.current = delta;\n },\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","SuccessCode","ErrorCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","addFeedback","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","isPureText","text","fileData","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","_ref$url","url","window","location","origin","token","_ref$config","config","_ref$type","type","_ref$enabled","enabled","strategies","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","_useState3","_useState4","sessionLoading","setSessionLoading","sendingRef","ctrl","_ref2","appNo","showFirstSession","_useState5","_useState6","appInfo","setAppInfo","_useState7","_useState8","initialized","setInitialized","_useState9","_useState10","sessionList","setSessionList","_useState11","_useState12","currentSessionId","setCurrentSessionId","_useState13","total","pageNum","pageSize","_useState14","sessionPagination","setSessionPagination","_useState15","_useState16","prologue","setPrologue","_useState17","_useState18","suggestedQuestions","setSuggestedQuestions","_useState19","_useState20","messages","setMessages","stateDeltaRef","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","suggested_questions","arguments","insertPrologue","updateMessage","m","withEventMeta","event","_event$modelCode","_event$usageMetadata","_event$finishReason","modelCode","usageMetadata","finishReason","raw","updateLastBotEventMeta","next","index","findLastIndex","role","storeEvents","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","author","invocationId","eventId","timestamp","isLike","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","Object","keys","processPart","_event$groundingMetad2","ignore","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","ok","get","status","API_ERROR","stop","onmessage","rawData","sessionId","error","warning","_iterator2","_step2","_chunkJson","onclose","_textMsgRef$current","onerror","console","startChat","_ref4","_callee2","_ref3","_ref3$text","_ref3$files","files","_callee2$","_context2","abrupt","trim","temp","file","_file$response","_file$response2","_file$response3","fileName","fileUri","tempUrl","fileUrl","_file$response4","_file$response5","_file$response6","_file$response7","_file$response8","_file$response9","fileId","fileType","stateDelta","finish","initAppConversations","_x","apply","reChat","_ref5","_callee3","lastUserIndex","newMessages","lastUserMessage","_lastUserMessage$text","_lastUserMessage$file","_callee3$","_context3","confirmFnCall","fnCall","confirmed","_strategies$createFun","_strategies$createFun2","createFunctionResponse","call","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","textParts","fileDataParts","otherParts","_iterator3","_step3","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSession","_ref6","_callee4","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee4$","_context4","sent","_x2","_ref7","_callee5","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args5","_callee5$","_context5","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","deleteSession","_ref8","_callee6","_yield$closeSession","_callee6$","_context6","_x3","likeMessage","_ref9","_callee7","feedbackData","_yield$addFeedback","_callee7$","_context7","requestId","_x4","_x5","_x6","updateSession","_ref10","_callee8","_yield$updateSessionT","_callee8$","_context8","_x7","_x8","initConfig","_ref11","_callee9","_yield$fetchAppConfig","_callee9$","_context9","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","suggestions","setStateDelta","delta"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from \"react\";\nimport {\n fetchEventSource,\n EventStreamContentType,\n} from \"@microsoft/fetch-event-source\";\nimport { message } from \"antd\";\nimport { v4 } from \"uuid\";\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from \"@/constants\";\nimport {\n SuccessCode,\n ErrorCode,\n DebugOptions,\n FunctionCall,\n SendContent,\n SessionData,\n AgentRunRequest,\n Event,\n FunctionResponse,\n IMessage,\n Part,\n} from \"@/types\";\nimport {\n fetchAppConfig,\n fetchSessionList,\n fetchSessionDetail,\n closeSession,\n updateSessionTitle,\n addFeedback,\n type ChatConfig,\n} from \"@/services/api\";\nimport { safeJsonParse } from \"@/utils\";\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 // 纯文本 part(没有 fileData 等其他字段)才合并\n const isPureText = part.text && !part.fileData;\n if (isPureText) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text =\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 = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n strategies,\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const [sessionLoading, setSessionLoading] = useState(false);\n const sendingRef = useRef(false); // 同步锁,防止快速重复点击\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo, showFirstSession } = config || {};\n const [appInfo, setAppInfo] = useState<ChatConfig | null>(null);\n // 初始化完成\n const [initialized, setInitialized] = useState(false);\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>(() => v4());\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({\n total: 0,\n pageNum: 1,\n pageSize: SESSION_PAGE_SIZE,\n });\n // 开场白\n const [prologue, setPrologue] = useState<string>(\"\");\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n // 用户自定义业务参数 (stateDelta),每次发送请求时携带\n const stateDeltaRef = useRef<Record<string, any> | undefined>(undefined);\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 const withEventMeta = useCallback((msg: IMessage, event: Event): IMessage => {\n return {\n ...msg,\n modelCode: event.modelCode ?? msg.modelCode,\n usageMetadata: event.usageMetadata ?? msg.usageMetadata,\n finishReason: event.finishReason ?? msg.finishReason,\n raw: {\n ...(msg.raw || {}),\n ...event,\n },\n };\n }, []);\n\n const updateLastBotEventMeta = useCallback(\n (event: Event) => {\n if (!event.modelCode && !event.usageMetadata && !event.finishReason)\n return;\n\n setMessages((prev) => {\n const next = [...prev];\n const index = next.findLastIndex((msg) => msg.role === \"bot\");\n if (index < 0) return prev;\n\n next[index] = withEventMeta(next[index], event);\n return next;\n });\n },\n [withEventMeta],\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, event: Event, role: \"user\" | \"bot\") => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n isLike: event.isLike || 0,\n role,\n modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 =\n event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.fileData) {\n msg.fileData = [part.fileData];\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 },\n [insertMessage],\n );\n\n // 处理消息部分(关键更新)\n const processPart = useCallback(\n (event: Event, part: Part, ignore: boolean = false) => {\n const renderedContent =\n event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n if (ignore) return;\n const newChunk = part.text;\n\n if (\n !textMsgRef.current ||\n textMsgRef.current.thought !== part.thought\n ) {\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 isLike: event.isLike || 0,\n thought: part.thought,\n modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...withEventMeta(textMsgRef.current, event),\n text: (textMsgRef.current.text || \"\") + newChunk,\n };\n updateMessage(textMsgRef.current);\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n }\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage, withEventMeta],\n );\n\n // 处理建议类消息\n const processFollowupPart = useCallback(\n (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 },\n [storeEvents, insertMessage],\n );\n\n // 处理错误消息\n const processErrorMessage = useCallback(\n (chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: \"bot\",\n });\n },\n [storeEvents, insertMessage],\n );\n\n // 处理动作和制品\n const processActionArtifact = useCallback(\n (event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, \"bot\");\n }\n },\n [storeEvents, storeMessage],\n );\n\n // 发送消息请求\n const sendMessageRequest = useCallback(\n (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 (\n response.ok &&\n response.headers.get(\"content-type\") === EventStreamContentType\n ) {\n // everything's good\n } else if (response.status === 401 || response.status === 403) {\n setLoading(false);\n onError?.({\n code: ErrorCode.API_ERROR,\n message:\n response.status === 401\n ? \"认证失败,token 无效或已过期\"\n : \"无权限访问该资源\",\n });\n resolve();\n } else if (\n response.status >= 400 &&\n response.status < 500 &&\n response.status !== 429\n ) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const rawData = safeJsonParse(event.data, {});\n\n // 处理新的数据格式: { data: {...}, result: {...} }\n let chunkJson: Event = rawData;\n\n if (rawData.data && rawData.result) {\n // 转换为旧格式\n chunkJson = {\n ...rawData.data,\n content: rawData.data, // data 本身就是 content\n invocationId: rawData.result.invocationId,\n sessionId: rawData.result.sessionId,\n id: rawData.result.invocationId,\n };\n }\n\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n onStream?.(chunkJson);\n updateLastBotEventMeta(chunkJson);\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 // partial为 true 时忽略该条消息文本\n processPart(chunkJson, part, chunkJson?.partial === false);\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 if (textMsgRef.current) {\n onMessage?.(textMsgRef.current?.text || \"\", textMsgRef.current);\n }\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 },\n [\n type,\n currentSessionId,\n processActionArtifact,\n processErrorMessage,\n processPart,\n updateLastBotEventMeta,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading || sendingRef.current) return;\n if (!text.trim() && !files?.length && !functionResponse) return;\n sendingRef.current = true;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n let temp = [...prev];\n // 如果 text 存在\n if (text.trim()) {\n temp.push({\n id: v4(),\n role: \"user\",\n text,\n });\n }\n // 如果file 存在\n if (files.length > 0) {\n temp.push({\n id: v4(),\n role: \"user\",\n fileData: files.map((file) => ({\n displayName: file.fileName || file.name,\n mimeType: file.mimeType || file.response?.mimeType,\n fileUri:\n file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n })),\n });\n }\n // 如果 functionResponse 存在\n if (functionResponse) {\n temp.push({\n id: v4(),\n role: \"user\",\n functionResponse,\n });\n }\n return temp;\n });\n try {\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: functionResponse ? [{ functionResponse }] : [{ text }],\n },\n files: files.map((file) => ({\n fileName: file.fileName || file.response?.fileName,\n fileId: file.fileId || file.response?.fileId,\n tempUrl:\n file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && {\n stateDelta: stateDeltaRef.current,\n }),\n });\n } finally {\n sendingRef.current = false;\n }\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = async () => {\n if (loading || sendingRef.current) return;\n if (messages.length === 0) return;\n sendingRef.current = true;\n // 清空建议问题\n setSuggestedQuestions([]);\n\n // 找到最后一条用户消息的索引,删除其后所有 bot 消息\n const lastUserIndex = messages.findLastIndex(\n (msg) => msg.role === \"user\" && !msg.functionResponse,\n );\n if (lastUserIndex === -1) {\n sendingRef.current = false;\n return;\n }\n\n const newMessages = messages.slice(0, lastUserIndex + 1);\n setMessages(newMessages);\n\n const lastUserMessage = newMessages[lastUserIndex];\n const { text = \"\", fileData = [] } = lastUserMessage;\n\n try {\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [{ text }],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && {\n stateDelta: stateDeltaRef.current,\n }),\n });\n } finally {\n sendingRef.current = false;\n }\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse = strategies?.createFunctionResponse?.(\n fnCall,\n confirmed,\n ) ?? {\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n };\n startChat({ functionResponse });\n };\n\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat({ text });\n };\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 setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n setMessages([]);\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role =\n (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 ||\n p.inlineData ||\n p.functionCall ||\n p.functionResponse ||\n p.fileData ||\n p.executableCode ||\n p.codeExecutionResult ||\n p.errorMessage,\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n // 将同一条历史消息的 text/fileData parts 合并到一条 IMessage,避免拆分显示\n const textParts = parts.filter(\n (p: any) => p.text || p.errorMessage || p.inlineData,\n );\n const fileDataParts = parts.filter((p: any) => p.fileData);\n const otherParts = parts.filter(\n (p: any) => !p.text && !p.errorMessage && !p.inlineData && !p.fileData,\n );\n\n // 如果有 text/fileData,合并为一条消息\n if (textParts.length > 0 || fileDataParts.length > 0) {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\n raw: item,\n } as IMessage;\n\n for (const part of textParts) {\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 = (msg.text ? msg.text + \"\\n\" : \"\") + part.text;\n if (typeof part.thought !== \"undefined\") msg.thought = part.thought;\n }\n if (part.errorMessage) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.errorMessage;\n }\n }\n\n if (fileDataParts.length > 0) {\n msg.fileData = fileDataParts.map((part: any) => ({\n displayName: part.fileData.displayName || \"\",\n fileUri: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n }));\n }\n\n mapped.push(msg);\n }\n\n // 处理其他类型的 parts(functionCall、executableCode 等)\n otherParts.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 isLike: item.isLike,\n role,\n modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\n raw: item,\n } as IMessage;\n\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult)\n msg.codeExecutionResult = part.codeExecutionResult;\n // 补全函数调用结果\n if (part.functionResponse) {\n // 通过 functionCall.id 寻找对应的函数调用消息,在那条消息上添加functionResponse\n const functionCallMsg = mapped.find(\n (msg) => msg.functionCall?.id === part.functionResponse?.id,\n );\n if (functionCallMsg) {\n functionCallMsg.functionResponse = part.functionResponse;\n }\n return;\n }\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\n };\n\n // 设置当前会话详情\n const setCurrentSession = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n // 切换会话时,abort 当前流式请求,防止数据污染和 loading 状态泄漏\n stopChat();\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(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setSessionLoading(true);\n\n const {\n data = [],\n pagination,\n result,\n } = 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.startTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n total: pagination?.total || 0,\n });\n const { sessionId } = data?.[0];\n if (showFirstSession) {\n setCurrentSession(sessionId);\n } else {\n fetchDetail && setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n fetchDetail &&\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n // 成功回调\n if (!initialized) {\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: \"初始化聊天记录成功\",\n data: {\n sessionId,\n },\n });\n setInitialized(true);\n }\n } else {\n // 无会话记录时,初始化会话详情\n clearChat();\n }\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue(\"\");\n setSuggestedQuestions([]);\n }\n } catch {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取会话列表失败\",\n });\n } finally {\n setSessionLoading(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(true);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\n }\n } else {\n message.error(\"删除会话失败\");\n }\n };\n\n // 点赞/点踩\n const likeMessage = async (\n invocationId: string,\n isLike: 1 | -1,\n feedbackData?: { feedbackTags?: string; feedbackDescription?: string },\n ) => {\n if (!appNo || !invocationId) return false;\n const { result } = await addFeedback({\n url,\n appNo,\n token,\n requestId: invocationId,\n isLike,\n ...feedbackData,\n });\n if (result?.code === API_SUCCESS_CODE) {\n setMessages((prev) =>\n prev.map((m) =>\n m.invocationId === invocationId ? { ...m, isLike } : m,\n ),\n );\n return true;\n }\n return false;\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();\n } else {\n message.error(\"更新会话失败\");\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setSessionLoading(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 setSessionLoading(false);\n }\n };\n\n // 初始化—获取配置 (仅在启用时)\n useEffect(() => {\n if (enabled && url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n reChat,\n stopChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n initialized,\n currentSessionId,\n sessionList,\n sessionPagination,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n sessionLoading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSession,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n setStateDelta: (delta: Record<string, any> | undefined) => {\n stateDeltaRef.current = delta;\n },\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -11,13 +11,14 @@ import request from "./utils/request";
|
|
|
11
11
|
import XAdkProvider from "./components/XAdkProvider";
|
|
12
12
|
import XAdkChatbot from "./components/XAdkChatbot";
|
|
13
13
|
import XAdkSender from "./components/XAdkSender";
|
|
14
|
+
import XAdkSenderSwitch from "./components/XAdkSender/Switch";
|
|
14
15
|
import useADKChat from "./hooks/useADKChat";
|
|
15
16
|
import { baseChatStrategies, basePreset, baseToolKindResolver, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, createXGroupUploadRequest, xGroupAdkPreset, xGroupToolKindResolver } from "./presets/xGroupAdk";
|
|
16
17
|
export { useChatState, useChatActions, useSession, } from "./components/XAdkProvider/context";
|
|
17
18
|
export * from "./types";
|
|
18
19
|
export type { ChatHookResult, ChatHookFactory } from "./types/ChatHook";
|
|
19
20
|
export { useXAi, XAiProvider, XAiChatbot, XAiSDK, XAiSender, XAiConversations, useXAiSDK, request, };
|
|
20
|
-
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver, };
|
|
21
|
+
export { XAdkProvider, XAdkChatbot, XAdkSender, XAdkSenderSwitch, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver, };
|
|
21
22
|
export { default as MarkdownRender } from "./components/XAdkChatbot/components/MarkdownRender";
|
|
22
23
|
export { default as FunctionCallRender } from "./components/XAdkChatbot/components/FunctionCallRender";
|
|
23
24
|
export { default as ThinkRender } from "./components/XAdkChatbot/components/ThinkRender";
|
package/dist/esm/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import request from "./utils/request";
|
|
|
14
14
|
import XAdkProvider from "./components/XAdkProvider";
|
|
15
15
|
import XAdkChatbot from "./components/XAdkChatbot";
|
|
16
16
|
import XAdkSender from "./components/XAdkSender";
|
|
17
|
+
import XAdkSenderSwitch from "./components/XAdkSender/Switch";
|
|
17
18
|
import useADKChat from "./hooks/useADKChat";
|
|
18
19
|
import { baseChatStrategies, basePreset, baseToolKindResolver, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, createXGroupUploadRequest, xGroupAdkPreset, xGroupToolKindResolver } from "./presets/xGroupAdk";
|
|
19
20
|
|
|
@@ -27,7 +28,7 @@ export * from "./types";
|
|
|
27
28
|
export { useXAi, XAiProvider, XAiChatbot, XAiSDK, XAiSender, XAiConversations, useXAiSDK, request };
|
|
28
29
|
|
|
29
30
|
// 新 API - 推荐使用
|
|
30
|
-
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver };
|
|
31
|
+
export { XAdkProvider, XAdkChatbot, XAdkSender, XAdkSenderSwitch, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver };
|
|
31
32
|
|
|
32
33
|
// 基础组件导出 - 供高级用户和业务侧使用
|
|
33
34
|
export { default as MarkdownRender } from "./components/XAdkChatbot/components/MarkdownRender";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","useADKChat","baseChatStrategies","basePreset","baseToolKindResolver","mergeChatStrategies","resolvePresetUploadRequest","resolveChatPreset","createXGroupUploadRequest","xGroupAdkPreset","xGroupToolKindResolver","useChatState","useChatActions","useSession","default","MarkdownRender","FunctionCallRender","ThinkRender"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n} from \"./types/XAdkThoughtChain\";\n"],"mappings":"AAAA;AACA,SAASA,MAAM;AACf,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,MAAM;AACb,OAAOC,SAAS;AAChB,OAAOC,WAAW;AAClB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,SAAS;AAChB,OAAOC,OAAO;;AAEd;AACA,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,UAAU;AACjB,SACEC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SACEC,YAAY,EACZC,cAAc,EACdC,UAAU;AAGZ;;AAEA;;AAGA;AACA,
|
|
1
|
+
{"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","XAdkSenderSwitch","useADKChat","baseChatStrategies","basePreset","baseToolKindResolver","mergeChatStrategies","resolvePresetUploadRequest","resolveChatPreset","createXGroupUploadRequest","xGroupAdkPreset","xGroupToolKindResolver","useChatState","useChatActions","useSession","default","MarkdownRender","FunctionCallRender","ThinkRender"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport XAdkSenderSwitch from \"./components/XAdkSender/Switch\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n XAdkSenderSwitch,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n} from \"./types/XAdkThoughtChain\";\n"],"mappings":"AAAA;AACA,SAASA,MAAM;AACf,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,MAAM;AACb,OAAOC,SAAS;AAChB,OAAOC,WAAW;AAClB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,SAAS;AAChB,OAAOC,OAAO;;AAEd;AACA,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,gBAAgB;AACvB,OAAOC,UAAU;AACjB,SACEC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SACEC,YAAY,EACZC,cAAc,EACdC,UAAU;AAGZ;;AAEA;;AAGA;AACA,SACE1B,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTE,gBAAgB,EAChBE,SAAS,EACTC,OAAO;;AAGT;AACA,SACEC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,gBAAgB,EAChBR,WAAW,EACXE,gBAAgB,EAChBO,UAAU,EACVC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBI,yBAAyB,EACzBH,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBE,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SAASI,OAAO,IAAIC,cAAc;AAClC,SAASD,OAAO,IAAIE,kBAAkB;AACtC,SAASF,OAAO,IAAIG,WAAW;;AAE/B"}
|