index.ts 950 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { getAccessToken } from '@/utils/auth'
  2. import { fetchEventSource } from '@microsoft/fetch-event-source'
  3. import { config } from '@/config/axios/config'
  4. export interface AiMindMapGenerateReqVO {
  5. prompt: string
  6. }
  7. //
  8. export const AiMindMapApi = {
  9. generateMindMap: ({
  10. data,
  11. onClose,
  12. onMessage,
  13. onError,
  14. ctrl
  15. }: {
  16. data: AiMindMapGenerateReqVO
  17. onMessage?: (res: any) => void
  18. onError?: (...args: any[]) => void
  19. onClose?: (...args: any[]) => void
  20. ctrl: AbortController
  21. }) => {
  22. const token = getAccessToken()
  23. return fetchEventSource(`${config.base_url}/ai/mind-map/generate-stream`, {
  24. method: 'post',
  25. headers: {
  26. 'Content-Type': 'application/json',
  27. Authorization: `Bearer ${token}`
  28. },
  29. openWhenHidden: true,
  30. body: JSON.stringify(data),
  31. onmessage: onMessage,
  32. onerror: onError,
  33. onclose: onClose,
  34. signal: ctrl.signal
  35. })
  36. }
  37. }