index.ts 947 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. export const AiMindMapApi = {
  8. generateMindMap: ({
  9. data,
  10. onClose,
  11. onMessage,
  12. onError,
  13. ctrl
  14. }: {
  15. data: AiMindMapGenerateReqVO
  16. onMessage?: (res: any) => void
  17. onError?: (...args: any[]) => void
  18. onClose?: (...args: any[]) => void
  19. ctrl: AbortController
  20. }) => {
  21. const token = getAccessToken()
  22. return fetchEventSource(`${config.base_url}/ai/mind-map/generate-stream`, {
  23. method: 'post',
  24. headers: {
  25. 'Content-Type': 'application/json',
  26. Authorization: `Bearer ${token}`
  27. },
  28. openWhenHidden: true,
  29. body: JSON.stringify(data),
  30. onmessage: onMessage,
  31. onerror: onError,
  32. onclose: onClose,
  33. signal: ctrl.signal
  34. })
  35. }
  36. }