67 lines
1.4 KiB
TypeScript
67 lines
1.4 KiB
TypeScript
![]() |
import type { AxiosProgressEvent, GenericAbortSignal } from 'axios'
|
||
|
import { post } from '@/utils/request'
|
||
|
import { useAuthStore, useSettingStore } from '@/store'
|
||
|
|
||
|
export function fetchChatAPI<T = any>(
|
||
|
prompt: string,
|
||
|
options?: { conversationId?: string; parentMessageId?: string },
|
||
|
signal?: GenericAbortSignal,
|
||
|
) {
|
||
|
return post<T>({
|
||
|
url: '/chat',
|
||
|
data: { prompt, options },
|
||
|
signal,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export function fetchChatConfig<T = any>() {
|
||
|
return post<T>({
|
||
|
url: '/config',
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export function fetchChatAPIProcess<T = any>(
|
||
|
params: {
|
||
|
prompt: string
|
||
|
options?: { conversationId?: string; parentMessageId?: string }
|
||
|
signal?: GenericAbortSignal
|
||
|
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void },
|
||
|
) {
|
||
|
const settingStore = useSettingStore()
|
||
|
const authStore = useAuthStore()
|
||
|
|
||
|
let data: Record<string, any> = {
|
||
|
prompt: params.prompt,
|
||
|
options: params.options,
|
||
|
}
|
||
|
|
||
|
if (authStore.isChatGPTAPI) {
|
||
|
data = {
|
||
|
...data,
|
||
|
systemMessage: settingStore.systemMessage,
|
||
|
temperature: settingStore.temperature,
|
||
|
top_p: settingStore.top_p,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return post<T>({
|
||
|
url: '/chat-process',
|
||
|
data,
|
||
|
signal: params.signal,
|
||
|
onDownloadProgress: params.onDownloadProgress,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export function fetchSession<T>() {
|
||
|
return post<T>({
|
||
|
url: '/session',
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export function fetchVerify<T>(token: string) {
|
||
|
return post<T>({
|
||
|
url: '/verify',
|
||
|
data: { token },
|
||
|
})
|
||
|
}
|