import { defHttp } from '@/utils/axios/index' import type { MenuTypeEnum } from '@/enums/menuEnum' import type { ModelTypeEnum } from '@/enums/messageEnum' /** * @description 新建会话 */ export async function addMessage(data: { type: MenuTypeEnum title: string sort: number roleId?: string modelType: ModelTypeEnum }) { return defHttp.post({ url: `/open-chat/chat/conversation/save`, data, }) } /** * @description 编辑会话名称 */ export async function updateMessage(data: any) { return defHttp.post({ url: `/open-chat/chat/conversation/update`, data, }) } /** * @description 根据id删除会话 */ export async function removeMessage(ids: string) { return defHttp.post({ url: `/open-chat/chat/conversation/remove?ids=${ids}`, }) } /** * @description 对话列表 */ export async function conversationList(type: number) { return defHttp.get({ url: `/open-chat/chat/conversation/list?type=${type}`, }) } /** * @description 对话列表置顶 */ export async function conversationToTop(conversationId: string) { return defHttp.post({ url: `/open-chat/chat/conversation/top?id=${conversationId}`, }) } /** * @description 对话历史记录 */ export async function historyMessage(params: { conversationId: string current: number size: number }) { return defHttp.get({ url: `/open-chat/chat/chatMessageLog/page`, params, }) } /** * @description 停止对话 */ export async function stopMessage(data: { conversationId: string }) { return defHttp.post({ url: `/open-chat/chat/stopGenerate`, data, }) } /** * @description 发送消息(文生文)要带modelType,区分gpt3.5和gpt4 */ export async function sendTextToText(data: { conversationId: string question: string modelType: ModelTypeEnum roleId?: number }) { return defHttp.post({ url: `/open-chat/chat/session`, data, timeout: 120 * 1000, }) } /** * @description 发送消息(文生图)不需要带modelType */ export async function sendTextToImage(data: { conversationId: string question: string }) { return defHttp.post({ url: `/open-gpts/gpts/getDallEImages`, data, timeout: 120 * 1000, }) } /** * @description 发送消息(知识库) */ export async function sendRepository(data: { conversationId: string question: string }) { return defHttp.post({ url: `/open-gpts/gpts/getQanythingStreamChat`, data, timeout: 120 * 1000, }) } /** * @description 发送消息(图像分析)不需要带modelType */ export async function sendVisualAnalysis(data: { conversationId: string question: string fileUrl: string }) { return defHttp.post({ url: `/open-gpts/gpts/getImageVision`, data, timeout: 120 * 1000, }) } /** * @description 获取chat信息 */ export async function chatInfo() { return defHttp.get({ url: `/open-chat/chat/ai/getWxUserInfo`, }) }