debug.ts 3.1 KB

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