dongyukun
2025-06-03 d29b978732c2907abc41a937de33d71f81ca5b51
src/api/ai/chat/message/index.ts
@@ -2,6 +2,7 @@
import { fetchEventSource } from '@microsoft/fetch-event-source'
import { getAccessToken } from '@/utils/auth'
import { config } from '@/config/axios/config'
import {refreshToken} from "@/api/login";
// 聊天VO
export interface ChatMessageVO {
@@ -13,10 +14,20 @@
  model: number // 模型标志
  modelId: number // 模型编号
  content: string // 聊天内容
  thinking: string // 聊天思考
  thinkingFlag: boolean // 聊天思考
  conclusion: string // 聊天结论
  tokens: number // 消耗 Token 数量
  segmentIds?: number[] // 段落编号
  segments?: {
    id: number // 段落编号
    content: string // 段落内容
    documentId: number // 文档编号
    documentName: string // 文档名称
  }[]
  createTime: Date // 创建时间
  roleAvatar: string // 角色头像
  userAvatar: string // 创建时间
  userAvatar: string // 用户头像
}
// AI chat 聊天
@@ -25,6 +36,13 @@
  getChatMessageListByConversationId: async (conversationId: number | null) => {
    return await request.get({
      url: `/ai/chat/message/list-by-conversation-id?conversationId=${conversationId}`
    })
  },
  // 消息列表【工业大模型专用】
  getEnergyChatMessageListByConversationId: async (conversationId: number | null) => {
    return await request.get({
      url: `/ai/chat/message/energy-list-by-conversation-id?conversationId=${conversationId}`
    })
  },
@@ -58,6 +76,35 @@
      signal: ctrl.signal
    })
  },
  // 发送 Stream 消息 【工业大模型专用】
  // sendEnergyChatMessageStream: async (
  //   conversationId: number,
  //   content: string,
  //   ctrl,
  //   enableContext: boolean,
  //   onMessage,
  //   onError,
  //   onClose
  // ) => {
  //   const token = getAccessToken()
  //   return fetchEventSource(`${config.base_url}/ai/chat/message/send-energy-stream`, {
  //     method: 'post',
  //     headers: {
  //       'Content-Type': 'application/json',
  //       Authorization: `Bearer ${token}`
  //     },
  //     openWhenHidden: true,
  //     body: JSON.stringify({
  //       conversationId,
  //       content,
  //       useContext: enableContext
  //     }),
  //     onmessage: onMessage,
  //     onerror: onError,
  //     onclose: onClose,
  //     signal: ctrl.signal
  //   })
  // },
  // 删除消息
  deleteChatMessage: async (id: string) => {
@@ -71,6 +118,18 @@
    })
  },
  // // 删除消息【工业大模型专用】
  // deleteEnergyChatMessage: async (id: string) => {
  //   return await request.delete({ url: `/ai/chat/message/delete-energy?id=${id}` })
  // },
  // 删除指定对话的消息【工业大模型专用】
  deleteEnergyByConversationId: async (conversationId: number) => {
    return await request.delete({
      url: `/ai/chat/message/delete-energy-by-conversation-id?conversationId=${conversationId}`
    })
  },
  // 获得消息分页
  getChatMessagePage: async (params: any) => {
    return await request.get({ url: '/ai/chat/message/page', params })