# 租户用户端 - 完整接口文档 > **版本**: 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个接口的详细定义 |