| import { get, post, ssePost } from './base' |
| import type { IOnCompleted, IOnData, IOnError, IOnFile, IOnMessageEnd, IOnMessageReplace, IOnThought } from './base' |
| import type { ChatPromptConfig, CompletionPromptConfig } from '@/models/debug' |
| import type { ModelModeType } from '@/types/app' |
| import type { ModelParameterRule } from '@/app/components/header/account-setting/model-provider-page/declarations' |
| export type AutomaticRes = { |
| prompt: string |
| variables: string[] |
| opening_statement: string |
| error?: string |
| } |
| export type CodeGenRes = { |
| code: string |
| language: string[] |
| error?: string |
| } |
|
|
| export const sendChatMessage = async (appId: string, body: Record<string, any>, { onData, onCompleted, onThought, onFile, onError, getAbortController, onMessageEnd, onMessageReplace }: { |
| onData: IOnData |
| onCompleted: IOnCompleted |
| onFile: IOnFile |
| onThought: IOnThought |
| onMessageEnd: IOnMessageEnd |
| onMessageReplace: IOnMessageReplace |
| onError: IOnError |
| getAbortController?: (abortController: AbortController) => void |
| }) => { |
| return ssePost(`apps/${appId}/chat-messages`, { |
| body: { |
| ...body, |
| response_mode: 'streaming', |
| }, |
| }, { onData, onCompleted, onThought, onFile, onError, getAbortController, onMessageEnd, onMessageReplace }) |
| } |
|
|
| export const stopChatMessageResponding = async (appId: string, taskId: string) => { |
| return post(`apps/${appId}/chat-messages/${taskId}/stop`) |
| } |
|
|
| export const sendCompletionMessage = async (appId: string, body: Record<string, any>, { onData, onCompleted, onError, onMessageReplace }: { |
| onData: IOnData |
| onCompleted: IOnCompleted |
| onError: IOnError |
| onMessageReplace: IOnMessageReplace |
| }) => { |
| return ssePost(`apps/${appId}/completion-messages`, { |
| body: { |
| ...body, |
| response_mode: 'streaming', |
| }, |
| }, { onData, onCompleted, onError, onMessageReplace }) |
| } |
|
|
| export const fetchSuggestedQuestions = (appId: string, messageId: string, getAbortController?: any) => { |
| return get( |
| `apps/${appId}/chat-messages/${messageId}/suggested-questions`, |
| {}, |
| { |
| getAbortController, |
| }, |
| ) |
| } |
|
|
| export const fetchConversationMessages = (appId: string, conversation_id: string, getAbortController?: any) => { |
| return get(`apps/${appId}/chat-messages`, { |
| params: { |
| conversation_id, |
| }, |
| }, { |
| getAbortController, |
| }) |
| } |
|
|
| export const generateRule = (body: Record<string, any>) => { |
| return post<AutomaticRes>('/rule-generate', { |
| body, |
| }) |
| } |
| export const generateRuleCode = (body: Record<string, any>) => { |
| return post<CodeGenRes>('/rule-code-generate', { |
| body, |
| }) |
| } |
|
|
| export const fetchModelParams = (providerName: string, modelId: string) => { |
| return get(`workspaces/current/model-providers/${providerName}/models/parameter-rules`, { |
| params: { |
| model: modelId, |
| }, |
| }) as Promise<{ data: ModelParameterRule[] }> |
| } |
|
|
| export const fetchPromptTemplate = ({ |
| appMode, |
| mode, |
| modelName, |
| hasSetDataSet, |
| }: { appMode: string; mode: ModelModeType; modelName: string; hasSetDataSet: boolean }) => { |
| return get<Promise<{ chat_prompt_config: ChatPromptConfig; completion_prompt_config: CompletionPromptConfig; stop: [] }>>('/app/prompt-templates', { |
| params: { |
| app_mode: appMode, |
| model_mode: mode, |
| model_name: modelName, |
| has_context: hasSetDataSet, |
| }, |
| }) |
| } |
|
|
| export const fetchTextGenerationMessage = ({ |
| appId, |
| messageId, |
| }: { appId: string; messageId: string }) => { |
| return get<Promise<any>>(`/apps/${appId}/messages/${messageId}`) |
| } |
|
|