Open ACE API 文档
本文档描述 Open ACE (AI Computing Explorer) 中可用的 REST API 端点。
概述
- Base URL:
http://localhost:19888/api(默认) - 认证方式: 通过 Cookie 的 session token 或 Authorization 头中的 Bearer token
- Content-Type: 大多数端点使用
application/json
认证
大多数 API 端点需要认证。Session token 可以通过以下方式提供:
- Cookie:
session_token - Header:
Authorization: Bearer <token>
仅管理员可用的端点需要用户具有 admin 角色。
认证 API (/api/auth)
登录
POST /api/auth/login
认证用户并创建会话。
请求体:
{
"username": "string",
"password": "string"
}
响应:
{
"success": true,
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin"
}
}
状态码:
200- 成功400- 缺少用户名或密码401- 凭证无效
登出
POST /api/auth/logout
结束当前会话。
响应:
{
"success": true
}
检查认证状态
GET /api/auth/check
检查当前会话是否有效。
响应:
{
"authenticated": true,
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin"
}
}
获取个人资料
GET /api/auth/profile
获取当前用户的个人资料信息。
响应:
{
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin",
"is_active": true,
"created_at": "2024-01-01T00:00:00Z"
}
修改密码
POST /api/auth/change-password
修改当前用户的密码。
当用户被标记为 must_change_password=true 时,服务端会拒绝其访问大多数受保护接口,直到密码修改完成。此时仅保留以下最小必要接口可用:
GET /api/auth/checkGET /api/auth/meGET /api/auth/profilePOST /api/auth/change-passwordPOST /api/auth/logoutGET /api/password-policy
请求体:
{
"current_password": "string",
"new_password": "string"
}
响应:
{
"success": true,
"message": "Password changed successfully"
}
管理员 API (/api/admin)
所有管理员端点需要 admin 角色。
获取所有用户
GET /api/admin/users
列出系统中所有用户。
响应:
[
{
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin",
"is_active": true,
"created_at": "2024-01-01T00:00:00Z"
}
]
创建用户
POST /api/admin/users
创建新用户。
请求体:
{
"username": "string",
"email": "string",
"password": "string",
"role": "user" // 可选,默认为 "user"
}
响应:
{
"success": true,
"user_id": 2
}
状态码:
201- 创建成功400- 输入无效或用户已存在
更新用户
PUT /api/admin/users/<user_id>
更新用户信息。
请求体:
{
"username": "string", // 可选
"email": "string", // 可选
"role": "string", // 可选
"is_active": true, // 可选
"linux_account": "string" // 可选
}
删除用户
DELETE /api/admin/users/<user_id>
删除用户。不能删除自己。
更新用户密码
PUT /api/admin/users/<user_id>/password
更新用户密码(管理员覆盖)。
请求体:
{
"password": "string"
}
更新用户配额
PUT /api/admin/users/<user_id>/quota
更新用户的 token/请求配额。
请求体:
{
"daily_token_quota": 100000, // 可选
"monthly_token_quota": 1000000, // 可选
"daily_request_quota": 1000, // 可选
"monthly_request_quota": 10000 // 可选
}
同步飞书组织架构
POST /api/admin/feishu/sync
手动将飞书部门和用户同步为本地团队、用户、成员关系和 SSO 身份关联。
请求体:
{
"tenant_id": 1
}
tenant_id 可选,默认使用 feishu.org_sync_tenant_id 配置。
同步钉钉组织架构
POST /api/admin/dingtalk/sync
手动将钉钉部门和用户同步为本地团队、用户、成员关系和 SSO 身份关联。
请求体:
{
"tenant_id": 1
}
tenant_id 可选,默认使用 dingtalk.org_sync_tenant_id 配置。
获取配额使用情况
GET /api/admin/quota/usage
获取所有用户的配额使用情况。
使用统计 API (/api)
获取摘要
GET /api/summary
获取所有工具的汇总统计数据。
查询参数:
host- 按主机名筛选(可选)
响应:
{
"total_tokens": 1000000,
"total_input_tokens": 500000,
"total_output_tokens": 500000,
"total_requests": 10000,
"tools": [
{
"tool_name": "claude",
"tokens": 500000,
"requests": 5000
}
]
}
刷新摘要
POST /api/summary/refresh
从 daily_messages 表刷新摘要数据。
查询参数:
host- 按主机名筛选(可选)
获取今日用量
GET /api/today
获取今日所有工具的使用量。
查询参数:
host- 按主机名筛选(可选)tool- 按工具名筛选(可选)
获取工具用量
GET /api/tool/<tool_name>/<days>
获取指定工具在过去 N 天的使用量。
查询参数:
host- 按主机名筛选(可选)
获取指定日期用量
GET /api/date/<date_str>
获取指定日期的使用量(格式:YYYY-MM-DD)。
查询参数:
host- 按主机名筛选(可选)tool- 按工具名筛选(可选)
获取日期范围用量
GET /api/range
获取指定日期范围的使用量。
查询参数:
start- 开始日期(默认:7 天前)end- 结束日期(默认:今天)tool- 按工具名筛选(可选)host- 按主机名筛选(可选)
获取工具列表
GET /api/tools
获取所有工具列表。
获取主机列表
GET /api/hosts
获取所有主机列表。
获取趋势数据
GET /api/trend
获取用于图表的使用趋势数据。
查询参数:
start- 开始日期(默认:30 天前)end- 结束日期(默认:今天)host- 按主机名筛选(可选)
消息 API (/api)
获取消息
GET /api/messages
获取消息列表,支持分页和筛选。
查询参数:
date- 按指定日期筛选start_date- 范围起始日期end_date- 范围结束日期tool- 按工具名筛选host- 按主机名筛选sender- 按发送者筛选role- 按角色筛选(user/assistant)search- 在内容中搜索limit- 结果数量限制(默认:50)offset- 结果偏移量(默认:0)
获取发送者列表
GET /api/senders
获取所有发送者列表。
查询参数:
host- 按主机名筛选(可选)
获取对话历史
GET /api/conversation-history
获取对话历史。
查询参数:
date- 按日期筛选tool- 按工具名筛选host- 按主机名筛选sender- 按发送者筛选limit- 结果数量限制offset- 结果偏移量
获取对话时间线
GET /api/conversation-timeline/<session_id>
获取对话的消息时间线。
获取对话详情
GET /api/conversation-details/<session_id>
获取指定对话的详细信息。
获取消息计数
GET /api/messages/count
获取符合筛选条件的消息数量。
分析 API (/api/analysis)
批量分析
GET /api/analysis/batch
在单个请求中获取所有分析数据。
查询参数:
start- 开始日期end- 结束日期host- 按主机名筛选
关键指标
GET /api/analysis/key-metrics
获取仪表盘的关键指标。