数据流
本文档介绍 OpenHuman 的数据处理流程。
请求处理流程
用户请求 → API 网关 → 认证鉴权 → 请求验证
↓
Agent Engine 处理
↓
┌─────────────────┼─────────────────┐
↓ ↓ ↓
工具调用 知识检索 业务处理
↓ ↓ ↓
└─────────────────┼─────────────────┘
↓
响应聚合
↓
返回用户
详细步骤
1. 请求接收
API 网关接收来自客户端的请求:
POST /api/v1/agents/{agentId}/run
{
"message": "用户输入",
"context": {
"sessionId": "session_123",
"userId": "user_456"
}
}
2. 认证鉴权
验证请求的合法性:
- 检查 API 密钥
- 验证权限范围
- 检查请求配额
3. Agent 处理
Agent Engine 执行核心逻辑:
async function processRequest(request) {
// 1. 理解用户意图
const intent = await understandIntent(request.message);
// 2. 规划执行步骤
const plan = await planActions(intent, agent.config);
// 3. 执行计划
const results = [];
for (const step of plan.steps) {
const result = await executeStep(step, request.context);
results.push(result);
}
// 4. 聚合结果
return aggregateResults(results);
}
4. 工具调用
根据需要调用外部工具:
// 搜索工具
const searchResult = await tools.webSearch({
query: 'OpenHuman 最新动态',
limit: 5,
});
// 计算工具
const calcResult = await tools.calculator({
expression: '100 * 2 + 50',
});
5. 知识检索
从向量数据库检索相关内容:
const relevantDocs = await memory.search({
query: request.message,
limit: 5,
threshold: 0.8,
});
6. 响应返回
将处理结果返回给用户:
{
"success": true,
"data": {
"message": "处理结果",
"metadata": {
"processingTime": 123,
"tokensUsed": 500
}
}
}
数据存储流程
用户数据 → ETL 处理 → 向量化 → 存储到向量数据库
→ 存储到关系数据库
→ 缓存热点数据
监控指标
| 指标 | 描述 |
|---|---|
| 请求量 | 每分钟请求数 |
| 响应时间 | 平均处理延迟 |
| 成功率 | 请求成功率 |
| 工具调用 | 各工具使用频率 |