debug.ts 3.2 KB

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