ForcePilot/web/src/apis/dashboard_api.js
2026-01-15 06:01:34 +08:00

133 lines
4.0 KiB
JavaScript

import { apiAdminGet } from './base'
/**
* Dashboard API模块
* 用于管理员查看所有用户的对话记录
*/
export const dashboardApi = {
/**
* 获取所有对话记录
* @param {Object} params - 查询参数
* @param {string} params.user_id - 用户ID过滤
* @param {string} params.agent_id - 智能体ID过滤
* @param {string} params.status - 状态过滤 (active/deleted/all)
* @param {number} params.limit - 每页数量
* @param {number} params.offset - 偏移量
* @returns {Promise<Array>} - 对话列表
*/
getConversations: (params = {}) => {
const queryParams = new URLSearchParams()
if (params.user_id) queryParams.append('user_id', params.user_id)
if (params.agent_id) queryParams.append('agent_id', params.agent_id)
if (params.status) queryParams.append('status', params.status)
if (params.limit) queryParams.append('limit', params.limit)
if (params.offset) queryParams.append('offset', params.offset)
return apiAdminGet(`/api/dashboard/conversations?${queryParams.toString()}`)
},
/**
* 获取对话详情
* @param {string} threadId - 对话线程ID
* @returns {Promise<Object>} - 对话详情
*/
getConversationDetail: (threadId) => {
return apiAdminGet(`/api/dashboard/conversations/${threadId}`)
},
/**
* 获取Dashboard统计信息
* @returns {Promise<Object>} - 统计信息
*/
getStats: () => {
return apiAdminGet('/api/dashboard/stats')
},
/**
* 获取用户反馈列表
* @param {Object} params - 查询参数
* @param {string} params.rating - 反馈类型过滤 (like/dislike/all)
* @param {string} params.agent_id - 智能体ID过滤
* @returns {Promise<Array>} - 反馈列表
*/
getFeedbacks: (params = {}) => {
const queryParams = new URLSearchParams()
if (params.rating && params.rating !== 'all') queryParams.append('rating', params.rating)
if (params.agent_id) queryParams.append('agent_id', params.agent_id)
return apiAdminGet(`/api/dashboard/feedbacks?${queryParams.toString()}`)
},
// ========== 新增并行API接口 ==========
/**
* 获取用户活跃度统计
* @returns {Promise<Object>} - 用户活跃度统计信息
*/
getUserStats: () => {
return apiAdminGet('/api/dashboard/stats/users')
},
/**
* 获取工具调用统计
* @returns {Promise<Object>} - 工具调用统计信息
*/
getToolStats: () => {
return apiAdminGet('/api/dashboard/stats/tools')
},
/**
* 获取知识库统计
* @returns {Promise<Object>} - 知识库统计信息
*/
getKnowledgeStats: () => {
return apiAdminGet('/api/dashboard/stats/knowledge')
},
/**
* 获取AI智能体分析数据
* @returns {Promise<Object>} - AI智能体分析信息
*/
getAgentStats: () => {
return apiAdminGet('/api/dashboard/stats/agents')
},
/**
* 批量获取所有统计数据(并行请求)
* @returns {Promise<Object>} - 所有统计数据
*/
getAllStats: async () => {
try {
const [basicStats, userStats, toolStats, knowledgeStats, agentStats] = await Promise.all([
apiAdminGet('/api/dashboard/stats'),
apiAdminGet('/api/dashboard/stats/users'),
apiAdminGet('/api/dashboard/stats/tools'),
apiAdminGet('/api/dashboard/stats/knowledge'),
apiAdminGet('/api/dashboard/stats/agents')
])
return {
basic: basicStats,
users: userStats,
tools: toolStats,
knowledge: knowledgeStats,
agents: agentStats
}
} catch (error) {
console.error('批量获取统计数据失败:', error)
throw error
}
},
/**
* 获取调用统计时间序列数据
* @param {string} type - 数据类型 (models/agents/tokens/tools)
* @param {string} timeRange - 时间范围 (14hours/14days/14weeks)
* @returns {Promise<Object>} - 时间序列统计数据
*/
getCallTimeseries: (type = 'models', timeRange = '14days') => {
return apiAdminGet(`/api/dashboard/stats/calls/timeseries?type=${type}&time_range=${timeRange}`)
}
}