From ebd593bf92cca0162599fe9521e692d59df6b81b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 15 May 2024 08:59:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91AI=EF=BC=9A?= =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=AF=B9=E8=AF=9D=E7=9A=84=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ai/chat/conversation/index.ts | 16 +++------------- src/views/ai/chat/index.vue | 24 ++++++++++++++++++++---- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/api/ai/chat/conversation/index.ts b/src/api/ai/chat/conversation/index.ts index 8469f072..f0921e83 100644 --- a/src/api/ai/chat/conversation/index.ts +++ b/src/api/ai/chat/conversation/index.ts @@ -18,25 +18,15 @@ export interface ChatConversationVO { modelMaxContexts?: string // 模型的上下文的最大 Message 数量 } -export interface ChatConversationUpdateVO { - id: string // 会话编号 - title: string // 会话标题 - pinned: string // 是否置顶 - modelId: number // 模型编号 - temperature: string // 温度参数 - maxTokens: string // 单条回复的最大 Token 数量 - maxContexts: string // 上下文的最大 Message 数量 -} - // AI 聊天会话 API export const ChatConversationApi = { // 获取 Conversation get: async (id: string) => { - return await request.get({ url: `/ai/chat/conversation/get?id=${id}`}) + return await request.get({ url: `/ai/chat/conversation/get?id=${id}` }) }, // 更新 Conversation - update: async (data: ChatConversationUpdateVO) => { - return await request.put({ url: `/ai/chat/conversation/update`, data}) + updateConversationMy: async (data: ChatConversationVO) => { + return await request.put({ url: `/ai/chat/conversation/update-my`, data }) }, // 新增【我的】聊天会话 diff --git a/src/views/ai/chat/index.vue b/src/views/ai/chat/index.vue index 8046e108..306b031a 100644 --- a/src/views/ai/chat/index.vue +++ b/src/views/ai/chat/index.vue @@ -203,6 +203,9 @@ import { marked } from 'marked' import 'highlight.js/styles/vs2015.min.css' import hljs from 'highlight.js' +const { t } = useI18n() // 国际化 +const message = useMessage() // 消息弹窗 + // 自定义渲染器 const renderer = { code(code, language, c) { @@ -256,9 +259,22 @@ const changeConversation = (id: number) => { // TODO 芋艿:待实现 } -const updateConversationTitle = (conversation) => { - console.log(conversation) - // TODO 芋艿:待实现 +/** 更新聊天会话的标题 */ +const updateConversationTitle = async (conversation: ChatConversationVO) => { + // 二次确认 + const { value } = await ElMessageBox.prompt('修改标题', { + inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格 + inputErrorMessage: '标题不能为空', + inputValue: conversation.title + }) + // 发起修改 + await ChatConversationApi.updateConversationMy({ + id: conversation.id, + title: value + } as ChatConversationVO) + message.success('修改标题成功') + // 刷新列表 + await getChatConversationList() } const deleteConversationTitle = (conversation) => { @@ -445,7 +461,7 @@ const modalClick = async (command) => { // 切换 modal useModal.value = command // 更新 - await ChatConversationApi.update(update) + await ChatConversationApi.updateConversationMy(update) } const getModalList = async () => {