share.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import type { IOnCompleted, IOnData, IOnError } from './base'
  2. import { getPublic as get, postPublic as post, ssePost, delPublic as del } from './base'
  3. import type { Feedbacktype } from '@/app/components/app/chat'
  4. export const sendChatMessage = async (body: Record<string, any>, { onData, onCompleted, onError, getAbortController }: {
  5. onData: IOnData
  6. onCompleted: IOnCompleted
  7. onError: IOnError,
  8. getAbortController?: (abortController: AbortController) => void
  9. }) => {
  10. return ssePost('chat-messages', {
  11. body: {
  12. ...body,
  13. response_mode: 'streaming',
  14. },
  15. }, { onData, onCompleted, isPublicAPI: true, onError, getAbortController })
  16. }
  17. export const sendCompletionMessage = async (body: Record<string, any>, { onData, onCompleted, onError }: {
  18. onData: IOnData
  19. onCompleted: IOnCompleted
  20. onError: IOnError
  21. }) => {
  22. return ssePost('completion-messages', {
  23. body: {
  24. ...body,
  25. response_mode: 'streaming',
  26. },
  27. }, { onData, onCompleted, isPublicAPI: true, onError })
  28. }
  29. export const fetchAppInfo = async () => {
  30. return get('/site')
  31. }
  32. export const fetchConversations = async () => {
  33. return get('conversations', { params: { limit: 20, first_id: '' } })
  34. }
  35. export const fetchChatList = async (conversationId: string) => {
  36. return get('messages', { params: { conversation_id: conversationId, limit: 20, last_id: '' } })
  37. }
  38. // Abandoned API interface
  39. // export const fetchAppVariables = async () => {
  40. // return get(`variables`)
  41. // }
  42. // init value. wait for server update
  43. export const fetchAppParams = async () => {
  44. return get('parameters')
  45. }
  46. export const updateFeedback = async ({ url, body }: { url: string; body: Feedbacktype }) => {
  47. return post(url, { body })
  48. }
  49. export const fetcMoreLikeThis = async (messageId: string) => {
  50. return get(`/messages/${messageId}/more-like-this`, {
  51. params: {
  52. response_mode: 'blocking',
  53. }
  54. })
  55. }
  56. export const saveMessage = (messageId: string) => {
  57. return post('/saved-messages', { body: { message_id: messageId } })
  58. }
  59. export const fetchSavedMessage = async () => {
  60. return get(`/saved-messages`)
  61. }
  62. export const removeMessage = (messageId: string) => {
  63. return del(`/saved-messages/${messageId}`)
  64. }
  65. export const fetchSuggestedQuestions = (messageId: string) => {
  66. return get(`/messages/${messageId}/suggested-questions`)
  67. }