import {Result} from '@/request/Result' import {get, post, postStream, del, put, request, download, exportFile} from '@/request/index' import type {pageRequest} from '@/api/type/common' import type {ApplicationFormType} from '@/api/type/application' import {type Ref} from 'vue' const prefix = '/system/resource/application' /** * 获取全部应用 * @param 参数 */ const getAllApplication: (param?: any, loading?: Ref) => Promise> = ( param, loading, ) => { return get(`${prefix}`, param, loading) } /** * 获取分页应用 * param { "name": "string", } */ const getApplication: ( page: pageRequest, param: any, loading?: Ref, ) => Promise> = (page, param, loading) => { return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading) } /** * 创建应用 * @param 参数 */ const postApplication: ( data: ApplicationFormType, loading?: Ref, ) => Promise> = (data, loading) => { return post(`${prefix}`, data, undefined, loading) } /** * 修改应用 * @param 参数 */ const putApplication: ( application_id: string, data: ApplicationFormType, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return put(`${prefix}/${application_id}`, data, undefined, loading) } /** * 删除应用 * @param 参数 application_id */ const delApplication: ( application_id: string, loading?: Ref, ) => Promise> = (application_id, loading) => { return del(`${prefix}/${application_id}`, undefined, {}, loading) } /** * 应用详情 * @param 参数 application_id */ const getApplicationDetail: ( application_id: string, loading?: Ref, ) => Promise> = (application_id, loading) => { return get(`${prefix}/${application_id}`, undefined, loading) } /** * 获取AccessToken * @param 参数 application_id */ const getAccessToken: (application_id: string, loading?: Ref) => Promise> = ( application_id, loading, ) => { return get(`${prefix}/${application_id}/access_token`, undefined, loading) } /** * 获取应用设置 * @param application_id 应用id * @param loading 加载器 * @returns */ const getApplicationSetting: ( application_id: string, loading?: Ref, ) => Promise> = (application_id, loading) => { return get(`${prefix}/${application_id}/setting`, undefined, loading) } /** * 修改AccessToken * @param 参数 application_id * data { * "is_active": true * } */ const putAccessToken: ( application_id: string, data: any, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return put(`${prefix}/${application_id}/access_token`, data, undefined, loading) } /** * 导出应用 */ const exportApplication = ( application_id: string, application_name: string, loading?: Ref, ) => { return exportFile( application_name + '.mk', `${prefix}/${application_id}/export`, undefined, loading, ) } /** * 导入应用 */ const importApplication: (data: any, loading?: Ref) => Promise> = ( data, loading, ) => { return post(`${prefix}/import`, data, undefined, loading) } /** * 统计 * @param 参数 application_id, data */ const getStatistics: ( application_id: string, data: any, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return get(`${prefix}/${application_id}/application_stats`, data, loading) } /** * 打开调试对话id * @param application_id 应用id * @param loading 加载器 * @returns */ const open: (application_id: string, loading?: Ref) => Promise> = ( application_id, loading, ) => { return get(`${prefix}/${application_id}/open`, {}, loading) } /** * 对话 * @param 参数 * chat_id: string * data */ const chat: (chat_id: string, data: any) => Promise = (chat_id, data) => { const prefix = (window.MaxKB?.prefix ? window.MaxKB?.prefix : '/admin') + '/api' return postStream(`${prefix}/chat_message/${chat_id}`, data) } /** * 获取对话用户认证类型 * @param loading 加载器 * @returns */ const getChatUserAuthType: (loading?: Ref) => Promise = (loading) => { return get(`/chat_user/auth/types`, {}, loading) } /** * 获取平台状态 */ const getPlatformStatus: (application_id: string) => Promise> = (application_id) => { return get(`${prefix}/${application_id}/platform/status`) } /** * 更新平台状态 */ const updatePlatformStatus: (application_id: string, data: any) => Promise> = ( application_id, data, ) => { return post(`${prefix}/${application_id}/platform/status`, data) } /** * 获取平台配置 */ const getPlatformConfig: (application_id: string, type: string) => Promise> = ( application_id, type, ) => { return get(`${prefix}/${application_id}/platform/${type}`) } /** * 更新平台配置 */ const updatePlatformConfig: ( application_id: string, type: string, data: any, loading?: Ref, ) => Promise> = (application_id, type, data, loading) => { return post(`${prefix}/${application_id}/platform/${type}`, data, undefined, loading) } /** * 应用发布 * @param application_id * @param loading * @returns */ const publish: ( application_id: string, data: any, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return put(`${prefix}/${application_id}/publish`, data, {}, loading) } /** * * @param application_id * @param data * @param loading * @returns */ const playDemoText: (application_id: string, data: any, loading?: Ref) => Promise = ( application_id, data, loading, ) => { return download( `${prefix}/${application_id}/play_demo_text`, 'post', data, undefined, loading, ) } /** * 文本转语音 */ const postTextToSpeech: ( application_id: String, data: any, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return download( `${prefix}/${application_id}/text_to_speech`, 'post', data, undefined, loading, ) } /** * 语音转文本 */ const speechToText: ( application_id: String, data: any, loading?: Ref, ) => Promise> = (application_id, data, loading) => { return post(`${prefix}/${application_id}/speech_to_text`, data, undefined, loading) } /** * mcp 节点 */ const getMcpTools: (application_id: String, loading?: Ref) => Promise> = ( application_id, loading, ) => { return get(`${prefix}/${application_id}/mcp_tools`, undefined, loading) } export default { getAllApplication, getApplication, postApplication, putApplication, delApplication, getApplicationDetail, getAccessToken, putAccessToken, exportApplication, importApplication, getStatistics, open, chat, getChatUserAuthType, getApplicationSetting, getPlatformStatus, updatePlatformStatus, getPlatformConfig, publish, updatePlatformConfig, playDemoText, postTextToSpeech, speechToText, getMcpTools, }