Files
frontend/apps/web-ele/src/api/ai/mindmap/index.ts

66 lines
1.7 KiB
TypeScript

import { useAppConfig } from '@vben/hooks';
import { fetchEventSource } from '@vben/request';
import { useAccessStore } from '@vben/stores';
import { requestClient } from '#/api/request';
const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
const accessStore = useAccessStore();
export namespace AiMindmapApi {
// AI 思维导图
export interface MindMap {
id: number; // 编号
userId: number; // 用户编号
prompt: string; // 生成内容提示
generatedContent: string; // 生成的思维导图内容
platform: string; // 平台
model: string; // 模型
errorMessage: string; // 错误信息
}
// AI 思维导图生成
export interface AiMindMapGenerateReqVO {
prompt: string;
}
}
export function generateMindMap({
data,
onClose,
onMessage,
onError,
ctrl,
}: {
ctrl: AbortController;
data: AiMindmapApi.AiMindMapGenerateReqVO;
onClose?: (...args: any[]) => void;
onError?: (...args: any[]) => void;
onMessage?: (res: any) => void;
}) {
const token = accessStore.accessToken;
return fetchEventSource(`${apiURL}/ai/mind-map/generate-stream`, {
method: 'post',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
openWhenHidden: true,
body: JSON.stringify(data),
onmessage: onMessage,
onerror: onError,
onclose: onClose,
signal: ctrl.signal,
});
}
/** 查询思维导图分页 */
export function getMindMapPage(params: any) {
return requestClient.get(`/ai/mind-map/page`, { params });
}
/** 删除思维导图 */
export function deleteMindMap(id: number) {
return requestClient.delete(`/ai/mind-map/delete?id=${id}`);
}