feat: Add base project structure with API and web components
This commit is contained in:
112
web/src/api/application.ts
Normal file
112
web/src/api/application.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type { Application } from '@/views/ApplicationManagement/types'
|
||||
import type { Config } from '@/views/ApplicationConfig/types'
|
||||
import { handleSSE } from '@/utils/stream'
|
||||
|
||||
// 应用列表
|
||||
export const getApplicationListUrl = '/apps'
|
||||
export const getApplicationList = (data: Record<string, unknown>) => {
|
||||
return request.get(getApplicationListUrl, data)
|
||||
}
|
||||
// 获取应用配置
|
||||
export const getApplicationConfig = (id: string) => {
|
||||
return request.get(`/apps/${id}/config`)
|
||||
}
|
||||
// 获取集群应配置
|
||||
export const getMultiAgentConfig = (id: string) => {
|
||||
return request.get(`/apps/${id}/multi-agent`)
|
||||
}
|
||||
// 应用详情
|
||||
export const getApplication = (id: string) => {
|
||||
return request.get(`/apps/${id}`)
|
||||
}
|
||||
// 更新应用
|
||||
export const updateApplication = (id: string, values: Application) => {
|
||||
return request.put(`/apps/${id}`, values)
|
||||
}
|
||||
// 创建应用
|
||||
export const addApplication = (values: Application) => {
|
||||
return request.post('/apps', values)
|
||||
}
|
||||
// 保存Agent配置
|
||||
export const saveAgentConfig = (app_id: string, values: Config) => {
|
||||
return request.put(`/apps/${app_id}/config`, values)
|
||||
}
|
||||
// 保存集群配置
|
||||
export const saveMultiAgentConfig = (app_id: string, values: Config) => {
|
||||
return request.put(`/apps/${app_id}/multi-agent`, values)
|
||||
}
|
||||
// 模型比对试运行
|
||||
export const runCompare = (app_id: string, values: Record<string, unknown>, onMessage?: (data: string) => void) => {
|
||||
return handleSSE(`/apps/${app_id}/draft/run/compare`, values, onMessage)
|
||||
}
|
||||
export const draftRun = (app_id: string, values: Record<string, unknown>, onMessage?: (data: string) => void) => {
|
||||
return handleSSE(`/apps/${app_id}/draft/run`, values, onMessage)
|
||||
}
|
||||
// 删除应用
|
||||
export const deleteApplication = (app_id: string) => {
|
||||
return request.delete(`/apps/${app_id}`)
|
||||
}
|
||||
// 发布版本列表
|
||||
export const getReleaseList = (app_id: string) => {
|
||||
return request.get(`/apps/${app_id}/releases`)
|
||||
}
|
||||
// 发布版本
|
||||
export const publishRelease = (app_id: string, values: Record<string, unknown>) => {
|
||||
return request.post(`/apps/${app_id}/publish`, values)
|
||||
}
|
||||
// 回滚版本
|
||||
export const rollbackRelease = (app_id: string, version: string) => {
|
||||
return request.post(`/apps/${app_id}/rollback/${version}`)
|
||||
}
|
||||
// 发布版本分享
|
||||
export const shareRelease = (app_id: string, release_id: string) => {
|
||||
return request.post(`/apps/${app_id}/releases/${release_id}/share`, {
|
||||
"is_enabled": true,
|
||||
"require_password": false,
|
||||
"allow_embed": true
|
||||
})
|
||||
}
|
||||
// 获取体验对话历史
|
||||
export const getConversationHistory = (share_token: string, data: { page: number; pagesize: number }) => {
|
||||
return request.get(`/public/share/conversations`, data, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${localStorage.getItem(`shareToken_${share_token}`)}`
|
||||
}
|
||||
})
|
||||
}
|
||||
// 发送体验对话
|
||||
export const sendConversation = (share_token: string, values: {
|
||||
message: string;
|
||||
web_search: boolean;
|
||||
memory: boolean;
|
||||
stream: boolean;
|
||||
conversation_id: string | null;
|
||||
}, onMessage, shareToken: string) => {
|
||||
// return request.post(`/public/share/chat`, values, {
|
||||
// headers: {
|
||||
// 'Authorization': `Bearer ${localStorage.getItem(`shareToken_${share_token}`)}`
|
||||
// }
|
||||
// })
|
||||
return handleSSE(`/public/share/chat`, values, onMessage, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${shareToken}`
|
||||
}
|
||||
})
|
||||
}
|
||||
// 获取体验会话详情
|
||||
export const getConversationDetail = (share_token: string, conversation_id: string) => {
|
||||
return request.get(`/public/share/conversations/${conversation_id}`, {}, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${localStorage.getItem(`shareToken_${share_token}`)}`
|
||||
}
|
||||
})
|
||||
}
|
||||
// 获取体验对话token
|
||||
export const getShareToken = (share_token: string, user_id: string) => {
|
||||
return request.post(`/public/share/${share_token}/token`, { user_id })
|
||||
}
|
||||
// 复制应用
|
||||
export const copyApplication = (app_id: string, new_name: string) => {
|
||||
return request.post(`/apps/${app_id}/copy?new_name=${new_name}`)
|
||||
}
|
||||
20
web/src/api/member.ts
Normal file
20
web/src/api/member.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { request } from '@/utils/request'
|
||||
|
||||
// 成员列表
|
||||
export const memberListUrl = '/workspaces/members'
|
||||
// 邀请成员
|
||||
export const inviteMember = (values: { email: string }) => {
|
||||
return request.post(`/workspaces/invites`, values)
|
||||
}
|
||||
// 删除成员
|
||||
export const deleteMember = (id: string) => {
|
||||
return request.delete(`/workspaces/members/${id}`)
|
||||
}
|
||||
// 更新成员
|
||||
export const updateMember = (values: { id: string, role: string }) => {
|
||||
return request.put(`/workspaces/members`, [values])
|
||||
}
|
||||
// 验证邀请token
|
||||
export const validateInviteToken = (token: string) => {
|
||||
return request.get(`/workspaces/invites/validate/${token}`)
|
||||
}
|
||||
145
web/src/api/memory.ts
Normal file
145
web/src/api/memory.ts
Normal file
@@ -0,0 +1,145 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type {
|
||||
MemoryFormData,
|
||||
} from '@/views/MemoryManagement/types'
|
||||
import type {
|
||||
ConfigForm as ForgetConfigForm
|
||||
} from '@/views/ForgettingEngine/types'
|
||||
import type {
|
||||
ConfigForm as ExtractionConfigForm
|
||||
} from '@/views/MemoryExtractionEngine/types'
|
||||
import type { TestParams } from '@/views/MemoryConversation'
|
||||
|
||||
// 记忆对话
|
||||
export const readService = (query: TestParams) => {
|
||||
return request.post('/memory/read_service', query)
|
||||
}
|
||||
/****************** 记忆看板 相关接口 *******************************/
|
||||
// 记忆看板-记忆总量
|
||||
export const getTotalMemoryCount = () => {
|
||||
return request.get(`/dashboard/total_memory_count`)
|
||||
}
|
||||
// 记忆看板-知识库类型分布
|
||||
export const getKbTypes = () => {
|
||||
return request.get(`/memory/stats/types`)
|
||||
}
|
||||
// 记忆看板-热门记忆标签
|
||||
export const getHotMemoryTags = () => {
|
||||
return request.get(`/memory-storage/analytics/hot_memory_tags`)
|
||||
}
|
||||
// 记忆看板-最近活动统计
|
||||
export const getRecentActivityStats = () => {
|
||||
return request.get(`/memory-storage/analytics/recent_activity_stats`)
|
||||
}
|
||||
// 记忆看板-记忆增长趋势
|
||||
export const getMemoryIncrement = (limit: number) => {
|
||||
return request.get(`/dashboard/memory_increment`, { limit })
|
||||
}
|
||||
// 记忆看板-API调用趋势
|
||||
export const getApiTrend = () => {
|
||||
return request.get(`/dashboard/api_increment`)
|
||||
}
|
||||
// 记忆看板-总数据
|
||||
export const getDashboardData = () => {
|
||||
return request.get(`/dashboard/dashboard_data`)
|
||||
}
|
||||
/*************** end 记忆看板 相关接口 ******************************/
|
||||
|
||||
|
||||
/****************** 用户记忆 相关接口 *******************************/
|
||||
export const userMemoryListUrl = '/dashboard/end_users'
|
||||
export const getUserMemoryList = () => {
|
||||
return request.get(userMemoryListUrl)
|
||||
}
|
||||
// 用户记忆-用户记忆总量
|
||||
export const getTotalEndUsers = () => {
|
||||
return request.get(`/dashboard/total_end_users`)
|
||||
}
|
||||
// 用户记忆-用户详情
|
||||
export const getUserProfile = (end_user_id: string) => {
|
||||
return request.get(`/memory/analytics/user_profile`, { end_user_id })
|
||||
}
|
||||
// 用户记忆-记忆洞察
|
||||
export const getMemoryInsightReport = (end_user_id: string) => {
|
||||
return request.get(`/memory-storage/analytics/memory_insight/report`, { end_user_id })
|
||||
}
|
||||
// 用户记忆-用户摘要
|
||||
export const getUserSummary = (end_user_id: string) => {
|
||||
return request.get(`/memory-storage/analytics/user_summary`, { end_user_id })
|
||||
}
|
||||
// 用户记忆-关系网络
|
||||
export const getMemorySearchEdges = (end_user_id: string) => {
|
||||
return request.get(`/memory-storage/search/entity_graph`, { end_user_id })
|
||||
}
|
||||
// 用户记忆-用户兴趣分布
|
||||
export const getHotMemoryTagsByUser = (end_user_id: string) => {
|
||||
return request.get(`/memory/analytics/hot_memory_tags/by_user`, { end_user_id })
|
||||
}
|
||||
// 用户记忆-记忆总量
|
||||
export const getTotalMemoryCountByUser = (end_user_id: string) => {
|
||||
return request.get(`/memory-storage/search`, { end_user_id })
|
||||
}
|
||||
// RAG 用户记忆-记忆总量
|
||||
export const getTotalRagMemoryCountByUser = (end_user_id: string) => {
|
||||
return request.get(`/dashboard/current_user_rag_total_num`, { end_user_id })
|
||||
}
|
||||
// RAG 用户记忆-用户摘要
|
||||
export const getChunkSummaryTag = (end_user_id: string) => {
|
||||
return request.get(`/dashboard/chunk_summary_tag`, { end_user_id })
|
||||
}
|
||||
// RAG 用户记忆-记忆洞察
|
||||
export const getChunkInsight = (end_user_id: string) => {
|
||||
return request.get(`/dashboard/chunk_insight`, { end_user_id })
|
||||
}
|
||||
// RAG 用户记忆-存储内容
|
||||
export const getRagContent = (end_user_id: string) => {
|
||||
return request.get(`/dashboard/rag_content`, { end_user_id, limit: 20 })
|
||||
}
|
||||
/*************** end 用户记忆 相关接口 ******************************/
|
||||
|
||||
/****************** 记忆管理 相关接口 *******************************/
|
||||
// 记忆管理-获取所有配置
|
||||
export const memoryConfigListUrl = '/memory-storage/read_all_config'
|
||||
export const getMemoryConfigList = () => {
|
||||
return request.get(memoryConfigListUrl)
|
||||
}
|
||||
// 记忆管理-创建配置
|
||||
export const createMemoryConfig = (values: MemoryFormData) => {
|
||||
return request.post('/memory-storage/create_config', values)
|
||||
}
|
||||
// 记忆管理-更新配置
|
||||
export const updateMemoryConfig = (values: MemoryFormData) => {
|
||||
return request.post('/memory-storage/update_config', values)
|
||||
}
|
||||
// 记忆管理-删除配置
|
||||
export const deleteMemoryConfig = (config_id: number) => {
|
||||
return request.delete(`/memory-storage/delete_config?config_id=${config_id}`)
|
||||
}
|
||||
// 遗忘引擎-获取配置
|
||||
export const getMemoryForgetConfig = (config_id: number | string) => {
|
||||
return request.get('/memory-storage/read_config_forget', { config_id })
|
||||
}
|
||||
// 遗忘引擎-更新配置
|
||||
export const updateMemoryForgetConfig = (values: ForgetConfigForm) => {
|
||||
return request.post('/memory-storage/update_config_forget', values)
|
||||
}
|
||||
// 记忆萃取引擎-获取配置
|
||||
export const getMemoryExtractionConfig = (config_id: number | string) => {
|
||||
return request.get('/memory-storage/read_config_extracted', { config_id: config_id })
|
||||
}
|
||||
// 记忆萃取引擎-更新配置
|
||||
export const updateMemoryExtractionConfig = (values: ExtractionConfigForm) => {
|
||||
return request.post('/memory-storage/update_config_extracted', values)
|
||||
}
|
||||
// 记忆萃取引擎-试运行
|
||||
export const pilotRunMemoryExtractionConfig = (values: { config_id: number | string; dialogue_text: string }) => {
|
||||
return request.post('/memory-storage/pilot_run', values)
|
||||
}
|
||||
/*************** end 记忆管理 相关接口 ******************************/
|
||||
|
||||
|
||||
/****************** API参数 相关接口 *******************************/
|
||||
export const getMemoryApi = () => {
|
||||
return request.get('/memory/docs/api')
|
||||
}
|
||||
/*************** end API参数 相关接口 ******************************/
|
||||
23
web/src/api/models.ts
Normal file
23
web/src/api/models.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type { ModelFormData } from '@/views/ModelManagement/types'
|
||||
|
||||
// 模型列表
|
||||
export const getModelListUrl = '/models'
|
||||
export const getModelList = (data: { type: string; pagesize: number; page: number; }) => {
|
||||
return request.get(getModelListUrl, data)
|
||||
}
|
||||
// 创建模型
|
||||
export const addModel = (data: ModelFormData) => {
|
||||
return request.post('/models', data)
|
||||
}
|
||||
// 更新模型
|
||||
export const updateModel = (apiKeyId: string, data: ModelFormData) => {
|
||||
return request.put(`/models/apikeys/${apiKeyId}`, data)
|
||||
}
|
||||
// 模型类型列表
|
||||
export const modelTypeUrl = '/models/type'
|
||||
// 模型供应商列表
|
||||
export const modelProviderUrl = '/models/provider'
|
||||
export const getModelProviderList = () => {
|
||||
return request.get(modelProviderUrl)
|
||||
}
|
||||
40
web/src/api/user.ts
Normal file
40
web/src/api/user.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type { CreateModalData } from '@/views/UserManagement/types'
|
||||
|
||||
// 用户信息
|
||||
export const getUsers = () => {
|
||||
return request.get('/users')
|
||||
}
|
||||
// 用户列表
|
||||
export const getUserListUrl = '/users/superusers'
|
||||
// 登录
|
||||
export const loginUrl = '/token'
|
||||
export const login = (data: { email: string; password: string; invite?: string; username?: string }) => {
|
||||
return request.post(loginUrl, data)
|
||||
}
|
||||
// 刷新token
|
||||
export const refreshTokenUrl = '/refresh'
|
||||
export const refreshToken = () => {
|
||||
return request.post(refreshTokenUrl, { refresh_token: localStorage.getItem('refresh_token') })
|
||||
}
|
||||
// 重置密码
|
||||
export const changePassword = (data: { user_id: string; new_password: string }) => {
|
||||
return request.put('/users/admin/change-password', data)
|
||||
}
|
||||
// 禁用用户
|
||||
export const deleteUser = (user_id: string) => {
|
||||
return request.delete(`/users/${user_id}`)
|
||||
}
|
||||
// 启用用户
|
||||
export const enableUser = (user_id: string) => {
|
||||
return request.post(`/users/${user_id}/activate`)
|
||||
}
|
||||
// 创建用户
|
||||
export const addUser = (data: CreateModalData) => {
|
||||
return request.post('/users/superuser', data)
|
||||
}
|
||||
// 注销
|
||||
export const logoutUrl = '/logout'
|
||||
export const logout = () => {
|
||||
return request.post(logoutUrl)
|
||||
}
|
||||
27
web/src/api/workspaces.ts
Normal file
27
web/src/api/workspaces.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type { SpaceModalData } from '@/views/SpaceManagement/types'
|
||||
|
||||
// 空间列表
|
||||
export const getWorkspaces = () => {
|
||||
return request.get('/workspaces')
|
||||
}
|
||||
// 创建空间
|
||||
export const createWorkspace = (values: SpaceModalData) => {
|
||||
return request.post('/workspaces', values)
|
||||
}
|
||||
// 切换空间
|
||||
export const switchWorkspace = (workspaceId: string) => {
|
||||
return request.put(`/workspaces/${workspaceId}/switch`)
|
||||
}
|
||||
// 获取空间存储类型
|
||||
export const getWorkspaceStorageType = () => {
|
||||
return request.get(`/workspaces/storage`)
|
||||
}
|
||||
// 获取空间模型配置
|
||||
export const getWorkspaceModels = () => {
|
||||
return request.get(`/workspaces/workspace_models`)
|
||||
}
|
||||
// 更新空间模型配置
|
||||
export const updateWorkspaceModels = () => {
|
||||
return request.post(`/workspaces/workspace_models`)
|
||||
}
|
||||
Reference in New Issue
Block a user