index.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { getAccessToken } from '@/utils/auth'
  2. import { fetchEventSource } from '@microsoft/fetch-event-source'
  3. import { config } from '@/config/axios/config'
  4. import request from '@/config/axios' // AI 思维导图 VO
  5. // AI 思维导图 VO
  6. export interface MindMapVO {
  7. id: number // 编号
  8. userId: number // 用户编号
  9. prompt: string // 生成内容提示
  10. generatedContent: string // 生成的思维导图内容
  11. platform: string // 平台
  12. model: string // 模型
  13. errorMessage: string // 错误信息
  14. }
  15. // AI 思维导图生成 VO
  16. export interface AiMindMapGenerateReqVO {
  17. prompt: string
  18. }
  19. export const AiMindMapApi = {
  20. generateMindMap: ({
  21. data,
  22. onClose,
  23. onMessage,
  24. onError,
  25. ctrl
  26. }: {
  27. data: AiMindMapGenerateReqVO
  28. onMessage?: (res: any) => void
  29. onError?: (...args: any[]) => void
  30. onClose?: (...args: any[]) => void
  31. ctrl: AbortController
  32. }) => {
  33. const token = getAccessToken()
  34. return fetchEventSource(`${config.base_url}/ai/mind-map/generate-stream`, {
  35. method: 'post',
  36. headers: {
  37. 'Content-Type': 'application/json',
  38. Authorization: `Bearer ${token}`
  39. },
  40. openWhenHidden: true,
  41. body: JSON.stringify(data),
  42. onmessage: onMessage,
  43. onerror: onError,
  44. onclose: onClose,
  45. signal: ctrl.signal
  46. })
  47. },
  48. // 查询思维导图分页
  49. getMindMapPage: async (params: any) => {
  50. return await request.get({ url: `/ai/mind-map/page`, params })
  51. },
  52. // 删除思维导图
  53. deleteMindMap: async (id: number) => {
  54. return await request.delete({ url: `/ai/mind-map/delete?id=` + id })
  55. }
  56. }