更新信息接口

This commit is contained in:
zhanggangyong
2026-01-14 06:54:04 +00:00
parent e17f38112b
commit 72ed8c1d29
+141 -102
View File
@@ -88,15 +88,15 @@ Content-Type: application/json
| 字段 | 类型 | 说明 | 示例 |
|------|------|------|------|
| `modelName` | string | 模型名称 | `"azure/gpt-4"` |
| `apiKey` | string | **解密后的完整 API Key**(用于调用模型) | `"sk-xxxxxxxxxxxxxxxx"` |
| `apiBase` | string | LiteLLM 网关地址 | `"https://litellm.xxx.azurecontainerapps.io"` |
| `rpmLimit` | integer | 每分钟请求数限制 | `60` |
| `tpmLimit` | integer | 每分钟 Token 数限制 | `10000` |
| `maxBudget` | number \| null | 最大预算(美元) | `100.0` |
| `modelName` | string | 模型名称 | `"taiji/gpt-4o-mini"` |
| `apiKey` | string | **解密后的完整 API Key**(用于调用模型) | `"sk-cqlSIMr1v4H3PC1LiOuXKg"` |
| `apiBase` | string | LiteLLM 网关地址 | `"https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io"` |
| `rpmLimit` | integer | 每分钟请求数限制 | `10` |
| `tpmLimit` | integer | 每分钟 Token 数限制 | `10` |
| `maxBudget` | number \| null | 最大预算(美元) | `500.0` |
| `budgetDuration` | string | 预算周期 | `"monthly"` |
| `status` | string | 密钥状态 | `"active"` |
| `createdAt` | string | 创建时间(ISO 8601) | `"2026-01-13T10:00:00"` |
| `createdAt` | string | 创建时间(ISO 8601) | `"2026-01-09T06:20:12.334386"` |
| `error` | string | 错误信息(仅解密失败时返回) | `"密钥解密失败"` |
---
@@ -116,37 +116,37 @@ Content-Type: application/json
```json
{
"success": true,
"message": "LiteLLM 密钥信息获取成功",
"data": {
"litellmKeys": [
{
"modelName": "azure/gpt-4",
"apiKey": "sk-1234567890abcdef1234567890abcdef",
"modelName": "taiji/gpt-4o-mini",
"apiKey": "sk-cqlSIMr1v4H3PC1LiOuXKg",
"apiBase": "https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io",
"rpmLimit": 60,
"tpmLimit": 10000,
"maxBudget": 100.0,
"rpmLimit": 10,
"tpmLimit": 10,
"maxBudget": 500.0,
"budgetDuration": "monthly",
"status": "active",
"createdAt": "2026-01-10T10:30:00"
"createdAt": "2026-01-09T06:20:12.334386"
},
{
"modelName": "azure/gpt-3.5-turbo",
"apiKey": "sk-abcdef1234567890abcdef1234567890",
"modelName": "taiji/gpt-5",
"apiKey": "sk-Cjw3WZ7w3XMH5LjXnYw2ZA",
"apiBase": "https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io",
"rpmLimit": 120,
"tpmLimit": 50000,
"maxBudget": 50.0,
"rpmLimit": 100,
"tpmLimit": 100,
"maxBudget": 500.0,
"budgetDuration": "monthly",
"status": "active",
"createdAt": "2026-01-10T10:30:00"
"createdAt": "2026-01-09T08:35:09.780817"
}
],
"litellmApiBase": "https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io",
"summary": {
"totalLitellmKeys": 2
}
}
},
"message": "LiteLLM 密钥信息获取成功"
}
```
@@ -155,14 +155,14 @@ Content-Type: application/json
```json
{
"success": true,
"message": "LiteLLM 密钥信息获取成功",
"data": {
"litellmKeys": [],
"litellmApiBase": "https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io",
"summary": {
"totalLitellmKeys": 0
}
}
},
"message": "LiteLLM 密钥信息获取成功"
}
```
@@ -197,7 +197,7 @@ client = openai.OpenAI(
)
response = client.chat.completions.create(
model="azure/gpt-4",
model="taiji/gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}]
)
```
@@ -277,32 +277,22 @@ Content-Type: application/json
| 字段 | 类型 | 说明 | 示例 |
|------|------|------|------|
| `name` | string | Agent 实例名称 | `"user-123-echo-agent-abc"` |
| `name` | string | Agent 实例名称 | `"echo-agent-b00a7b8e-fa5a66"` |
| `template` | string | Agent 类型/模板 | `"echo_agent"` |
| `templateName` | string | 模板名称 | `"echo_agent"` |
| `status` | string | 运行状态(AKS 实时) | `"Running"` / `"Pending"` / `"Failed"` |
| `healthStatus` | string | 健康状态(AKS 实时) | `"healthy"` / `"unhealthy"` / `"unknown"` |
| `podIp` | string \| null | **Pod IP 地址**(AKS 实时) | `"10.244.1.100"` |
| `accessUrl` | string \| null | **访问 URL**(AKS 实时) | `"http://xxx.ai-agents.svc.cluster.local:8080"` |
| `servicePort` | integer \| null | 服务端口 | `8080` |
| `status` | string | 运行状态(AKS 实时) | `"Running"` / `"Waiting"` / `"Pending"` / `"Failed"` |
| `healthStatus` | string | 健康状态(AKS 实时) | `"healthy"` / `"degraded"` / `"unhealthy"` / `"unknown"` |
| `podIp` | string \| null | **Pod IP 地址**(AKS 实时) | `"10.244.2.103"` |
| `accessUrl` | string \| null | **访问 URL**(AKS 实时) | `null` |
| `servicePort` | integer \| null | 服务端口 | `null` |
| `namespace` | string | K8s 命名空间 | `"ai-agents"` |
| `hostIp` | string \| null | 宿主机 IP(AKS 实时) | `"192.168.1.10"` |
| `nodeName` | string \| null | 节点名称(AKS 实时) | `"aks-agentpool-xxxxx"` |
| `hostIp` | string \| null | 宿主机 IP(AKS 实时) | `null` |
| `nodeName` | string \| null | 节点名称(AKS 实时) | `null` |
| `cpu` | string | CPU 配置 | `"100m"` |
| `memory` | string | 内存配置 | `"256Mi"` |
| `replicas` | integer | 副本数量 | `1` |
| `startTime` | string | 启动时间(ISO 8601) | `"2026-01-13T08:00:00"` |
| `runningSeconds` | integer | 已运行秒数 | `7200` |
| `endpoints` | array | 端点列表(可选) | 见下表 |
### endpoints 数组元素(可选)
| 字段 | 类型 | 说明 | 示例 |
|------|------|------|------|
| `name` | string | 端点名称 | `"http"` |
| `port` | integer | 端口号 | `8080` |
| `protocol` | string | 协议 | `"TCP"` |
| `targetPort` | integer | 目标端口 | `8080` |
| `startTime` | string | 启动时间(ISO 8601) | `"2026-01-11T15:17:17.579421"` |
| `runningSeconds` | integer | 已运行秒数 | `227937` |
---
@@ -310,8 +300,8 @@ Content-Type: application/json
| 字段 | 类型 | 说明 | 示例 |
|------|------|------|------|
| `totalPlatformAgents` | integer | 已部署的平台 Agent 数量 | `1` |
| `totalCustomAgents` | integer | 已部署的自定义 Agent 数量 | `1` |
| `totalPlatformAgents` | integer | 已部署的平台 Agent 数量 | `2` |
| `totalCustomAgents` | integer | 已部署的自定义 Agent 数量 | `4` |
---
@@ -322,69 +312,125 @@ Content-Type: application/json
```json
{
"success": true,
"message": "Agent 列表获取成功",
"data": {
"platformAgents": [
{
"name": "user-abc123-echo-agent-def456",
"name": "echo-agent-b00a7b8e-fa5a66",
"template": "echo_agent",
"templateName": "echo_agent",
"status": "Running",
"healthStatus": "healthy",
"podIp": "10.244.1.100",
"accessUrl": "http://user-abc123-echo-agent-def456.ai-agents.svc.cluster.local:8080",
"servicePort": 8080,
"podIp": "10.244.2.103",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"hostIp": "192.168.1.10",
"nodeName": "aks-agentpool-12345678-vmss000001",
"cpu": "100m",
"memory": "256Mi",
"replicas": 1,
"startTime": "2026-01-13T08:00:00",
"runningSeconds": 7200,
"endpoints": [
{
"name": "http",
"port": 8080,
"protocol": "TCP",
"targetPort": 8080
}
]
"startTime": "2026-01-11T15:17:17.579421",
"runningSeconds": 227937,
"hostIp": null,
"nodeName": null
},
{
"name": "echo-agent-b00a7b8e-362760",
"template": "echo_agent",
"templateName": "echo_agent",
"status": "Running",
"healthStatus": "healthy",
"podIp": "10.244.2.225",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"cpu": "100m",
"memory": "256Mi",
"replicas": 1,
"startTime": "2026-01-12T13:22:29.551127",
"runningSeconds": 148425,
"hostIp": null,
"nodeName": null
}
],
"customAgents": [
{
"name": "user-abc123-mysql-agent-xyz789",
"template": "mysql_agent",
"templateName": "mysql_agent",
"status": "Running",
"healthStatus": "healthy",
"podIp": "10.244.1.101",
"accessUrl": "http://user-abc123-mysql-agent-xyz789.ai-agents.svc.cluster.local:8080",
"servicePort": 8080,
"name": "test-pgsql-agent-curl",
"template": "postgresql_agent",
"templateName": "A2A",
"status": "Waiting",
"healthStatus": "degraded",
"podIp": "10.244.1.61",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"hostIp": "192.168.1.11",
"nodeName": "aks-agentpool-12345678-vmss000002",
"cpu": "200m",
"memory": "512Mi",
"cpu": "100m",
"memory": "128Mi",
"replicas": 1,
"startTime": "2026-01-13T09:30:00",
"runningSeconds": 1800,
"endpoints": [
{
"name": "http",
"port": 8080,
"protocol": "TCP",
"targetPort": 8080
}
]
"startTime": "2026-01-13T07:32:52.290231",
"runningSeconds": 83003,
"hostIp": null,
"nodeName": null
},
{
"name": "my-pgsql-agent",
"template": "postgresql_agent",
"templateName": "MCP",
"status": "Waiting",
"healthStatus": "degraded",
"podIp": "10.244.1.158",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"cpu": "100m",
"memory": "256Mi",
"replicas": 1,
"startTime": "2026-01-13T12:03:12.933103",
"runningSeconds": 66782,
"hostIp": null,
"nodeName": null
},
{
"name": "test-auto-apikey-agent",
"template": "postgresql_agent",
"templateName": "MCP",
"status": "Waiting",
"healthStatus": "degraded",
"podIp": "10.244.0.43",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"cpu": "100m",
"memory": "256Mi",
"replicas": 1,
"startTime": "2026-01-13T12:10:27.145811",
"runningSeconds": 66348,
"hostIp": null,
"nodeName": null
},
{
"name": "mysqltestagent",
"template": "mysql_agent",
"templateName": "MCP",
"status": "Waiting",
"healthStatus": "degraded",
"podIp": "10.244.2.42",
"accessUrl": null,
"servicePort": null,
"namespace": "ai-agents",
"cpu": "1000m",
"memory": "1Gi",
"replicas": 1,
"startTime": "2026-01-13T12:38:00.340200",
"runningSeconds": 64695,
"hostIp": null,
"nodeName": null
}
],
"summary": {
"totalPlatformAgents": 1,
"totalCustomAgents": 1
"totalPlatformAgents": 2,
"totalCustomAgents": 4
}
}
},
"message": "Agent 列表获取成功"
}
```
@@ -393,7 +439,6 @@ Content-Type: application/json
```json
{
"success": true,
"message": "Agent 列表获取成功",
"data": {
"platformAgents": [],
"customAgents": [],
@@ -401,7 +446,8 @@ Content-Type: application/json
"totalPlatformAgents": 0,
"totalCustomAgents": 0
}
}
},
"message": "Agent 列表获取成功"
}
```
@@ -421,18 +467,11 @@ Content-Type: application/json
### Agent 访问方式
通过 `accessUrl` 可以在集群内部访问 Agent 服务:
通过 `podIp` 可以在集群内部访问 Agent 服务:
```bash
# 在集群内部调用 Agent
curl http://user-abc123-echo-agent-def456.ai-agents.svc.cluster.local:8080/api/chat
```
通过 `podIp` 和 `servicePort` 也可以直接访问:
```bash
# 直接通过 Pod IP 访问
curl http://10.244.1.100:8080/api/chat
# 直接通过 Pod IP 访问(默认端口 8080)
curl http://10.244.2.103:8080/api/chat
```
---
@@ -444,7 +483,7 @@ curl http://10.244.1.100:8080/api/chat
| LiteLLM 密钥 | PostgreSQL 数据库 | 静态(创建时存储) |
| Agent 基本信息(名称、模板、CPU/内存) | PostgreSQL 数据库 | 静态(创建时存储) |
| Agent 状态(status, healthStatus) | AKS 集群(通过 Agent Manager) | **实时查询** |
| Agent 网络信息(podIp, accessUrl) | AKS 集群(通过 Agent Manager) | **实时查询** |
| Agent 网络信息(podIp) | AKS 集群(通过 Agent Manager) | **实时查询** |
### 调用链路
@@ -461,4 +500,4 @@ curl http://10.244.1.100:8080/api/chat
1. **密钥安全**:返回的 `apiKey` 是完整的解密密钥,请妥善保管,不要泄露
2. **实时性**:Agent 的 `podIp`、`status` 等信息是实时从 AKS 查询的,可能有轻微延迟
3. **服务可用性**:如果 Agent Manager 服务不可用,Agent 的实时信息将显示为 `null` 或 `unknown`
4. **Pod IP 变化**:Pod 重启后 IP 地址会改变,建议使用 `accessUrl`(Service DNS)访问
4. **Pod IP 变化**:Pod 重启后 IP 地址会改变