API 接口文档
版本: v3.2.1
基础 URL: http://localhost:8000
更新日期: 2026-05-13
⚠️ URL 前缀说明:
pipeline_16s_router挂载于/api/v1/16s/(有/v1前缀),16S pipeline v1 服务于/api/v1/16s-pipeline-v1,v2.3服务由sixteen_s_pipeline_v23.py提供。
1. 认证 (Auth)
获取 Token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
响应:
验证 Token
响应:
用户注册
请求体:
获取当前用户
修改密码
登出
获取演示 Token
2. 系统管理 (System)
系统状态
响应:
{
"status": "online",
"version": "v3.2.1-minimax",
"security": {
"rate_limiting": true,
"rate_limit_requests": 100,
"rate_limit_window": 60,
"jwt_enabled": true
}
}
健康检查
数据库健康
缓存清理
系统信息
3. 患者档案 (Profiles)
列表
获取档案
创建档案
更新档案
4. 分析记录 (Records)
获取记录列表
获取单条记录
获取统计
删除记录
5. 组学分析 - 16S / 微生物组
上传并分析(⚠️ 无 /v1 前缀)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | file | 是 | FASTQ 文件 |
| sample_id | string | 否 | 样本 ID |
响应:
{
"status": "success",
"sample_id": "SAMPLE_001",
"health_score": 78,
"enterotype": "B肠型",
"alpha_diversity": {
"shannon": 4.2,
"simpson": 0.89,
"chao1": 350
}
}
获取分析结果
16S Pipeline 健康检查
模拟 PDF 生成
微生物组上传
响应:
{
"status": "success",
"interpretation": "肠道菌群分析...",
"key_findings": [
"有益菌: 双歧杆菌↑, 乳杆菌↑",
"有害菌: 艰难梭菌未检出"
],
"enterotype": "B肠型",
"scfa_prediction": {
"butyrate": "正常",
"acetate": "正常",
"propionate": "略高"
}
}
微生物组 PDF 导出
6. 组学分析 - 基因组 / WGS / RNA-seq
基因组上传
响应:
{
"status": "success",
"interpretation": "基于基因检测结果的详细解读...",
"key_findings": [
"叶酸代谢能力正常",
"乳糖耐受基因阳性"
],
"risk_assessment": "低风险"
}
WGS 样本列表
WGS 分析
RNA-seq 分析
RNA-seq 任务状态
表观遗传上传
芯片分析上传
芯片结果
芯片历史
芯片报告
7. 组学分析 - 代谢组 / 蛋白组 / 免疫组
代谢组上传
响应:
蛋白组上传
免疫组上传
转录组上传
心血管分析上传
8. 多组学整合
上传报告
POST /api/v1/multi-omics/upload-report
Content-Type: multipart/form-data
Authorization: Bearer <token>
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | file | 是 | 报告文件 |
| patient_id | string | 是 | 患者 ID |
| report_type | string | 是 | 报告类型 |
报告类型:
- 体检报告 / 基因组学 / 微生物组学
- 代谢组学 / 蛋白质组学 / 免疫组学
- 心血管专项 / 表观基因组学 / 转录组学
解读报告
POST /api/v1/multi-omics/interpret-report
Content-Type: multipart/form-data
Authorization: Bearer <token>
响应:
{
"status": "success",
"interpretation": "AI解读内容...",
"key_findings": [
"发现1: ...",
"发现2: ..."
],
"summary": "简要摘要"
}
整合分析
POST /api/v1/multi-omics/integrate
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer <token>
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| patient_id | string | 是 | 患者 ID |
| health_profile | JSON | 是 | 健康档案 |
| results_json | JSON | 是 | 解读结果 |
响应:
{
"status": "success",
"integrated_summary": "综合评估...",
"risk_scores": {
"cardiovascular": "中",
"metabolic": "高",
"immune": "低",
"digestive": "低"
},
"food_recommendations": ["西兰花", "三文鱼", "核桃"],
"integrated_recommendations": [
"调整饮食结构",
"定期监测血糖"
]
}
生成健康方案
POST /api/v1/multi-omics/generate-plan
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer <token>
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| patient_id | string | 是 | 患者 ID |
| health_profile | JSON | 是 | 健康档案 |
| integration_result | JSON | 是 | 整合结果 |
| target_period | string | 否 | 目标周期 (1个月/3个月/6个月/1年) |
响应:
{
"status": "success",
"health_plan": {
"executive_summary": "方案概要...",
"nutrition_plan": {
"diet_principles": ["低糖", "高蛋白"],
"recommended_foods": ["西兰花", "三文鱼"],
"foods_to_avoid": ["奶茶", "炸鸡"]
},
"exercise_plan": {
"weekly_frequency": "5次",
"intensity": "中等",
"duration": "30分钟"
},
"sleep_plan": {
"target_hours": "8小时"
},
"monitoring_plan": {
"daily_tracking": ["体重", "步数", "睡眠时长"]
}
}
}
导出 PDF 报告
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| patient_id | string | 是 | 患者 ID |
| health_profile | JSON | 是 | 健康档案 |
| reports_json | JSON | 是 | 报告数据 |
| integration_json | JSON | 是 | 整合结果 |
| plan_json | JSON | 否 | 健康方案 |
9. 高级分析
高级整合分析
POST /api/v1/multi-omics/advanced-integrate
Content-Type: application/json
Authorization: Bearer <token>
响应:
{
"status": "success",
"advanced_analysis": {
"cross_omics_correlations": [...],
"cluster_analysis": {...},
"pathway_enrichment": [...]
}
}
DIABLO 多组学分析
POST /api/v1/multi-omics/diablo-analyze
Content-Type: application/json
Authorization: Bearer <token>
响应:
{
"status": "success",
"diablo_result": {
"component_1": {"loading": [...], "variance": "15%"},
"component_2": {"loading": [...], "variance": "10%"},
"discriminant_function": {...}
}
}
MOFA 降维分析
响应:
{
"status": "success",
"mofa_result": {
"factors": [...],
"variance_explained": {...},
"samples_coordinates": [...]
}
}
肠脑轴分析
代谢性炎症分析
POST /api/v1/metabolic-inflammation/analyze
Content-Type: application/json
Authorization: Bearer <token>
综合健康评估
POST /api/v1/comprehensive-health/analyze
Content-Type: application/json
Authorization: Bearer <token>
统计整合
POST /api/v1/statistical-integration/analyze
Content-Type: application/json
Authorization: Bearer <token>
热图分析
代谢通路分析
肠道菌群功能预测
10. 健康评估
BioAge 生理年龄预测
请求:
响应:
{
"status": "success",
"bio_age": 42,
"biological_age_delta": -3,
"assessment": "比实际年龄年轻3岁",
"risk_factors": [...]
}
ctDNA 液态活检
响应:
免疫组库分析
POST /api/v1/immune-repertoire/{sample_id}/upload
Content-Type: multipart/form-data
Authorization: Bearer <token>
响应:
肿瘤早筛
遗传病筛查
药物基因组学
个体特质分析
11. AI 服务
AI 辅助诊断
RAG 知识问答
RAG 检索
AI 健康对话
健康聊天机器人
Agent - 任务分析
Agent - 方法设计
Agent - 快速执行
Agent - 代码执行
Agent - Pipeline
工作流编排
工作流状态
工作流列表
批量处理提交
批量处理状态
批量处理历史
Nextflow 流程桥接
Nextflow 状态
12. 管理功能
仪表盘统计
用户列表
患者档案管理
数据库迁移
运行迁移
导出服务
分享创建
分享列表
分享验证
报告生成
通知发送
13. 报告模板 (奇云诺德)
体检报告
获取体检报告
各类报告上传(通用)
| 报告类型 | 端点 |
|---|---|
| 基因组报告 | POST /api/v1/genomics/upload |
| 微生物组报告 | POST /api/v1/microbiome/upload |
| 代谢组报告 | POST /api/v1/metabolomics/upload |
| 蛋白组报告 | POST /api/v1/proteomics/upload |
| 免疫组报告 | POST /api/v1/immunology/upload |
| 心血管报告 | POST /api/v1/cardiovascular/upload |
| 表观遗传报告 | POST /api/v1/epigenomics/upload |
| 转录组报告 | POST /api/v1/transcriptomics/upload |
15. 异步报告处理(商业化 P2)
大文件上传(> 5MB)自动异步处理,避免 HTTP 超时。阈值可通过环境变量
LARGE_FILE_ASYNC_THRESHOLD_MB配置。
异步上传报告
POST /api/v1/async-reports/upload/{report_type}
Content-Type: multipart/form-data
Authorization: Bearer <token>
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | file | 是 | 报告文件 |
| patient_id | string | 是 | 患者 ID |
| report_source | string | 否 | 来源(默认:用户上传) |
| report_date | string | 是 | 报告日期 |
| async_process | bool | 否 | true=强制异步处理 |
响应(大文件 > 5MB):
{
"status": "processing",
"task_id": "ASYNC-20260513-xxxxxx",
"async": true,
"message": "文件已接收(12.5MB),正在后台处理",
"query_url": "/async-reports/ASYNC-20260513-xxxxxx"
}
查询异步任务状态
响应:
{
"task_id": "ASYNC-20260513-xxxxxx",
"task_type": "medical_report",
"status": "processing",
"progress": 60,
"created_at": "2026-05-13T08:00:00",
"result": null,
"error": null
}
状态流转: pending → processing → completed / failed / cancelled
异步任务列表
取消异步任务
异步任务统计
16. 错误码
| 错误码 | 说明 |
|---|---|
| 400 | 请求参数错误 |
| 401 | 认证失败 / Token 无效 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 413 | 文件过大(默认 50MB) |
| 415 | 不支持的媒体类型 |
| 429 | 请求过于频繁(限流触发) |
| 500 | 服务器内部错误 |
| 502 | 上游服务错误 |
| 503 | 服务不可用 |
| 504 | 上游超时 |
17. 请求示例
Python
import requests
# 获取 Token
resp = requests.post("http://localhost:8000/auth/token",
data={"username": "admin", "password": "admin123"})
token = resp.json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}
# 上传 16S FASTQ 文件
with open("sample_R1.fastq.gz", "rb") as f:
resp = requests.post(
"http://localhost:8000/api/16s/upload",
headers=headers,
files={"file": ("R1.fastq.gz", f, "application/gzip")},
data={"sample_id": "TEST_001"}
)
print(resp.json())
# 多组学整合分析
resp = requests.post(
"http://localhost:8000/api/v1/multi-omics/integrate",
headers=headers,
data={
"patient_id": "P001",
"health_profile": json.dumps({"age": 45, "gender": "男"}),
"results_json": json.dumps({"genomics": {...}, "microbiome": {...}})
}
)
print(resp.json())
cURL
# 获取 Token
TOKEN=$(curl -s -X POST http://localhost:8000/auth/token \
-d "username=admin&password=admin123" | jq -r '.access_token')
# 上传体检报告
curl -X POST http://localhost:8000/api/v1/medical-report/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@report.pdf"
# BioAge 预测
curl -X POST http://localhost:8000/api/v1/bioage/predict \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"age": 45, "gender": "男", "indicators": {"ALT": 25, "AST": 22}}'
文档版本: v3.2.1 | 最后更新: 2026-05-13