debug.ts 3.2 KB

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