Kaynağa Gözat

feat: 将ai聊天输入内容也转换为markdown格式

zhouyuhao 6 ay önce
ebeveyn
işleme
0ae4bd1e62
1 değiştirilmiş dosya ile 9 ekleme ve 6 silme
  1. 9 6
      src/views/AIRobotChat/src/AIRobotChat.vue

+ 9 - 6
src/views/AIRobotChat/src/AIRobotChat.vue

@@ -18,7 +18,11 @@ const md = new MarkdownIt({
 })
 
 const renderedMessage = (content) => {
-  return md.render(content)
+  const normalized = content
+    .replace(/\\n/g, '\n') // 粘贴带来的 \\n 处理
+    .replace(/\r\n/g, '\n') // Windows 换行标准化
+    .trim()
+  return md.render(normalized)
 }
 
 const themeStore = useThemeStore()
@@ -179,9 +183,7 @@ function scrollToBottom() {
 
 const simulateStreamingMarkdown = () => {
   loadingAnswer.value = true
-  const chunks: any = [
-    '以下是查询结果:\n\n1. **总HBOL数量**: 176\n\n2. **前10票HBOL信息**:\n\n| HBOL | MBOL | 运输方式 | 服务类型 | 发货人 | 收货人 | 数量 | 总重量 | 状态 | ETD | ETA |\n|------|------|---------|---------|-------|-------|-----|-------|------|-----|-----|\n| A1404390326 | UASUCNSHA344562 | sea | CY/CY | CHANGZHOU DAYA IMPORT & EXPORT CORP.LTD. | BEATRICE HOME FASHIONS INC | 1250 | 5625.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390326 | UASUCNSHA344562 | sea | CY/CY | CHANGZHOU DAYA IMPORT & EXPORT CORP.LTD. | BEATRICE HOME FASHIONS INC | 1250 | 5625.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390326 | UASUCNSHA344562 | sea | CY/CY | CHANGZHOU DAYA IMPORT & EXPORT CORP.LTD. | BEATRICE HOME FASHIONS INC | 1250 | 5625.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390326 | UASUCNSHA344562 | sea | CY/CY | CHANGZHOU DAYA IMPORT & EXPORT CORP.LTD. | BEATRICE HOME FASHIONS INC | 1250 | 5625.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390659 | UASUCNSHA344365 | sea | CY/CY | BC INDUSTRIES LIMITED | MORRIS ROTHENBERG AND SON INC | 563 | 7236.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390659 | UASUCNSHA344365 | sea | CY/CY | BC INDUSTRIES LIMITED | MORRIS ROTHENBERG AND SON INC | 563 | 7236.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390659 | UASUCNSHA344365 | sea | CY/CY | BC INDUSTRIES LIMITED | MORRIS ROTHENBERG AND SON INC | 563 | 7236.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390659 | UASUCNSHA344365 | sea | CY/CY | BC INDUSTRIES LIMITED | MORRIS ROTHENBERG AND SON INC | 563 | 7236.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390660 | UASUCNSHA344363 | sea | CY/CY | NANTONG YUANYANG LEISURE PRODUCTS CO.,LTD. | FACTORY DIRECT WHOLESALE,LLC | 730 | 13812.000 | Created | 2014-05-02 | 2016-12-12 |\n| A1404390660 | UASUCNSHA344363 | sea | CY/CY | NANTONG YUANYANG LEISURE PRODUCTS CO.,LTD. | FACTORY DIRECT WHOLESALE,LLC | 730 | 13812.000 | Created | 2014-05-02 | 2016-12-12 |\n'
-  ]
+  const chunks: any = [userQuestion.value]
 
   messages.value.push({
     type: 'robot',
@@ -207,6 +209,7 @@ const simulateStreamingMarkdown = () => {
       }
     } else {
       clearInterval(interval)
+      userQuestion.value = ''
     }
   }, 200) // 每500ms追加一段
 }
@@ -286,8 +289,8 @@ defineExpose({
           src="./image/icon_loading.png"
           alt=""
         />
-        <span v-if="!msg.isAnswer">{{ msg.content }}</span>
-        <div v-else>
+        <!-- <span v-if="!msg.isAnswer">{{ msg.content }}</span> -->
+        <div>
           <div v-html="renderedMessage(msg.content)" class="markdown-body"></div>
           <LoadingDots
             v-if="index === messages.length - 1 && msg.isAnswer && loadingAnswer"