debug.ts 3.0 KB

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