debug.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import type { IOnCompleted, IOnData, IOnError, IOnMessageEnd } from './base'
  2. import { get, post, ssePost } from './base'
  3. import type { ChatPromptConfig, CompletionPromptConfig } from '@/models/debug'
  4. import type { ModelModeType } from '@/types/app'
  5. export type AutomaticRes = {
  6. prompt: string
  7. variables: string[]
  8. opening_statement: string
  9. }
  10. export const sendChatMessage = async (appId: string, body: Record<string, any>, { onData, onCompleted, onError, getAbortController, onMessageEnd }: {
  11. onData: IOnData
  12. onCompleted: IOnCompleted
  13. onMessageEnd: IOnMessageEnd
  14. onError: IOnError
  15. getAbortController?: (abortController: AbortController) => void
  16. }) => {
  17. return ssePost(`apps/${appId}/chat-messages`, {
  18. body: {
  19. ...body,
  20. response_mode: 'streaming',
  21. },
  22. }, { onData, onCompleted, onError, getAbortController, onMessageEnd })
  23. }
  24. export const stopChatMessageResponding = async (appId: string, taskId: string) => {
  25. return post(`apps/${appId}/chat-messages/${taskId}/stop`)
  26. }
  27. export const sendCompletionMessage = async (appId: string, body: Record<string, any>, { onData, onCompleted, onError }: {
  28. onData: IOnData
  29. onCompleted: IOnCompleted
  30. onError: IOnError
  31. }) => {
  32. return ssePost(`apps/${appId}/completion-messages`, {
  33. body: {
  34. ...body,
  35. response_mode: 'streaming',
  36. },
  37. }, { onData, onCompleted, onError })
  38. }
  39. export const fetchSuggestedQuestions = (appId: string, messageId: string) => {
  40. return get(`apps/${appId}/chat-messages/${messageId}/suggested-questions`)
  41. }
  42. export const fetchConvesationMessages = (appId: string, conversation_id: string) => {
  43. return get(`apps/${appId}/chat-messages`, {
  44. params: {
  45. conversation_id,
  46. },
  47. })
  48. }
  49. export const generateRule = (body: Record<string, any>) => {
  50. return post<AutomaticRes>('/rule-generate', {
  51. body,
  52. })
  53. }
  54. export const fetchModelParams = (providerName: string, modelId: string) => {
  55. return get(`workspaces/current/model-providers/${providerName}/models/parameter-rules`, {
  56. params: {
  57. model_name: modelId,
  58. },
  59. })
  60. }
  61. export const fetchPromptTemplate = ({
  62. appMode,
  63. mode,
  64. modelName,
  65. hasSetDataSet,
  66. }: { appMode: string; mode: ModelModeType; modelName: string; hasSetDataSet: boolean }) => {
  67. return get<Promise<{ chat_prompt_config: ChatPromptConfig; completion_prompt_config: CompletionPromptConfig; stop: [] }>>('/app/prompt-templates', {
  68. params: {
  69. app_mode: appMode,
  70. model_mode: mode,
  71. model_name: modelName,
  72. has_context: hasSetDataSet,
  73. },
  74. })
  75. }
  76. export const fetchTextGenerationMessge = ({
  77. appId,
  78. messageId,
  79. }: { appId: string; messageId: string }) => {
  80. return get<Promise<{ message: [] }>>(`/apps/${appId}/messages/${messageId}`)
  81. }