@ai-group/chat-sdk 1.0.7 → 1.0.9
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/XAiChatbot/XAiChatbot.stories.js +72 -77
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js +3 -3
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/styles.js +2 -0
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.d.ts +1 -0
- package/dist/cjs/hooks/useAgentGenerator.js +7 -3
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +71 -80
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js +57 -52
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.js +1 -1
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.d.ts +1 -0
- package/dist/esm/hooks/useAgentGenerator.js +7 -3
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -68,7 +68,9 @@ export var ActionHeader = function ActionHeader(_ref) {
|
|
|
68
68
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
69
69
|
executeExpanded = _useState4[0],
|
|
70
70
|
setExecuteExpanded = _useState4[1];
|
|
71
|
-
|
|
71
|
+
|
|
72
|
+
// 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有
|
|
73
|
+
if (!thinks && (!execute || execute.length === 0)) return null;
|
|
72
74
|
var last = execute[execute.length - 1] || {};
|
|
73
75
|
var name = last.name;
|
|
74
76
|
var icon = (last === null || last === void 0 ? void 0 : last.icon) || (last === null || last === void 0 || (_last$extra = last.extra) === null || _last$extra === void 0 ? void 0 : _last$extra.icon);
|
|
@@ -116,69 +118,72 @@ export var ActionHeader = function ActionHeader(_ref) {
|
|
|
116
118
|
})]
|
|
117
119
|
}), thinks && /*#__PURE__*/_jsx("div", {
|
|
118
120
|
className: styles.actionDetailContent,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
})
|
|
122
|
-
}), !executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
123
|
-
className: styles.executeHiddenWrapper,
|
|
124
|
-
onClick: function onClick() {
|
|
125
|
-
return setExecuteExpanded(function (v) {
|
|
126
|
-
return !v;
|
|
127
|
-
});
|
|
121
|
+
style: {
|
|
122
|
+
whiteSpace: 'pre-line'
|
|
128
123
|
},
|
|
129
|
-
children:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
className: styles.
|
|
133
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
134
|
-
className: styles.flex1,
|
|
135
|
-
children: name
|
|
136
|
-
}), /*#__PURE__*/_jsx("img", {
|
|
137
|
-
alt: "\u5DE5\u5177icon",
|
|
138
|
-
src: arrowDownBlue,
|
|
139
|
-
className: styles.w('16px')
|
|
140
|
-
})]
|
|
141
|
-
}), executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
142
|
-
className: styles.executeWrapper,
|
|
143
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
144
|
-
className: styles.executeTitle,
|
|
124
|
+
children: thinks
|
|
125
|
+
}), execute && execute.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
|
|
126
|
+
children: [!executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
127
|
+
className: styles.executeHiddenWrapper,
|
|
145
128
|
onClick: function onClick() {
|
|
146
129
|
return setExecuteExpanded(function (v) {
|
|
147
130
|
return !v;
|
|
148
131
|
});
|
|
149
132
|
},
|
|
150
|
-
children: [/*#__PURE__*/_jsx("img", {
|
|
151
|
-
src:
|
|
133
|
+
children: [icon && /*#__PURE__*/_jsx("img", {
|
|
134
|
+
src: icon,
|
|
152
135
|
alt: "icon",
|
|
153
|
-
className: styles.
|
|
136
|
+
className: styles.h(20)
|
|
154
137
|
}), /*#__PURE__*/_jsx("span", {
|
|
155
138
|
className: styles.flex1,
|
|
156
|
-
children:
|
|
139
|
+
children: name
|
|
157
140
|
}), /*#__PURE__*/_jsx("img", {
|
|
158
|
-
alt: "\
|
|
159
|
-
src:
|
|
141
|
+
alt: "\u5DE5\u5177icon",
|
|
142
|
+
src: arrowDownBlue,
|
|
160
143
|
className: styles.w('16px')
|
|
161
144
|
})]
|
|
162
|
-
}), /*#__PURE__*/
|
|
163
|
-
className: styles.
|
|
164
|
-
children:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
145
|
+
}), executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
146
|
+
className: styles.executeWrapper,
|
|
147
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
148
|
+
className: styles.executeTitle,
|
|
149
|
+
onClick: function onClick() {
|
|
150
|
+
return setExecuteExpanded(function (v) {
|
|
151
|
+
return !v;
|
|
152
|
+
});
|
|
153
|
+
},
|
|
154
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
155
|
+
src: groupIcon,
|
|
156
|
+
alt: "icon",
|
|
157
|
+
className: styles.executeHeaderIcon
|
|
158
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
159
|
+
className: styles.flex1,
|
|
160
|
+
children: "\u9690\u85CF\u8FD0\u884C\u8BE6\u60C5"
|
|
161
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
162
|
+
alt: "\u5C55\u5F00\u8BE6\u60C5icon",
|
|
163
|
+
src: arrowUp,
|
|
164
|
+
className: styles.w('16px')
|
|
165
|
+
})]
|
|
166
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
167
|
+
className: styles.executeContent,
|
|
168
|
+
children: execute.map(function (action, idx) {
|
|
169
|
+
var _action$extra, _action$extra2, _action$extra3;
|
|
170
|
+
var thinkIcon = (action === null || action === void 0 ? void 0 : action.expandIcon) || (action === null || action === void 0 || (_action$extra = action.extra) === null || _action$extra === void 0 ? void 0 : _action$extra.expandIcon) || (action === null || action === void 0 || (_action$extra2 = action.extra) === null || _action$extra2 === void 0 ? void 0 : _action$extra2.icon) || (action === null || action === void 0 ? void 0 : action.icon);
|
|
171
|
+
var thinkCost = (action === null || action === void 0 ? void 0 : action.cost) || (action === null || action === void 0 || (_action$extra3 = action.extra) === null || _action$extra3 === void 0 ? void 0 : _action$extra3.cost);
|
|
172
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
173
|
+
className: styles.actionHeaderDetailItem,
|
|
174
|
+
children: [thinkIcon && /*#__PURE__*/_jsx("img", {
|
|
175
|
+
src: thinkIcon,
|
|
176
|
+
alt: "icon",
|
|
177
|
+
className: styles.actionHeaderIcon
|
|
178
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
179
|
+
children: action === null || action === void 0 ? void 0 : action.name
|
|
180
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
181
|
+
className: styles.actionHeaderCost,
|
|
182
|
+
children: thinkCost ? "".concat(thinkCost, "s") : ''
|
|
183
|
+
})]
|
|
184
|
+
}, action.uniqueId || idx);
|
|
185
|
+
})
|
|
186
|
+
})]
|
|
182
187
|
})]
|
|
183
188
|
})]
|
|
184
189
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","styles","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","title","cursor","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst styles = useStyles();\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string,\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n if (!execute || execute.length === 0 || !thinks) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks && (\n <div className={styles.actionDetailContent}>\n <span>{thinks}</span>\n </div>\n )}\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded(v => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(20)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded(v => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n }\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty ? empty : <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false } } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop || \n <ActionHeader\n execute={execute}\n thinks={thinks}\n />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n /> }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","styles","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","style","whiteSpace","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","title","cursor","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst styles = useStyles();\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string,\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n // 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有\n if (!thinks && (!execute || execute.length === 0)) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n \n {thinks && (\n <div className={styles.actionDetailContent} style={{ whiteSpace: 'pre-line' }}>\n {thinks}\n </div>\n )}\n \n {execute && execute.length > 0 && (\n <>\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded(v => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(20)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded(v => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n }\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty ? empty : <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false } } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop || \n <ActionHeader\n execute={execute}\n thinks={thinks}\n />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n /> }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export var useStyles = withBasicStyles(function () {
|
|
|
25
25
|
highlight: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n background-color: ", ";\n color: white;\n border-color: ", ";\n "])), primaryBlue, primaryBlue),
|
|
26
26
|
inputBar: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n "])), borderGray),
|
|
27
27
|
input: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ", ";\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ", ";\n box-shadow: 0 0 3px ", ";\n }\n "])), borderGray, primaryBlue, primaryBlue),
|
|
28
|
-
actionDetailContent: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n "]))),
|
|
28
|
+
actionDetailContent: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n display: inline-block;\n white-space: 'pre-line';\n "]))),
|
|
29
29
|
actionHeaderWrapper: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n "]))),
|
|
30
30
|
actionHeaderIcon: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n height: 14px;\n margin-right: 5px;\n "]))),
|
|
31
31
|
actionHeaderDetail: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n "]))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","css","globalCss","Global","withBasicStyles","primaryBlue","lightBlue","darkGray","lightGray","borderGray","jsx","_jsx","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","messageList","_templateObject8","emptyWrapper","_templateObject9","emptyImg","_templateObject10","message","_templateObject11","messageRight","_templateObject12","quickReplies","_templateObject13","replyItem","_templateObject14","highlight","_templateObject15","inputBar","_templateObject16","input","_templateObject17","actionDetailContent","_templateObject18","actionHeaderWrapper","_templateObject19","actionHeaderIcon","_templateObject20","actionHeaderDetail","_templateObject21","actionDetailTitle","_templateObject22","executeHeaderIcon","_templateObject23","actionTitle","_templateObject24","actionHeaderDetailItem","_templateObject25","actionHeaderCost","_templateObject26","executeHiddenWrapper","_templateObject27","executeTitle","_templateObject28","executeContent","_templateObject29","executeWrapper","_templateObject30","GlobalStyle","styles","_templateObject31"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n `,\n\n messageList: css`\n padding: 0 16px;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n actionDetailContent: css`\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderIcon: css`\n height: 14px;\n margin-right: 5px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n executeHeaderIcon: css`\n height: 12px;\n padding-right: 10px !important;\n `,\n actionTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n border-radius: 8px;\n min-width: 200px;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n executeHiddenWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n margin: 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 40px;\n box-sizing: border-box;\n padding: 0px 16px;\n font-size: 14px;\n margin-bottom: 12px;\n color: #3961F2;\n `,\n executeTitle: css`\n display: flex;\n align-items: center;\n padding: 6px 16px;\n height: 40px;\n box-sizing: border-box;\n cursor: pointer;\n `,\n executeContent: css`\n border-top: 1px solid rgba(0,0,0,0.08);\n padding-top: 10px;\n `,\n executeWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n padding-bottom: 1px;\n margin: 12px;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: transparent;\n padding: 0;\n }\n `}\n />\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","css","globalCss","Global","withBasicStyles","primaryBlue","lightBlue","darkGray","lightGray","borderGray","jsx","_jsx","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","messageList","_templateObject8","emptyWrapper","_templateObject9","emptyImg","_templateObject10","message","_templateObject11","messageRight","_templateObject12","quickReplies","_templateObject13","replyItem","_templateObject14","highlight","_templateObject15","inputBar","_templateObject16","input","_templateObject17","actionDetailContent","_templateObject18","actionHeaderWrapper","_templateObject19","actionHeaderIcon","_templateObject20","actionHeaderDetail","_templateObject21","actionDetailTitle","_templateObject22","executeHeaderIcon","_templateObject23","actionTitle","_templateObject24","actionHeaderDetailItem","_templateObject25","actionHeaderCost","_templateObject26","executeHiddenWrapper","_templateObject27","executeTitle","_templateObject28","executeContent","_templateObject29","executeWrapper","_templateObject30","GlobalStyle","styles","_templateObject31"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n `,\n\n messageList: css`\n padding: 0 16px;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n actionDetailContent: css`\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n display: inline-block;\n white-space: 'pre-line';\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderIcon: css`\n height: 14px;\n margin-right: 5px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n executeHeaderIcon: css`\n height: 12px;\n padding-right: 10px !important;\n `,\n actionTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n border-radius: 8px;\n min-width: 200px;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n executeHiddenWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n margin: 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 40px;\n box-sizing: border-box;\n padding: 0px 16px;\n font-size: 14px;\n margin-bottom: 12px;\n color: #3961F2;\n `,\n executeTitle: css`\n display: flex;\n align-items: center;\n padding: 6px 16px;\n height: 40px;\n box-sizing: border-box;\n cursor: pointer;\n `,\n executeContent: css`\n border-top: 1px solid rgba(0,0,0,0.08);\n padding-top: 10px;\n `,\n executeWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n padding-bottom: 1px;\n margin: 12px;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: transparent;\n padding: 0;\n }\n `}\n />\n);\n"],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export declare enum ActionType {
|
|
|
28
28
|
invokeToolStart = "INVOKE_AGENT_TOOL_START",// 开始调用工具
|
|
29
29
|
invokeToolEnd = "INVOKE_AGENT_TOOL_END",// 调用工具完成
|
|
30
30
|
reasoning = "REASONING",// 思考过程
|
|
31
|
+
reasoningEnd = "REASONING_END",// 思考结束
|
|
31
32
|
suggest = "FOLLOW_UP",// 用户提示
|
|
32
33
|
response = "RESPONSE",// 响应
|
|
33
34
|
finish = "FINISHED"
|
|
@@ -32,6 +32,7 @@ export var ActionType = /*#__PURE__*/function (ActionType) {
|
|
|
32
32
|
ActionType["invokeToolStart"] = "INVOKE_AGENT_TOOL_START";
|
|
33
33
|
ActionType["invokeToolEnd"] = "INVOKE_AGENT_TOOL_END";
|
|
34
34
|
ActionType["reasoning"] = "REASONING";
|
|
35
|
+
ActionType["reasoningEnd"] = "REASONING_END";
|
|
35
36
|
ActionType["suggest"] = "FOLLOW_UP";
|
|
36
37
|
ActionType["response"] = "RESPONSE";
|
|
37
38
|
ActionType["finish"] = "FINISHED";
|
|
@@ -242,7 +243,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
// 找到最后一条 AI 消息
|
|
245
|
-
var lastAIMsgIndex = _toConsumableArray(prevMessages).
|
|
246
|
+
var lastAIMsgIndex = _toConsumableArray(prevMessages).findLastIndex(function (m) {
|
|
246
247
|
return m.role === MessageRole.assistant && m.type === 'TextMessage' && (m.status === 'init' || m.status === 'pending');
|
|
247
248
|
});
|
|
248
249
|
var realIndex = lastAIMsgIndex === -1 ? -1 : prevMessages.length - 1 - lastAIMsgIndex;
|
|
@@ -273,6 +274,9 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
273
274
|
}
|
|
274
275
|
switch (action) {
|
|
275
276
|
// 思考过程
|
|
277
|
+
case ActionType.reasoningEnd:
|
|
278
|
+
aiMsg.thinks += '/n';
|
|
279
|
+
break;
|
|
276
280
|
case ActionType.reasoning:
|
|
277
281
|
aiMsg.thinks += content;
|
|
278
282
|
break;
|
|
@@ -548,7 +552,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
548
552
|
var reChat = function reChat() {
|
|
549
553
|
setMessages(function (prevMessages) {
|
|
550
554
|
// 1. 删除最新一条 AI 消息
|
|
551
|
-
var lastAIMsgIndex = _toConsumableArray(prevMessages).
|
|
555
|
+
var lastAIMsgIndex = _toConsumableArray(prevMessages).findLastIndex(function (m) {
|
|
552
556
|
return m.role === MessageRole.assistant && m.type === 'TextMessage';
|
|
553
557
|
});
|
|
554
558
|
var newMessages = _toConsumableArray(prevMessages);
|
|
@@ -566,7 +570,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
566
570
|
}
|
|
567
571
|
|
|
568
572
|
// 3. 找到最新一条用户消息,且类型为 TextMessage
|
|
569
|
-
var lastUserMsg = _toConsumableArray(newMessages).
|
|
573
|
+
var lastUserMsg = _toConsumableArray(newMessages).findLast(function (m) {
|
|
570
574
|
return m.role === MessageRole.user && m.type === 'TextMessage';
|
|
571
575
|
});
|
|
572
576
|
if (lastUserMsg && lastUserMsg.content && typeof lastUserMsg.content.text === 'string') {
|