Parcourir la source

【新增】AI:新建对话时,不使用默认角色

YunaiV il y a 1 an
Parent
commit
ca40047f0b
1 fichiers modifiés avec 22 ajouts et 5 suppressions
  1. 22 5
      src/views/ai/chat/index.vue

+ 22 - 5
src/views/ai/chat/index.vue

@@ -36,10 +36,11 @@
           <div class="message-container" >
             <MessageLoading v-if="listLoading" />
             <MessageNewChat v-if="!activeConversation" @on-new-chat="handlerNewChat" />
-            <ChatEmpty v-if="!listLoading && list.length === 0 && activeConversation" @on-prompt="doSend"/>
-            <Message v-if="!listLoading && list.length > 0"
+            <ChatEmpty v-if="!listLoading && messageList.length === 0 && activeConversation" @on-prompt="doSend"/>
+            <Message v-if="!listLoading && messageList.length > 0"
                      ref="messageRef"
-                     :list="list"
+                     :conversation="activeConversation"
+                     :list="messageList"
                      @on-delete-success="handlerMessageDelete"
                      @on-edit="handlerMessageEdit"
                      @on-refresh="handlerMessageRefresh"/>
@@ -102,14 +103,13 @@ import MessageLoading from './MessageLoading.vue'
 import MessageNewChat from './MessageNewChat.vue'
 import {ChatMessageApi, ChatMessageVO} from '@/api/ai/chat/message'
 import {ChatConversationApi, ChatConversationVO} from '@/api/ai/chat/conversation'
-import {getUserProfile, ProfileVO} from '@/api/system/user/profile'
+import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 import {useClipboard} from '@vueuse/core'
 import ChatConversationUpdateForm from "@/views/ai/chat/components/ChatConversationUpdateForm.vue";
 import {Download, Top} from "@element-plus/icons-vue";
 
 const route = useRoute() // 路由
 const message = useMessage() // 消息弹窗
-const {copy} = useClipboard() // 初始化 copy 到粘贴板
 
 // ref 属性定义
 const activeConversationId = ref<string | null>(null) // 选中的对话编号
@@ -396,6 +396,23 @@ const stopStream = async () => {
 
 // ============== message 数据 =================
 
+/** 消息列表 */
+const messageList = computed(() => {
+  if (list.value.length > 0) {
+    return list.value
+  }
+  // 没有消息时,如果有 systemMessage 则展示它
+  // TODO add by 芋艿:这个消息下面,不能有复制、删除按钮
+  if (activeConversation.value?.systemMessage) {
+    return [{
+      id: 0,
+      type: 'system',
+      content: activeConversation.value.systemMessage
+    }]
+  }
+  return []
+})
+
 /**
  * 获取 - message 列表
  */