Files
taiji-AI-PAD/Docs/项目文档/租户用户端-完整接口文档.md
T

1702 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 租户用户端 - 完整接口文档
> **版本**: v2.0.0
> **更新时间**: 2026-01-08
> **说明**: 本文档基于后端代码完整梳理,包含所有用户端可用接口的详细定义
---
## 目录
1. [接口总览](#接口总览)
2. [认证模块](#认证模块)
3. [仪表板模块](#仪表板模块)
4. [服务网关模块](#服务网关模块)
5. [自定义Agent配额模块](#自定义agent配额模块)
6. [数据与工具模块](#数据与工具模块)
7. [代理工厂模块](#代理工厂模块)
8. [平台Agent模块](#平台agent模块)
9. [自定义Agent模块](#自定义agent模块)
10. [编排中心模块](#编排中心模块)
11. [模型使用模块](#模型使用模块)
12. [计费与资源模块](#计费与资源模块)
13. [Agent计费统计模块](#agent计费统计模块)
14. [监控模块](#监控模块)
15. [通用响应格式](#通用响应格式)
16. [错误码说明](#错误码说明)
---
## 接口总览
### 接口统计
| 模块 | 接口数量 | 说明 |
|------|----------|------|
| 认证模块 | 6 | 登录、登出、刷新Token、修改密码、API密钥管理 |
| 仪表板模块 | 2 | 用户统计、Agent活动 |
| 服务网关模块 | 4 | 网关选择、API创建、API列表、监控数据 |
| 自定义Agent配额模块 | 1 | 配额查询 |
| 数据与工具模块 | 2 | 工具生成、数据模板创建 |
| 代理工厂模块 | 2 | 平台Agent列表、Agent部署 |
| 平台Agent模块 | 6 | 可用Agent、使用Agent、停止Agent、实例列表等 |
| 自定义Agent模块 | 7 | 模板列表、创建、删除、扩缩容、日志、重启、列表 |
| 编排中心模块 | 4 | 工作流创建、列表、运行、删除 |
| 模型使用模块 | 2 | 可用模型、使用统计 |
| 计费与资源模块 | 3 | 余额查询、充值、历史记录 |
| Agent计费统计模块 | 2 | 统计、历史记录 |
| 监控模块 | 5 | 系统指标、服务统计、趋势、告警、仪表盘 |
| **总计** | **46** | |
### 基础信息
- **基础URL**: `https://api.taiji-ai.com` 或 `http://localhost:8002`
- **认证方式**: Bearer Token (JWT)
- **请求头**: `Authorization: Bearer {token}`
- **内容类型**: `application/json`
---
## 认证模块
### 1. 用户登录
**接口**: `POST /api/auth/login`
**代码位置**: [`auth.py:42`](../services/mcp-server/app/routes/auth.py:42)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| email | string | 是 | 用户邮箱 |
| password | string | 是 | 用户密码 |
| role | string | 是 | 角色类型:`user`(租户用户), `channel`(渠道管理员), `billing_admin`, `operations_admin`, `admin`, `super_admin`, `provider` |
**响应参数**:
```json
{
"success": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "张三",
"email": "zhangsan@example.com",
"role": "user",
"channelId": "660e8400-e29b-41d4-a716-446655440001"
}
}
}
```
**错误码**: 401(邮箱或密码错误), 403(账户已被禁用/权限不足)
---
### 2. 用户登出
**接口**: `POST /api/auth/logout`
**代码位置**: [`auth.py:173`](../services/mcp-server/app/routes/auth.py:173)
**请求头**: `Authorization: Bearer {token}`
**响应参数**:
```json
{
"success": true,
"message": "登出成功"
}
```
---
### 3. 刷新Token
**接口**: `POST /api/auth/refresh`
**代码位置**: [`auth.py:237`](../services/mcp-server/app/routes/auth.py:237)
**请求头**: `Authorization: Bearer {refreshToken}`
**响应参数**:
```json
{
"success": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
```
---
### 4. 修改密码
**接口**: `PUT /api/auth/password`
**代码位置**: [`auth.py:275`](../services/mcp-server/app/routes/auth.py:275)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| old_password | string | 是 | 当前密码 |
| new_password | string | 是 | 新密码 |
**响应参数**:
```json
{
"success": true,
"message": "密码修改成功"
}
```
**错误码**: 400(旧密码错误), 404(用户不存在)
---
### 5. 获取API密钥信息
**接口**: `GET /api/auth/keys/info`
**代码位置**: [`auth.py:314`](../services/mcp-server/app/routes/auth.py:314)
**响应参数**:
```json
{
"success": true,
"data": {
"endpoint": "https://api.taiji-ai.com/v1",
"apiKey": "sk-xxxx...xxxx",
"createdAt": "2026-01-08T00:00:00Z",
"lastUsed": "2026-01-08T12:00:00Z"
}
}
```
---
### 6. 重新生成API密钥
**接口**: `POST /api/auth/keys/regenerate`
**代码位置**: [`auth.py:369`](../services/mcp-server/app/routes/auth.py:369)
**响应参数**:
```json
{
"success": true,
"data": {
"apiKey": "sk-abc123def456ghi789jkl012mno345pqr678stu901vwx",
"message": "旧密钥已失效"
}
}
```
---
## 仪表板模块
### 1. 获取用户仪表板统计
**接口**: `GET /api/user/dashboard/stats`
**代码位置**: [`user.py:105`](../services/mcp-server/app/routes/user.py:105)
**响应参数**:
```json
{
"success": true,
"data": {
"activeAgents": 5,
"totalRequests": 1234,
"euBalance": 500.50,
"systemHealth": 98.5
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| activeAgents | integer | 活跃Agent数量(状态为"active"的Agent数) |
| totalRequests | integer | 总请求数(该用户的计费记录总数) |
| euBalance | float | EU余额(用户账户余额) |
| systemHealth | float | 系统健康度百分比(0-100) |
---
### 2. 获取Agent活动数据
**接口**: `GET /api/user/agents/activity`
**代码位置**: [`user.py:156`](../services/mcp-server/app/routes/user.py:156)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| period | string | 否 | 7d | 时间周期:`7d`, `30d`, `90d` |
**响应参数**:
```json
{
"success": true,
"data": {
"data": [
{
"date": "2026-01-01",
"agentName": "my-agent",
"requests": 100
}
]
}
}
```
---
## 服务网关模块
### 1. 选择网关类型
**接口**: `POST /api/user/gateway/select`
**代码位置**: [`user.py:198`](../services/mcp-server/app/routes/user.py:198)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| gatewayType | string | 是 | 网关类型:`MCP`, `A2A`, `API` |
**响应参数**:
```json
{
"success": true,
"data": {
"gatewayType": "MCP"
},
"message": "已选择 MCP 网关"
}
```
---
### 2. 创建网关API
**接口**: `POST /api/user/gateway/api/create`
**代码位置**: [`user.py:214`](../services/mcp-server/app/routes/user.py:214)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | API名称 |
| method | string | 是 | 上传方式:`json`(JSON内容), `url`(URL地址) |
| content | string | 是 | JSON内容或URL地址 |
**响应参数**:
```json
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-api"
},
"message": "API创建成功"
}
```
---
### 3. 获取网关API列表
**接口**: `GET /api/user/gateway/apis`
**代码位置**: [`user.py:242`](../services/mcp-server/app/routes/user.py:242)
**响应参数**:
```json
{
"success": true,
"data": {
"apis": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-api",
"method": "json",
"createdAt": "2026-01-08T00:00:00Z"
}
]
}
}
```
---
### 4. 获取网关监控数据
**接口**: `GET /api/user/gateway/monitoring`
**代码位置**: [`user.py:270`](../services/mcp-server/app/routes/user.py:270)
**响应参数**:
```json
{
"success": true,
"data": {
"uptime": 99.9,
"requestsPerMinute": 10.5,
"averageLatency": 150.0,
"errorRate": 0.1
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| uptime | float | 服务可用率(百分比,基于过去1小时的成功率) |
| requestsPerMinute | float | 每分钟请求数(基于过去1小时的平均值) |
| averageLatency | float | 平均延迟(毫秒) |
| errorRate | float | 错误率(百分比) |
---
## 自定义Agent配额模块
### 1. 获取自定义Agent配额
**接口**: `GET /api/user/custom-agent-quota`
**代码位置**: [`user.py:342`](../services/mcp-server/app/routes/user.py:342)
**响应参数**:
```json
{
"success": true,
"data": {
"cpuQuota": 4.0,
"memoryQuota": 8.0,
"cpuUsed": 1.5,
"memoryUsed": 3.0,
"cpuRemaining": 2.5,
"memoryRemaining": 5.0,
"agentCount": 3,
"hasQuota": true
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| cpuQuota | float | CPU配额上限(核心数) |
| memoryQuota | float | 内存配额上限(GB) |
| cpuUsed | float | 已使用CPU(核心数) |
| memoryUsed | float | 已使用内存(GB) |
| cpuRemaining | float | 剩余CPU(核心数) |
| memoryRemaining | float | 剩余内存(GB) |
| agentCount | integer | 已创建的自定义Agent数量 |
| hasQuota | boolean | 是否有配额 |
---
## 数据与工具模块
### 1. 生成工具(创建自定义Agent)
**接口**: `POST /api/user/tools/generate`
**代码位置**: [`user.py:405`](../services/mcp-server/app/routes/user.py:405)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | 工具名称 |
| description | string | 是 | 工具描述 |
| frameworkTemplate | string | 是 | 框架模板:`MCP`, `A2A`, `API` |
| gateway | string | 是 | 服务网关:`MCP`, `A2A`, `API` |
| agentCount | integer | 是 | Agent个数 |
| cpu | float | 是 | CPU核数 |
| memory | float | 是 | 内存大小(GB) |
| maxScale | integer | 是 | 可扩展Agent数量 |
| model | string | 是 | 使用的模型名称 |
**响应参数**:
```json
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-tool",
"cpu": 1.0,
"memory": 2.0
},
"message": "工具生成成功"
}
```
**错误码**: 400(CPU配额不足/内存配额不足)
---
### 2. 创建数据模板
**接口**: `POST /api/user/data-templates/create`
**代码位置**: [`user.py:493`](../services/mcp-server/app/routes/user.py:493)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | 模板名称 |
| type | string | 是 | 模板类型:`json_api`, `cloud_storage`, `database` |
| config | object | 是 | 配置信息 |
**响应参数**:
```json
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-template"
},
"message": "数据模板创建成功"
}
```
---
## 代理工厂模块
### 1. 获取平台Agent列表
**接口**: `GET /api/user/agents/platform`
**代码位置**: [`user.py:523`](../services/mcp-server/app/routes/user.py:523)
**响应参数**:
```json
{
"success": true,
"data": {
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "gpt-agent",
"description": "GPT-4 Agent",
"category": "通用",
"cpu": 1.0,
"memory": 2.0,
"status": "available"
}
]
}
}
```
---
### 2. 部署Agent
**接口**: `POST /api/user/agents/deploy`
**代码位置**: [`user.py:554`](../services/mcp-server/app/routes/user.py:554)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| agentId | string | 是 | Agent ID(UUID格式) |
| instances | integer | 是 | 实例数量 |
| model | string | 是 | 使用的模型名称 |
| gateway | string | 是 | 服务网关:`MCP`, `A2A`, `API` |
**响应参数**:
```json
{
"success": true,
"data": {
"agentId": "550e8400-e29b-41d4-a716-446655440000",
"podName": "gpt-agent-550e8400",
"namespace": "default",
"status": "Running",
"servicePort": 8080,
"instances": 2,
"model": "gpt-4",
"gateway": "MCP"
},
"message": "Agent gpt-agent 部署成功"
}
```
**错误码**: 404(Agent不存在)
---
## 平台Agent模块
### 1. 获取可用的平台Agent列表
**接口**: `GET /api/user/platform-agents/available`
**代码位置**: [`user.py:1242`](../services/mcp-server/app/routes/user.py:1242)
**响应参数**:
```json
{
"success": true,
"data": {
"agents": [
{
"id": "82a5346e-749a-4df3-861f-afff38097b92",
"templateName": "code-assistant",
"displayName": "Code Assistant",
"description": "Platform Agent: code-assistant",
"podQuota": 5,
"podUsed": 2,
"podRemaining": 3,
"cpuLimit": "500m",
"memoryLimit": "512Mi",
"category": "platform",
"allocatedAt": "2026-01-08T00:00:00Z"
}
]
}
}
```
---
### 2. 使用平台Agent
**接口**: `POST /api/user/platform-agents/use`
**代码位置**: [`user.py:1282`](../services/mcp-server/app/routes/user.py:1282)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| agentType | string | 是 | Agent类型(模板名称) |
**响应参数**:
```json
{
"success": true,
"data": {
"instanceName": "code-assistant-550e8400-abc123",
"namespace": "default",
"status": "Running",
"servicePort": 8080,
"accessInfo": {
"endpoints": {
"http": "http://code-assistant-550e8400-abc123:8080"
}
},
"quotaRemaining": 2
},
"message": "平台 Agent code-assistant 启动成功"
}
```
**错误码**: 400(Pod配额已用完), 403(没有使用该Agent的权限)
---
### 3. 停止平台Agent实例
**接口**: `DELETE /api/user/platform-agents/{instance_name}`
**代码位置**: [`user.py:1388`](../services/mcp-server/app/routes/user.py:1388)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| instance_name | string | Agent实例名称 |
**响应参数**:
```json
{
"success": true,
"message": "Agent 实例 code-assistant-550e8400-abc123 已停止"
}
```
---
### 4. 获取平台Agent实例列表
**接口**: `GET /api/user/platform-agents/instances`
**代码位置**: [`user.py:1459`](../services/mcp-server/app/routes/user.py:1459)
**响应参数**:
```json
{
"success": true,
"data": {
"instances": [
{
"instanceName": "code-assistant-550e8400-abc123",
"agentType": "code-assistant",
"status": "Running",
"startTime": "2026-01-08T00:00:00Z",
"runningSeconds": 3600
}
]
}
}
```
---
### 5. 查看平台Agent配额(platform_agent_quota路由)
**接口**: `GET /api/user/platform-agents`
**代码位置**: [`platform_agent_quota.py:919`](../services/mcp-server/app/routes/platform_agent_quota.py:919)
**响应参数**:
```json
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"targetId": "660e8400-e29b-41d4-a716-446655440001",
"targetType": "tenant",
"templateName": "code-assistant",
"podQuota": 5,
"podUsed": 2,
"allocatedAt": "2026-01-08T00:00:00Z"
}
]
```
---
### 6. 查看平台Agent配额使用情况
**接口**: `GET /api/user/platform-agents/quota`
**代码位置**: [`platform_agent_quota.py:1071`](../services/mcp-server/app/routes/platform_agent_quota.py:1071)
**响应参数**:
```json
{
"userId": "550e8400-e29b-41d4-a716-446655440000",
"quotas": [
{
"templateName": "code-assistant",
"podQuota": 5,
"podUsed": 2,
"podAvailable": 3,
"usagePercent": 40.0
}
],
"totalQuota": 5,
"totalUsed": 2
}
```
---
## 自定义Agent模块
### 1. 获取自定义Agent模板列表
**接口**: `GET /api/user/custom-agents/templates`
**代码位置**: [`user.py:1512`](../services/mcp-server/app/routes/user.py:1512)
**响应参数**:
```json
{
"success": true,
"data": {
"templates": [
{
"name": "python-agent",
"description": "Python Agent Template",
"port": 8080
}
]
}
}
```
---
### 2. 创建自定义Agent
**接口**: `POST /api/user/custom-agents`
**代码位置**: [`user.py:1539`](../services/mcp-server/app/routes/user.py:1539)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| name | string | 是 | - | Agent名称 |
| template | string | 是 | - | 模板名称 |
| description | string | 否 | null | Agent描述 |
| cpuRequest | string | 否 | "100m" | CPU请求量(K8s格式) |
| cpuLimit | string | 否 | null | CPU限制量 |
| memoryRequest | string | 否 | "128Mi" | 内存请求量(K8s格式) |
| memoryLimit | string | 否 | null | 内存限制量 |
| endpoint | string | 否 | null | 用户终结点 |
| apiKey | string | 否 | null | 用户API密钥 |
| envConfig | object | 否 | {} | 环境变量配置 |
| model | string | 否 | null | 使用的模型名称(会自动注入LiteLLM环境变量) |
**响应参数**:
```json
{
"success": true,
"data": {
"name": "my-custom-agent",
"namespace": "default",
"status": "Running",
"servicePort": 8080,
"accessInfo": {
"endpoints": {
"http": "http://my-custom-agent:8080"
}
},
"modelInjected": true,
"quotaRemaining": {
"cpu": 2.5,
"memory": 5.0
}
},
"message": "自定义 Agent my-custom-agent 创建成功"
}
```
**错误码**: 400(CPU/内存配额不足), 403(没有自定义Agent配额/没有使用指定模型的权限)
---
### 3. 删除自定义Agent
**接口**: `DELETE /api/user/custom-agents/{name}`
**代码位置**: [`user.py:1715`](../services/mcp-server/app/routes/user.py:1715)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| name | string | Agent名称 |
**响应参数**:
```json
{
"success": true,
"message": "自定义 Agent my-custom-agent 已删除",
"data": {
"quotaReleased": {
"cpu": 0.5,
"memory": 1.0
}
}
}
```
**错误码**: 404(未找到Agent或该Agent不属于您)
---
### 4. 扩缩容自定义Agent
**接口**: `PUT /api/user/custom-agents/{name}/scale`
**代码位置**: [`user.py:1800`](../services/mcp-server/app/routes/user.py:1800)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| name | string | Agent名称 |
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| cpuRequest | string | 否 | 新的CPU请求量 |
| cpuLimit | string | 否 | 新的CPU限制量 |
| memoryRequest | string | 否 | 新的内存请求量 |
| memoryLimit | string | 否 | 新的内存限制量 |
**响应参数**:
```json
{
"success": true,
"message": "Agent my-custom-agent 扩缩容成功",
"data": {
"newCpu": "500m",
"newMemory": "512Mi",
"quotaRemaining": {
"cpu": 2.0,
"memory": 4.5
}
}
}
```
**错误码**: 400(CPU/内存配额不足), 404(未找到Agent)
---
### 5. 获取自定义Agent列表
**接口**: `GET /api/user/custom-agents`
**代码位置**: [`user.py:1927`](../services/mcp-server/app/routes/user.py:1927)
**响应参数**:
```json
{
"success": true,
"data": {
"agents": [
{
"name": "my-custom-agent",
"template": "python-agent",
"status": "Running",
"cpu": "500m",
"memory": "512Mi",
"startTime": "2026-01-08T00:00:00Z",
"runningSeconds": 3600
}
]
}
}
```
---
### 6. 获取自定义Agent日志
**接口**: `GET /api/user/custom-agents/{name}/logs`
**代码位置**: [`user.py:1984`](../services/mcp-server/app/routes/user.py:1984)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| name | string | Agent名称 |
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| tail_lines | integer | 否 | 100 | 返回的日志行数(1-1000) |
**响应参数**:
```json
{
"success": true,
"data": {
"logs": "2026-01-08 00:00:00 INFO Starting agent...\n2026-01-08 00:00:01 INFO Agent started successfully"
}
}
```
**错误码**: 404(未找到Agent或该Agent不属于您)
---
### 7. 重启自定义Agent
**接口**: `POST /api/user/custom-agents/{name}/restart`
**代码位置**: [`user.py:2032`](../services/mcp-server/app/routes/user.py:2032)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| name | string | Agent名称 |
**响应参数**:
```json
{
"success": true,
"message": "Agent my-custom-agent 正在重启"
}
```
**错误码**: 404(未找到Agent或该Agent不属于您)
---
## 编排中心模块
### 1. 创建工作流
**接口**: `POST /api/user/workflows/create`
**代码位置**: [`user.py:673`](../services/mcp-server/app/routes/user.py:673)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | 工作流名称 |
| description | string | 是 | 工作流描述 |
| gateway | string | 是 | 服务网关:`MCP`, `A2A`, `API` |
| nodes | array | 是 | 节点列表(最多3个) |
| nodes[].agentId | string | 是 | Agent ID |
| nodes[].agentType | string | 是 | Agent类型:`platform`, `custom` |
| nodes[].agentName | string | 是 | Agent名称 |
| nodes[].order | integer | 是 | 节点顺序(从1开始) |
**响应参数**:
```json
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-workflow"
},
"message": "工作流创建成功"
}
```
**错误码**: 400(工作流最多支持3个Agent节点)
---
### 2. 获取工作流列表
**接口**: `GET /api/user/workflows`
**代码位置**: [`user.py:713`](../services/mcp-server/app/routes/user.py:713)
**响应参数**:
```json
{
"success": true,
"data": {
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-workflow",
"description": "My workflow description",
"gateway": "MCP",
"nodes": [
{
"agentId": "660e8400-e29b-41d4-a716-446655440001",
"agentType": "platform",
"agentName": "code-assistant",
"order": 1
}
],
"status": "active",
"createdAt": "2026-01-08T00:00:00Z"
}
],
"count": 1
}
}
```
---
### 3. 运行工作流
**接口**: `POST /api/user/workflows/{workflow_id}/run`
**代码位置**: [`user.py:747`](../services/mcp-server/app/routes/user.py:747)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| workflow_id | string | 工作流ID(UUID格式) |
**响应参数**:
```json
{
"success": true,
"data": {
"executionId": "770e8400-e29b-41d4-a716-446655440002",
"workflowId": "550e8400-e29b-41d4-a716-446655440000",
"workflowName": "my-workflow",
"status": "completed",
"startedAt": "2026-01-08T00:00:00Z",
"completedAt": "2026-01-08T00:00:05Z",
"nodeResults": [
{
"nodeId": "660e8400-e29b-41d4-a716-446655440001",
"agentName": "code-assistant",
"order": 1,
"status": "completed",
"startedAt": "2026-01-08T00:00:00Z",
"completedAt": "2026-01-08T00:00:05Z",
"output": {
"message": "Node 1 executed successfully"
}
}
],
"totalNodes": 1,
"completedNodes": 1
},
"message": "工作流 my-workflow 执行完成"
}
```
**错误码**: 400(无效的工作流ID格式), 404(工作流不存在或不属于您)
---
### 4. 删除工作流
**接口**: `DELETE /api/user/workflows/{workflow_id}`
**代码位置**: [`user.py:823`](../services/mcp-server/app/routes/user.py:823)
**路径参数**:
| 参数名 | 类型 | 说明 |
|--------|------|------|
| workflow_id | string | 工作流ID(UUID格式) |
**响应参数**:
```json
{
"success": true,
"data": {
"deleted": true,
"id": "550e8400-e29b-41d4-a716-446655440000"
},
"message": "工作流已删除"
}
```
**错误码**: 400(无效的工作流ID格式), 404(工作流不存在或不属于您)
---
## 模型使用模块
### 1. 获取可用模型列表
**接口**: `GET /api/user/models/available`
**代码位置**: [`user.py:871`](../services/mcp-server/app/routes/user.py:871)
**响应参数**:
```json
{
"success": true,
"data": {
"models": [
{
"modelName": "gpt-4",
"rpmLimit": 60,
"tpmLimit": 10000,
"maxBudget": 100.0,
"budgetDuration": "monthly",
"status": "active",
"allocatedAt": "2026-01-08T00:00:00Z"
}
],
"count": 1
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| modelName | string | 模型名称 |
| rpmLimit | integer | 每分钟请求数限制 |
| tpmLimit | integer | 每分钟Token数限制 |
| maxBudget | float | 最大预算 |
| budgetDuration | string | 预算周期 |
| status | string | 状态 |
| allocatedAt | string | 分配时间 |
---
### 2. 获取模型使用统计
**接口**: `GET /api/user/models/usage/stats`
**代码位置**: [`user.py:915`](../services/mcp-server/app/routes/user.py:915)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| model_name | string | 否 | 模型名称,不传则返回所有模型 |
**响应参数**:
```json
{
"success": true,
"data": {
"models": [
{
"modelName": "gpt-4",
"requests": 100,
"totalTokens": 50000,
"spend": 5.0,
"rpmLimit": 60,
"tpmLimit": 10000,
"maxBudget": 100.0,
"budgetRemaining": 95.0
}
],
"totalSpend": 5.0
}
}
```
---
## 计费与资源模块
### 1. 获取余额信息
**接口**: `GET /api/user/billing/balance`
**代码位置**: [`user.py:1020`](../services/mcp-server/app/routes/user.py:1020)
**响应参数**:
```json
{
"success": true,
"data": {
"balance": 500.50,
"monthlySpent": 100.25,
"currency": "CNY"
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| balance | float | 当前余额 |
| monthlySpent | float | 本月消费 |
| currency | string | 货币类型 |
---
### 2. 充值余额
**接口**: `POST /api/user/billing/recharge`
**代码位置**: [`user.py:1059`](../services/mcp-server/app/routes/user.py:1059)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| amount | float | 是 | 充值金额 |
| paymentMethod | string | 是 | 支付方式:`alipay`, `wechat`, `card` |
**响应参数**:
```json
{
"success": true,
"data": {
"orderId": "ORD20260108120000abc12345",
"amount": 100.0,
"paymentUrl": "https://pay.taiji-ai.com/checkout?order_id=ORD20260108120000abc12345",
"status": "pending"
}
}
```
---
### 3. 获取计费历史
**接口**: `GET /api/user/billing/history`
**代码位置**: [`user.py:1150`](../services/mcp-server/app/routes/user.py:1150)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| startTime | string | 是 | - | 开始时间(YYYY-MM-DD 或 ISO 8601格式) |
| endTime | string | 是 | - | 结束时间 |
| customerName | string | 否 | null | 客户名称筛选 |
| minCalls | integer | 否 | null | 最小调用次数 |
| maxCalls | integer | 否 | null | 最大调用次数 |
| export | string | 否 | null | 导出格式:`excel`, `csv`, `pdf` |
| page | integer | 否 | 1 | 页码(从1开始) |
| pageSize | integer | 否 | 20 | 每页数量(1-100) |
**响应参数(查询模式)**:
```json
{
"success": true,
"data": {
"total": 100,
"records": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-01-08T00:00:00Z",
"agentName": "my-agent",
"duration": 60,
"eu": 6,
"cost": 0.6
}
]
}
}
```
**响应参数(导出模式)**:
```json
{
"success": true,
"data": {
"fileUrl": "https://exports.taiji-ai.com/user123/excel/billing_20260108120000.excel",
"format": "excel",
"expiresAt": "2026-01-09T12:00:00Z"
}
}
```
---
## Agent计费统计模块
### 1. 获取Agent计费统计
**接口**: `GET /api/user/agent-billing/stats`
**代码位置**: [`user.py:2081`](../services/mcp-server/app/routes/user.py:2081)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| period | string | 否 | 30d | 时间周期:`7d`, `30d`, `90d` |
**响应参数**:
```json
{
"success": true,
"data": {
"totalCost": 150.0,
"totalDurationSeconds": 36000,
"totalRequests": 500,
"byAgentType": {
"platform": {
"cost": 100.0,
"durationSeconds": 24000,
"requests": 300
},
"custom": {
"cost": 50.0,
"durationSeconds": 12000,
"requests": 200
}
},
"byTemplate": {
"code-assistant": {
"cost": 80.0,
"durationSeconds": 20000,
"requests": 250
}
}
}
}
```
---
### 2. 获取Agent计费历史
**接口**: `GET /api/user/agent-billing/history`
**代码位置**: [`user.py:2110`](../services/mcp-server/app/routes/user.py:2110)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| startTime | string | 是 | - | 开始时间 |
| endTime | string | 是 | - | 结束时间 |
| agentType | string | 否 | null | Agent类型:`platform`, `custom` |
| page | integer | 否 | 1 | 页码 |
| pageSize | integer | 否 | 20 | 每页数量(1-100) |
**响应参数**:
```json
{
"success": true,
"data": {
"total": 50,
"records": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"agentName": "my-agent",
"agentType": "platform",
"templateName": "code-assistant",
"startTime": "2026-01-08T00:00:00Z",
"endTime": "2026-01-08T01:00:00Z",
"durationSeconds": 3600,
"euConsumed": 360,
"cpuUsed": "500m",
"memoryUsed": "512Mi",
"cost": 3.6
}
]
}
}
```
---
## 监控模块
### 1. 获取系统指标
**接口**: `GET /api/v1/monitoring/metrics`
**代码位置**: [`monitoring.py:18`](../services/mcp-server/app/routes/monitoring.py:18)
**响应参数**:
```json
{
"cpu_percent": 45.5,
"memory_percent": 60.2,
"disk_percent": 70.0,
"network_io": {
"bytes_sent": 1000000,
"bytes_recv": 2000000
}
}
```
---
### 2. 获取服务统计
**接口**: `GET /api/v1/monitoring/stats`
**代码位置**: [`monitoring.py:28`](../services/mcp-server/app/routes/monitoring.py:28)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| service | string | 否 | all | 服务名称或"all" |
**响应参数**:
```json
{
"service": "all",
"stats": {
"total_requests": 10000,
"success_rate": 99.5,
"average_latency_ms": 150
}
}
```
---
### 3. 获取性能趋势
**接口**: `GET /api/v1/monitoring/trends`
**代码位置**: [`monitoring.py:38`](../services/mcp-server/app/routes/monitoring.py:38)
**请求参数**:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| metric | string | 否 | executions | 指标类型:`executions`, `eu_consumption` |
| period | string | 否 | 24h | 时间周期:`24h`, `7d`, `30d` |
| interval | string | 否 | 1h | 时间间隔:`1h`, `6h`, `1d` |
**响应参数**:
```json
{
"metric": "executions",
"period": "24h",
"interval": "1h",
"data": [
{
"timestamp": "2026-01-08T00:00:00Z",
"value": 100
},
{
"timestamp": "2026-01-08T01:00:00Z",
"value": 120
}
]
}
```
---
### 4. 获取系统告警
**接口**: `GET /api/v1/monitoring/alerts`
**代码位置**: [`monitoring.py:50`](../services/mcp-server/app/routes/monitoring.py:50)
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| severity | string | 否 | 严重程度过滤:`critical`, `warning`, `info` |
**响应参数**:
```json
{
"timestamp": "2026-01-08T12:00:00Z",
"alerts": [
{
"id": "alert-001",
"severity": "warning",
"message": "CPU usage above 80%",
"timestamp": "2026-01-08T11:55:00Z"
}
],
"count": 1
}
```
---
### 5. 获取监控仪表盘
**接口**: `GET /api/v1/monitoring/dashboard`
**代码位置**: [`monitoring.py:65`](../services/mcp-server/app/routes/monitoring.py:65)
**响应参数(已登录用户)**:
```json
{
"timestamp": "2026-01-08T12:00:00Z",
"health": {
"score": 98,
"services": {
"mcp_server": {"status": "healthy", "latency_ms": 50},
"data_ingestion": {"status": "healthy", "latency_ms": 30},
"api_gateway": {"status": "healthy", "latency_ms": 20}
}
},
"euConsumption24h": {
"total": 1000,
"hourly": [40, 45, 50, 42]
},
"modelUsage": {
"gpt-4": {"requests": 500, "tokens": 250000},
"claude-3": {"requests": 300, "tokens": 150000}
},
"weeklyApiCalls": {
"2026-01-01": {"success": 1000, "failed": 10},
"2026-01-02": {"success": 1200, "failed": 15}
},
"alerts": {
"items": [],
"count": 0,
"critical_count": 0,
"warning_count": 0
}
}
```
---
## 通用响应格式
### 成功响应
```json
{
"success": true,
"data": { ... },
"message": "操作成功"
}
```
### 错误响应
```json
{
"detail": "错误描述"
}
```
或
```json
{
"detail": {
"error": "error_code",
"message": "错误描述",
"detail": "详细信息"
}
}
```
---
## 错误码说明
| HTTP状态码 | 说明 |
|------------|------|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 未认证或认证失败 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 409 | 资源冲突 |
| 500 | 服务器内部错误 |
### 常见业务错误
| 错误码 | 说明 |
|--------|------|
| quota_exceeded | 配额超出限制 |
| agent_not_found | Agent不存在 |
| workflow_not_found | 工作流不存在 |
| invalid_id_format | 无效的ID格式 |
| deployment_failed | 部署失败 |
| agent_start_failed | Agent启动失败 |
| agent_stop_failed | Agent停止失败 |
| create_agent_failed | 创建Agent失败 |
| delete_agent_failed | 删除Agent失败 |
| scale_agent_failed | 扩缩容失败 |
| get_logs_failed | 获取日志失败 |
| restart_failed | 重启失败 |
| fetch_templates_failed | 获取模板失败 |
| pod_creation_failed | Pod创建失败 |
---
## 接口路径快速索引
### 认证模块 `/api/auth`
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/auth/login` | 用户登录 |
| POST | `/api/auth/logout` | 用户登出 |
| POST | `/api/auth/refresh` | 刷新Token |
| PUT | `/api/auth/password` | 修改密码 |
| GET | `/api/auth/keys/info` | 获取API密钥信息 |
| POST | `/api/auth/keys/regenerate` | 重新生成API密钥 |
### 用户模块 `/api/user`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/user/dashboard/stats` | 仪表板统计 |
| GET | `/api/user/agents/activity` | Agent活动数据 |
| POST | `/api/user/gateway/select` | 选择网关类型 |
| POST | `/api/user/gateway/api/create` | 创建网关API |
| GET | `/api/user/gateway/apis` | 网关API列表 |
| GET | `/api/user/gateway/monitoring` | 网关监控数据 |
| GET | `/api/user/custom-agent-quota` | 自定义Agent配额 |
| POST | `/api/user/tools/generate` | 生成工具 |
| POST | `/api/user/data-templates/create` | 创建数据模板 |
| GET | `/api/user/agents/platform` | 平台Agent列表 |
| POST | `/api/user/agents/deploy` | 部署Agent |
| GET | `/api/user/platform-agents/available` | 可用平台Agent |
| POST | `/api/user/platform-agents/use` | 使用平台Agent |
| DELETE | `/api/user/platform-agents/{instance_name}` | 停止平台Agent |
| GET | `/api/user/platform-agents/instances` | 平台Agent实例列表 |
| GET | `/api/user/platform-agents` | 平台Agent配额 |
| GET | `/api/user/platform-agents/quota` | 配额使用情况 |
| GET | `/api/user/custom-agents/templates` | 自定义Agent模板 |
| POST | `/api/user/custom-agents` | 创建自定义Agent |
| DELETE | `/api/user/custom-agents/{name}` | 删除自定义Agent |
| PUT | `/api/user/custom-agents/{name}/scale` | 扩缩容自定义Agent |
| GET | `/api/user/custom-agents` | 自定义Agent列表 |
| GET | `/api/user/custom-agents/{name}/logs` | 自定义Agent日志 |
| POST | `/api/user/custom-agents/{name}/restart` | 重启自定义Agent |
| POST | `/api/user/workflows/create` | 创建工作流 |
| GET | `/api/user/workflows` | 工作流列表 |
| POST | `/api/user/workflows/{id}/run` | 运行工作流 |
| DELETE | `/api/user/workflows/{id}` | 删除工作流 |
| GET | `/api/user/models/available` | 可用模型列表 |
| GET | `/api/user/models/usage/stats` | 模型使用统计 |
| GET | `/api/user/billing/balance` | 余额信息 |
| POST | `/api/user/billing/recharge` | 充值余额 |
| GET | `/api/user/billing/history` | 计费历史 |
| GET | `/api/user/agent-billing/stats` | Agent计费统计 |
| GET | `/api/user/agent-billing/history` | Agent计费历史 |
### 监控模块 `/api/v1/monitoring`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/monitoring/metrics` | 系统指标 |
| GET | `/api/v1/monitoring/stats` | 服务统计 |
| GET | `/api/v1/monitoring/trends` | 性能趋势 |
| GET | `/api/v1/monitoring/alerts` | 系统告警 |
| GET | `/api/v1/monitoring/dashboard` | 监控仪表盘 |
---
## 版本历史
| 版本 | 日期 | 更新内容 |
|------|------|----------|
| v1.0.0 | 2026-01-08 | 初始版本 |
| v1.1.0 | 2026-01-08 | 添加请求参数和响应参数详细说明 |
| v2.0.0 | 2026-01-08 | 完整梳理所有用户端接口,包含46个接口的详细定义 |