|
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}`) |
|
} |
|
|