@ai-group/chat-sdk 3.0.13 → 3.0.15
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/FileGallery/index.js +16 -0
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.js +39 -20
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/esm/components/FileGallery/index.js +35 -1
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +61 -18
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","Image","Tooltip","Progress","FileOutlined","FilePdfOutlined","FileWordOutlined","FileExcelOutlined","FilePptOutlined","FileImageOutlined","CloseOutlined","AudioOutlined","VideoCameraOutlined","useStyles","jsx","_jsx","jsxs","_jsxs","getFileName","file","displayName","name","getFileSize","size","getMimeType","mimeType","type","getFileUrl","_file$response","_file$response2","fileUri","response","fileUrl","tempUrl","getFileId","id","uid","isImageFile","startsWith","fileName","match","url","isAudioFile","isVideoFile","getFileExtension","filename","ext","split","pop","toLowerCase","getFileIcon","icon","color","includes","formatFileSize","bytes","toFixed","styles","FileGallery","_ref","_ref$align","align","_ref$removable","removable","_ref$onRemove","onRemove","className","style","onClick","_useState","_useState2","_slicedToArray","objectUrl","setObjectUrl","URL","createObjectURL","revokeObjectURL","isImage","isAudio","isVideo","fileSize","fileId","concat","fileCard","_objectSpread","cursor","undefined","children","imageThumbnail","src","alt","fallback","preview","status","imageOverlay","percent","progress","strokeColor","fileInfo","title","length","substring","Number","fileRemoveBtn","disabled","fileIcon","controls","mediaWrapper","width","height","_getFileIcon","isExternalUrl","href","target","rel","fileLink","showInfo","errorMessage","fontSize","marginTop"],"sources":["../../../../src/components/FileGallery/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Image, Tooltip, Progress } from \"antd\";\nimport {\n FileOutlined,\n FilePdfOutlined,\n FileWordOutlined,\n FileExcelOutlined,\n FilePptOutlined,\n FileImageOutlined,\n CloseOutlined,\n AudioOutlined,\n VideoCameraOutlined,\n} from \"@ant-design/icons\";\nimport { FileItem, FileGalleryProps, FileItemComponentProps } from \"@/types\";\nimport { useStyles } from \"./styles\";\n\n// ==================== 工具函数 ====================\n\n/**\n * 获取文件名\n */\nconst getFileName = (file: FileItem): string => {\n return file.displayName || file.name || \"\";\n};\n\n/**\n * 获取文件大小\n */\nconst getFileSize = (file: FileItem): number => {\n return file.size || 0;\n};\n\n/**\n * 获取文件 MIME 类型\n */\nconst getMimeType = (file: FileItem): string => {\n return file.mimeType || file.type || \"\";\n};\n\n/**\n * 获取文件 URL\n */\nconst getFileUrl = (file: FileItem): string => {\n return (\n file.fileUri ||\n file.response?.fileUrl ||\n file.response?.tempUrl ||\n file.tempUrl ||\n \"\"\n );\n};\n\n/**\n * 获取文件唯一标识\n */\nconst getFileId = (file: FileItem): string => {\n return file.id || file.uid || \"\";\n};\n\n/**\n * 判断是否是图片文件\n */\nconst isImageFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"image/\")) return true;\n\n const fileName = getFileName(file);\n if (fileName && fileName.match(/\\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i))\n return true;\n\n const url = getFileUrl(file);\n if (url && url.match(/\\.(jpg|jpeg|png|gif|webp|bmp|svg)(\\?.*)?$/i))\n return true;\n\n return false;\n};\n\n/**\n * 判断是否是音频文件\n */\nconst isAudioFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"audio/\")) return true;\n\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(mp3|wav|m4a|aac|ogg|flac)$/i);\n};\n\n/**\n * 判断是否是视频文件\n */\nconst isVideoFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"video/\")) return true;\n\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(mp4|mov|webm|mkv|avi)$/i);\n};\n\n/**\n * 获取文件扩展名\n */\nconst getFileExtension = (filename: string): string => {\n const ext = filename.split(\".\").pop();\n return ext ? ext.toLowerCase() : \"\";\n};\n\n/**\n * 获取文件图标和颜色\n */\nconst getFileIcon = (\n file: FileItem,\n): { icon: React.ReactNode; color: string } => {\n const ext = getFileExtension(getFileName(file));\n\n // PDF\n if (ext === \"pdf\") {\n return { icon: <FilePdfOutlined />, color: \"#ff4d4f\" };\n }\n\n // Word\n if ([\"doc\", \"docx\"].includes(ext)) {\n return { icon: <FileWordOutlined />, color: \"#1677ff\" };\n }\n\n // Excel\n if ([\"xls\", \"xlsx\", \"csv\"].includes(ext)) {\n return { icon: <FileExcelOutlined />, color: \"#22b35e\" };\n }\n\n // PPT\n if ([\"ppt\", \"pptx\"].includes(ext)) {\n return { icon: <FilePptOutlined />, color: \"#ff6e31\" };\n }\n\n // Audio\n if ([\"mp3\", \"wav\", \"m4a\", \"aac\", \"ogg\", \"flac\"].includes(ext)) {\n return { icon: <AudioOutlined />, color: \"#722ed1\" };\n }\n\n // Video\n if ([\"mp4\", \"mov\", \"webm\", \"mkv\", \"avi\"].includes(ext)) {\n return { icon: <VideoCameraOutlined />, color: \"#fa8c16\" };\n }\n\n // 图片\n if (isImageFile(file)) {\n return { icon: <FileImageOutlined />, color: \"#8c8c8c\" };\n }\n\n // 默认\n return { icon: <FileOutlined />, color: \"#8c8c8c\" };\n};\n\n/**\n * 格式化文件大小\n */\nconst formatFileSize = (bytes: number): string => {\n if (bytes < 1024) return bytes + \" B\";\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + \" KB\";\n return (bytes / (1024 * 1024)).toFixed(1) + \" MB\";\n};\n\nconst styles = useStyles();\n\n/**\n * FileGallery - 单文件展示组件\n *\n * 功能特性:\n * - 📁 支持多种文件类型展示 (图片、音频、视频、文档等)\n * - 🖼️ 图片支持预览和缩略图\n * - 🎵 音频文件支持内联播放\n * - 🎬 视频文件支持内联播放\n * - 📊 显示文件大小、类型图标\n * - 🗑️ 支持删除操作\n * - 📤 支持上传进度显示\n * - 🎨 支持卡片内部布局控制(align:图标和信息的排列方式)\n *\n * @example\n * // XAdkSender 场景 - 可删除的本地文件\n * {files.map(file => (\n * <FileGallery\n * key={file.id}\n * file={file}\n * removable\n * onRemove={handleRemove}\n * />\n * ))}\n *\n * @example\n * // XadkChatbot 场景 - 只读的远程文件\n * {files.map(file => (\n * <FileGallery key={file.id} file={file} />\n * ))}\n */\nconst FileGallery: React.FC<FileGalleryProps> = ({\n file,\n align = \"left\",\n removable = false,\n onRemove = () => {},\n className,\n style,\n onClick,\n}) => {\n const [objectUrl, setObjectUrl] = useState(\"\");\n\n useEffect(() => {\n if (!file?.file) return;\n\n const url = URL.createObjectURL(file.file);\n setObjectUrl(url);\n\n return () => URL.revokeObjectURL(url);\n }, [file?.file]);\n\n if (!file) return null;\n\n const isImage = isImageFile(file);\n const isAudio = isAudioFile(file);\n const isVideo = isVideoFile(file);\n const fileName = getFileName(file);\n const fileSize = getFileSize(file);\n const fileId = getFileId(file);\n const url = getFileUrl(file) || objectUrl;\n\n // 图片文件\n if (isImage) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={{ ...style, cursor: onClick ? \"pointer\" : undefined }}\n onClick={() => onClick?.(file)}\n >\n {/* 图片缩略图 */}\n <div className={styles.imageThumbnail}>\n <Image\n src={url}\n alt={fileName}\n fallback=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==\"\n preview={onClick ? false : { src: url }}\n />\n\n {/* 上传进度遮罩 */}\n {file.status === \"uploading\" && (\n <div className={styles.imageOverlay}>\n <Progress\n type=\"circle\"\n percent={file.progress}\n size={30}\n strokeColor=\"#1677ff\"\n />\n </div>\n )}\n </div>\n\n {/* 文件信息 */}\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n {Number(file?.size) > 0 && (\n <div className={styles.fileSize}>{formatFileSize(fileSize)}</div>\n )}\n </div>\n\n {/* 删除按钮 */}\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 音频文件\n if (isAudio) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={style}\n >\n <div className={styles.fileIcon} style={{ color: \"#722ed1\" }}>\n <AudioOutlined />\n </div>\n\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>{fileName}</div>\n </Tooltip>\n\n <audio\n src={url}\n controls\n className={styles.mediaWrapper}\n style={{ width: \"100%\", height: 28 }}\n />\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 视频文件\n if (isVideo) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={style}\n >\n <div className={styles.fileIcon} style={{ color: \"#fa8c16\" }}>\n <VideoCameraOutlined />\n </div>\n\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>{fileName}</div>\n </Tooltip>\n\n <video\n src={url}\n controls\n className={styles.mediaWrapper}\n style={{ width: \"100%\", height: 40 }}\n />\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 其他文件\n const { icon, color } = getFileIcon(file);\n const isExternalUrl = url && url.startsWith(\"http\");\n\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={{ ...style, cursor: onClick ? \"pointer\" : undefined }}\n onClick={() => onClick?.(file)}\n >\n <div className={styles.fileIcon} style={{ color }}>\n {icon}\n </div>\n\n <div className={styles.fileInfo}>\n {isExternalUrl && !onClick ? (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.fileLink}\n >\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n </a>\n ) : (\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n )}\n\n {file.status === \"uploading\" ? (\n <Progress\n percent={file.progress}\n size=\"small\"\n showInfo={false}\n strokeColor=\"#1677ff\"\n className={styles.progress}\n />\n ) : (\n fileSize > 0 && (\n <div className={styles.fileSize}>{formatFileSize(fileSize)}</div>\n )\n )}\n\n {file.status === \"error\" && file.errorMessage && (\n <div\n style={{\n fontSize: \"11px\",\n color: \"#ff4d4f\",\n marginTop: \"2px\",\n }}\n >\n {file.errorMessage}\n </div>\n )}\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n};\n\nexport default FileGallery;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","Image","Tooltip","Progress","FileOutlined","FilePdfOutlined","FileWordOutlined","FileExcelOutlined","FilePptOutlined","FileImageOutlined","CloseOutlined","AudioOutlined","FileZipOutlined","VideoCameraOutlined","FileMarkdownOutlined","useStyles","jsx","_jsx","jsxs","_jsxs","getFileName","file","displayName","name","getFileSize","size","getMimeType","mimeType","type","getFileUrl","_file$response","_file$response2","fileUri","response","fileUrl","tempUrl","getFileId","id","uid","isImageFile","startsWith","fileName","match","url","isAudioFile","isVideoFile","isZipFile","isMarkdownFile","getFileExtension","filename","ext","split","pop","toLowerCase","getFileIcon","icon","color","includes","formatFileSize","bytes","toFixed","styles","FileGallery","_ref","_ref$align","align","_ref$removable","removable","_ref$onRemove","onRemove","className","style","onClick","_useState","_useState2","_slicedToArray","objectUrl","setObjectUrl","URL","createObjectURL","revokeObjectURL","isImage","isAudio","isVideo","isZip","isMarkdown","fileSize","fileId","concat","fileCard","_objectSpread","cursor","undefined","children","imageThumbnail","src","alt","fallback","preview","status","imageOverlay","percent","progress","strokeColor","fileInfo","title","length","substring","Number","fileRemoveBtn","disabled","fileIcon","controls","mediaWrapper","width","height","_getFileIcon","isExternalUrl","href","target","rel","fileLink","showInfo","errorMessage","fontSize","marginTop"],"sources":["../../../../src/components/FileGallery/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Image, Tooltip, Progress } from \"antd\";\nimport {\n FileOutlined,\n FilePdfOutlined,\n FileWordOutlined,\n FileExcelOutlined,\n FilePptOutlined,\n FileImageOutlined,\n CloseOutlined,\n AudioOutlined,\n FileZipOutlined,\n VideoCameraOutlined,\n FileMarkdownOutlined,\n} from \"@ant-design/icons\";\nimport { FileItem, FileGalleryProps } from \"@/types\";\nimport { useStyles } from \"./styles\";\n\n// ==================== 工具函数 ====================\n\n/**\n * 获取文件名\n */\nconst getFileName = (file: FileItem): string => {\n return file.displayName || file.name || \"\";\n};\n\n/**\n * 获取文件大小\n */\nconst getFileSize = (file: FileItem): number => {\n return file.size || 0;\n};\n\n/**\n * 获取文件 MIME 类型\n */\nconst getMimeType = (file: FileItem): string => {\n return file.mimeType || file.type || \"\";\n};\n\n/**\n * 获取文件 URL\n */\nconst getFileUrl = (file: FileItem): string => {\n return (\n file.fileUri ||\n file.response?.fileUrl ||\n file.response?.tempUrl ||\n file.tempUrl ||\n \"\"\n );\n};\n\n/**\n * 获取文件唯一标识\n */\nconst getFileId = (file: FileItem): string => {\n return file.id || file.uid || \"\";\n};\n\n/**\n * 判断是否是图片文件\n */\nconst isImageFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"image/\")) return true;\n\n const fileName = getFileName(file);\n if (fileName && fileName.match(/\\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i))\n return true;\n\n const url = getFileUrl(file);\n if (url && url.match(/\\.(jpg|jpeg|png|gif|webp|bmp|svg)(\\?.*)?$/i))\n return true;\n\n return false;\n};\n\n/**\n * 判断是否是音频文件\n */\nconst isAudioFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"audio/\")) return true;\n\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(mp3|wav|m4a|aac|ogg|flac)$/i);\n};\n\n/**\n * 判断是否是视频文件\n */\nconst isVideoFile = (file: FileItem): boolean => {\n const mimeType = getMimeType(file);\n if (mimeType && mimeType.startsWith(\"video/\")) return true;\n\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(mp4|mov|webm|mkv|avi)$/i);\n};\n\n/**\n * 判断是否是压缩包文件\n */\nconst isZipFile = (file: FileItem): boolean => {\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(zip|rar|7z|tar|gz|bz2|xz|tgz)$/i);\n};\n\n/**\n * 判断是否是 Markdown 文件\n */\nconst isMarkdownFile = (file: FileItem): boolean => {\n const fileName = getFileName(file);\n return !!fileName?.match(/\\.(md|markdown)$/i);\n};\n\n/**\n * 获取文件扩展名\n */\nconst getFileExtension = (filename: string): string => {\n const ext = filename.split(\".\").pop();\n return ext ? ext.toLowerCase() : \"\";\n};\n\n/**\n * 获取文件图标和颜色\n */\nconst getFileIcon = (\n file: FileItem,\n): { icon: React.ReactNode; color: string } => {\n const ext = getFileExtension(getFileName(file));\n\n // PDF\n if (ext === \"pdf\") {\n return { icon: <FilePdfOutlined />, color: \"#ff4d4f\" };\n }\n\n // Word\n if ([\"doc\", \"docx\"].includes(ext)) {\n return { icon: <FileWordOutlined />, color: \"#1677ff\" };\n }\n\n // Excel\n if ([\"xls\", \"xlsx\", \"csv\"].includes(ext)) {\n return { icon: <FileExcelOutlined />, color: \"#22b35e\" };\n }\n\n // PPT\n if ([\"ppt\", \"pptx\"].includes(ext)) {\n return { icon: <FilePptOutlined />, color: \"#ff6e31\" };\n }\n\n // Audio\n if ([\"mp3\", \"wav\", \"m4a\", \"aac\", \"ogg\", \"flac\"].includes(ext)) {\n return { icon: <AudioOutlined />, color: \"#722ed1\" };\n }\n\n // Video\n if ([\"mp4\", \"mov\", \"webm\", \"mkv\", \"avi\"].includes(ext)) {\n return { icon: <VideoCameraOutlined />, color: \"#fa8c16\" };\n }\n\n // 压缩包\n if ([\"zip\", \"rar\", \"7z\", \"tar\", \"gz\", \"bz2\", \"xz\", \"tgz\"].includes(ext)) {\n return { icon: <FileZipOutlined />, color: \"#eb2f96\" };\n }\n\n // Markdown\n if ([\"md\", \"markdown\"].includes(ext)) {\n return { icon: <FileMarkdownOutlined />, color: \"#13c2c2\" };\n }\n\n // 图片\n if (isImageFile(file)) {\n return { icon: <FileImageOutlined />, color: \"#8c8c8c\" };\n }\n\n // 默认\n return { icon: <FileOutlined />, color: \"#8c8c8c\" };\n};\n\n/**\n * 格式化文件大小\n */\nconst formatFileSize = (bytes: number): string => {\n if (bytes < 1024) return bytes + \" B\";\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + \" KB\";\n return (bytes / (1024 * 1024)).toFixed(1) + \" MB\";\n};\n\nconst styles = useStyles();\n\n/**\n * FileGallery - 单文件展示组件\n *\n * 功能特性:\n * - 📁 支持多种文件类型展示 (图片、音频、视频、文档等)\n * - 🖼️ 图片支持预览和缩略图\n * - 🎵 音频文件支持内联播放\n * - 🎬 视频文件支持内联播放\n * - 📊 显示文件大小、类型图标\n * - 🗑️ 支持删除操作\n * - 📤 支持上传进度显示\n * - 🎨 支持卡片内部布局控制(align:图标和信息的排列方式)\n *\n * @example\n * // XAdkSender 场景 - 可删除的本地文件\n * {files.map(file => (\n * <FileGallery\n * key={file.id}\n * file={file}\n * removable\n * onRemove={handleRemove}\n * />\n * ))}\n *\n * @example\n * // XadkChatbot 场景 - 只读的远程文件\n * {files.map(file => (\n * <FileGallery key={file.id} file={file} />\n * ))}\n */\nconst FileGallery: React.FC<FileGalleryProps> = ({\n file,\n align = \"left\",\n removable = false,\n onRemove = () => {},\n className,\n style,\n onClick,\n}) => {\n const [objectUrl, setObjectUrl] = useState(\"\");\n\n useEffect(() => {\n if (!file?.file) return;\n\n const url = URL.createObjectURL(file.file);\n setObjectUrl(url);\n\n return () => URL.revokeObjectURL(url);\n }, [file?.file]);\n\n if (!file) return null;\n\n const isImage = isImageFile(file);\n const isAudio = isAudioFile(file);\n const isVideo = isVideoFile(file);\n const isZip = isZipFile(file);\n const isMarkdown = isMarkdownFile(file);\n const fileName = getFileName(file);\n const fileSize = getFileSize(file);\n const fileId = getFileId(file);\n const url = getFileUrl(file) || objectUrl;\n\n // 图片文件\n if (isImage) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={{ ...style, cursor: onClick ? \"pointer\" : undefined }}\n onClick={() => onClick?.(file)}\n >\n {/* 图片缩略图 */}\n <div className={styles.imageThumbnail}>\n <Image\n src={url}\n alt={fileName}\n fallback=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==\"\n preview={onClick ? false : { src: url }}\n />\n\n {/* 上传进度遮罩 */}\n {file.status === \"uploading\" && (\n <div className={styles.imageOverlay}>\n <Progress\n type=\"circle\"\n percent={file.progress}\n size={30}\n strokeColor=\"#1677ff\"\n />\n </div>\n )}\n </div>\n\n {/* 文件信息 */}\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n {Number(file?.size) > 0 && (\n <div className={styles.fileSize}>{formatFileSize(fileSize)}</div>\n )}\n </div>\n\n {/* 删除按钮 */}\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 音频文件\n if (isAudio) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={style}\n >\n <div className={styles.fileIcon} style={{ color: \"#722ed1\" }}>\n <AudioOutlined />\n </div>\n\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>{fileName}</div>\n </Tooltip>\n\n <audio\n src={url}\n controls\n className={styles.mediaWrapper}\n style={{ width: \"100%\", height: 28 }}\n />\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 视频文件\n if (isVideo) {\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={style}\n >\n <div className={styles.fileIcon} style={{ color: \"#fa8c16\" }}>\n <VideoCameraOutlined />\n </div>\n\n <div className={styles.fileInfo}>\n <Tooltip title={fileName}>\n <div className={styles.fileName}>{fileName}</div>\n </Tooltip>\n\n <video\n src={url}\n controls\n className={styles.mediaWrapper}\n style={{ width: \"100%\", height: 40 }}\n />\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n }\n\n // 其他文件\n const { icon, color } = getFileIcon(file);\n const isExternalUrl = url && url.startsWith(\"http\");\n\n return (\n <div\n className={`${styles.fileCard} ${align === \"right\" ? \"align-right\" : \"\"} ${className || \"\"}`}\n style={{ ...style, cursor: onClick ? \"pointer\" : undefined }}\n onClick={() => onClick?.(file)}\n >\n <div className={styles.fileIcon} style={{ color }}>\n {icon}\n </div>\n\n <div className={styles.fileInfo}>\n {isExternalUrl && !onClick ? (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.fileLink}\n >\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n </a>\n ) : (\n <Tooltip title={fileName}>\n <div className={styles.fileName}>\n {fileName.length > 15\n ? `${fileName.substring(0, 15)}...`\n : fileName}\n </div>\n </Tooltip>\n )}\n\n {file.status === \"uploading\" ? (\n <Progress\n percent={file.progress}\n size=\"small\"\n showInfo={false}\n strokeColor=\"#1677ff\"\n className={styles.progress}\n />\n ) : (\n fileSize > 0 && (\n <div className={styles.fileSize}>{formatFileSize(fileSize)}</div>\n )\n )}\n\n {file.status === \"error\" && file.errorMessage && (\n <div\n style={{\n fontSize: \"11px\",\n color: \"#ff4d4f\",\n marginTop: \"2px\",\n }}\n >\n {file.errorMessage}\n </div>\n )}\n </div>\n\n {removable && (\n <button\n className={styles.fileRemoveBtn}\n onClick={() => onRemove(fileId)}\n disabled={file.status === \"uploading\"}\n aria-label=\"删除文件\"\n >\n <CloseOutlined />\n </button>\n )}\n </div>\n );\n};\n\nexport default FileGallery;\n"],"mappings":"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"}
|
|
@@ -623,7 +623,20 @@ function useADKChat(_ref) {
|
|
|
623
623
|
return Boolean(p.text || p.inlineData || p.functionCall || p.functionResponse || p.fileData || p.executableCode || p.codeExecutionResult || p.errorMessage);
|
|
624
624
|
}) : [];
|
|
625
625
|
if (parts.length === 0) return;
|
|
626
|
-
|
|
626
|
+
|
|
627
|
+
// 将同一条历史消息的 text/fileData parts 合并到一条 IMessage,避免拆分显示
|
|
628
|
+
var textParts = parts.filter(function (p) {
|
|
629
|
+
return p.text || p.errorMessage || p.inlineData;
|
|
630
|
+
});
|
|
631
|
+
var fileDataParts = parts.filter(function (p) {
|
|
632
|
+
return p.fileData;
|
|
633
|
+
});
|
|
634
|
+
var otherParts = parts.filter(function (p) {
|
|
635
|
+
return !p.text && !p.errorMessage && !p.inlineData && !p.fileData;
|
|
636
|
+
});
|
|
637
|
+
|
|
638
|
+
// 如果有 text/fileData,合并为一条消息
|
|
639
|
+
if (textParts.length > 0 || fileDataParts.length > 0) {
|
|
627
640
|
var msg = {
|
|
628
641
|
id: v4(),
|
|
629
642
|
author: item.author,
|
|
@@ -634,28 +647,58 @@ function useADKChat(_ref) {
|
|
|
634
647
|
role: role,
|
|
635
648
|
raw: item
|
|
636
649
|
};
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
650
|
+
var _iterator3 = _createForOfIteratorHelper(textParts),
|
|
651
|
+
_step3;
|
|
652
|
+
try {
|
|
653
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
654
|
+
var part = _step3.value;
|
|
655
|
+
if (part.inlineData) {
|
|
656
|
+
msg.inlineData = {
|
|
657
|
+
displayName: part.inlineData.displayName,
|
|
658
|
+
data: part.inlineData.data,
|
|
659
|
+
mimeType: part.inlineData.mimeType
|
|
660
|
+
};
|
|
661
|
+
}
|
|
662
|
+
if (part.text) {
|
|
663
|
+
msg.text = (msg.text ? msg.text + "\n" : "") + part.text;
|
|
664
|
+
if (typeof part.thought !== "undefined") msg.thought = part.thought;
|
|
665
|
+
}
|
|
666
|
+
if (part.errorMessage) {
|
|
667
|
+
msg.text = (msg.text ? msg.text + "\n" : "") + part.errorMessage;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
} catch (err) {
|
|
671
|
+
_iterator3.e(err);
|
|
672
|
+
} finally {
|
|
673
|
+
_iterator3.f();
|
|
643
674
|
}
|
|
644
|
-
if (
|
|
645
|
-
msg.
|
|
646
|
-
|
|
675
|
+
if (fileDataParts.length > 0) {
|
|
676
|
+
msg.fileData = fileDataParts.map(function (part) {
|
|
677
|
+
return {
|
|
678
|
+
displayName: part.fileData.displayName || "",
|
|
679
|
+
fileUri: part.fileData.fileUri,
|
|
680
|
+
mimeType: part.fileData.mimeType
|
|
681
|
+
};
|
|
682
|
+
});
|
|
647
683
|
}
|
|
684
|
+
mapped.push(msg);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
// 处理其他类型的 parts(functionCall、executableCode 等)
|
|
688
|
+
otherParts.forEach(function (part) {
|
|
689
|
+
var msg = {
|
|
690
|
+
id: v4(),
|
|
691
|
+
author: item.author,
|
|
692
|
+
invocationId: item.invocationId,
|
|
693
|
+
eventId: item.id,
|
|
694
|
+
timestamp: item.timestamp,
|
|
695
|
+
isLike: item.isLike,
|
|
696
|
+
role: role,
|
|
697
|
+
raw: item
|
|
698
|
+
};
|
|
648
699
|
if (part.functionCall) msg.functionCall = part.functionCall;
|
|
649
|
-
if (part.fileData) {
|
|
650
|
-
msg.inlineData = {
|
|
651
|
-
displayName: part.fileData.displayName || "",
|
|
652
|
-
data: part.fileData.fileUri,
|
|
653
|
-
mimeType: part.fileData.mimeType
|
|
654
|
-
};
|
|
655
|
-
}
|
|
656
700
|
if (part.executableCode) msg.executableCode = part.executableCode;
|
|
657
701
|
if (part.codeExecutionResult) msg.codeExecutionResult = part.codeExecutionResult;
|
|
658
|
-
if (part.errorMessage) msg.text = part.errorMessage;
|
|
659
702
|
// 补全函数调用结果
|
|
660
703
|
if (part.functionResponse) {
|
|
661
704
|
// 通过 functionCall.id 寻找对应的函数调用消息,在那条消息上添加functionResponse
|
|
@@ -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","text","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","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","showFirstSession","_useState3","_useState4","appInfo","setAppInfo","_useState5","_useState6","initialized","setInitialized","_useState7","_useState8","sessionList","setSessionList","_useState9","_useState10","currentSessionId","setCurrentSessionId","_useState11","total","pageNum","pageSize","_useState12","sessionPagination","setSessionPagination","_useState13","_useState14","prologue","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","suggested_questions","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","isLike","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","fileData","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","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","initAppConversations","_x","apply","reChat","newMessages","lastAIIndex","findLastIndex","splice","lastUserMessage","findLast","_lastUserMessage$text","_lastUserMessage$file","confirmFnCall","fnCall","confirmed","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","raw","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSessionDetail","_ref5","_callee3","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee3$","_context3","sent","_x2","_ref6","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args4","_callee4$","_context4","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref7","_callee5","_yield$closeSession","_callee5$","_context5","_x3","likeMessage","_ref8","_callee6","feedbackData","_yield$addFeedback","_callee6$","_context6","requestId","_x4","_x5","_x6","updateSession","_ref9","_callee7","_yield$updateSessionT","_callee7$","_context7","_x7","_x8","initConfig","_ref10","_callee8","_yield$fetchAppConfig","_callee8$","_context8","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 {\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 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 = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(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 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, 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 };\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 };\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(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage],\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 (\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 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 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 ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading) return;\n if (!text.trim() && !functionResponse) return;\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: 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 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: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n });\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = () => {\n if (loading) return;\n if (messages.length === 0) return;\n setMessages((prev) => {\n const newMessages = [...prev];\n // 删除最后一条 AI 消息\n const lastAIIndex = newMessages.findLastIndex(\n (msg) => msg.role === \"bot\",\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n // 清空建议问题\n setSuggestedQuestions([]);\n // 重新发送最后一条用户消息\n const lastUserMessage = newMessages.findLast(\n (msg) => msg.role === \"user\",\n );\n if (lastUserMessage) {\n const { text = \"\", fileData = [] } = lastUserMessage;\n sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [\n {\n text,\n },\n ],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n });\n }\n\n return newMessages;\n });\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse = {\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 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 isLike: item.isLike,\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.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)\n msg.codeExecutionResult = part.codeExecutionResult;\n if (part.errorMessage) msg.text = part.errorMessage;\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 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(\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 setLoading(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 setCurrentSessionDetail(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 //\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(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 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 (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 messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\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","text","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","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","showFirstSession","_useState3","_useState4","appInfo","setAppInfo","_useState5","_useState6","initialized","setInitialized","_useState7","_useState8","sessionList","setSessionList","_useState9","_useState10","currentSessionId","setCurrentSessionId","_useState11","total","pageNum","pageSize","_useState12","sessionPagination","setSessionPagination","_useState13","_useState14","prologue","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","suggested_questions","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","isLike","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","fileData","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","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","initAppConversations","_x","apply","reChat","newMessages","lastAIIndex","findLastIndex","splice","lastUserMessage","findLast","_lastUserMessage$text","_lastUserMessage$file","confirmFnCall","fnCall","confirmed","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","textParts","fileDataParts","otherParts","raw","_iterator3","_step3","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSessionDetail","_ref5","_callee3","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee3$","_context3","sent","_x2","_ref6","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args4","_callee4$","_context4","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref7","_callee5","_yield$closeSession","_callee5$","_context5","_x3","likeMessage","_ref8","_callee6","feedbackData","_yield$addFeedback","_callee6$","_context6","requestId","_x4","_x5","_x6","updateSession","_ref9","_callee7","_yield$updateSessionT","_callee7$","_context7","_x7","_x8","initConfig","_ref10","_callee8","_yield$fetchAppConfig","_callee8$","_context8","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 {\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 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 = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(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 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, 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 };\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 };\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(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage],\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 (\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 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 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 ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading) return;\n if (!text.trim() && !functionResponse) return;\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: 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 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: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n });\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = () => {\n if (loading) return;\n if (messages.length === 0) return;\n setMessages((prev) => {\n const newMessages = [...prev];\n // 删除最后一条 AI 消息\n const lastAIIndex = newMessages.findLastIndex(\n (msg) => msg.role === \"bot\",\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n // 清空建议问题\n setSuggestedQuestions([]);\n // 重新发送最后一条用户消息\n const lastUserMessage = newMessages.findLast(\n (msg) => msg.role === \"user\",\n );\n if (lastUserMessage) {\n const { text = \"\", fileData = [] } = lastUserMessage;\n sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [\n {\n text,\n },\n ],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n });\n }\n\n return newMessages;\n });\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse = {\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((p: any) => p.text || p.errorMessage || p.inlineData);\n const fileDataParts = parts.filter((p: any) => p.fileData);\n const otherParts = parts.filter((p: any) => !p.text && !p.errorMessage && !p.inlineData && !p.fileData);\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 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 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 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(\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 setLoading(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 setCurrentSessionDetail(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 //\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(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 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 (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 messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
|