| | |
| | | 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 { |
| | |
| | | model: number // 模型标志 |
| | | modelId: number // 模型编号 |
| | | content: string // 聊天内容 |
| | | thinking: string // 聊天思考 |
| | | thinkingFlag: boolean // 聊天思考 |
| | | conclusion: string // 聊天结论 |
| | | tokens: number // 消耗 Token 数量 |
| | | segmentIds?: number[] // 段落编号 |
| | | segments?: { |
| | |
| | | }) |
| | | }, |
| | | // 发送 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 |
| | | }) |
| | | }, |
| | | // 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) => { |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 删除消息【工业大模型专用】 |
| | | deleteEnergyChatMessage: async (id: string) => { |
| | | return await request.delete({ url: `/ai/chat/message/delete-energy?id=${id}` }) |
| | | }, |
| | | // // 删除消息【工业大模型专用】 |
| | | // deleteEnergyChatMessage: async (id: string) => { |
| | | // return await request.delete({ url: `/ai/chat/message/delete-energy?id=${id}` }) |
| | | // }, |
| | | |
| | | // 删除指定对话的消息【工业大模型专用】 |
| | | deleteEnergyByConversationId: async (conversationId: number) => { |