Files
bxh/docs/API_REFERENCE.md

92 lines
2.6 KiB
Markdown

# API 说明
FastAPI 会自动生成交互式 API 文档。启动服务后访问:
```text
http://localhost:8102/docs
```
所有后台接口统一挂载在:
```text
/v1/admin
```
## 常用接口
| 接口 | 方法 | 说明 |
| --- | --- | --- |
| `/v1/admin/health` | `GET` | 健康检查 |
| `/v1/admin/auth/login` | `POST` | 管理员登录 |
| `/v1/admin/auth/me` | `GET` | 当前登录用户 |
| `/v1/admin/projects` | `GET/POST` | 项目管理 |
| `/v1/admin/ontology-schemas/current` | `GET` | 当前 schema |
| `/v1/admin/source-profiles` | `GET/POST/PATCH` | 数据源管理 |
| `/v1/admin/batches` | `GET` | 批次管理 |
| `/v1/admin/entities` | `GET` | 候选实体列表 |
| `/v1/admin/conflicts` | `GET` | 冲突列表 |
| `/v1/admin/publish-jobs` | `GET/POST` | 发布任务 |
| `/v1/admin/graph/overview` | `GET` | 图谱概览 |
| `/v1/admin/graph/query` | `POST` | 图谱查询 |
| `/v1/admin/plaza/overview` | `GET` | 图谱广场概览 |
| `/v1/admin/manual-ingest/extract` | `POST` | 手动抽取 |
| `/v1/admin/travel/assistant-query` | `POST` | 旅行客服问答 |
| `/v1/admin/super-agent/run` | `POST` | Super Agent 任务 |
| `/v1/admin/roles` | `GET/POST` | 角色管理 |
| `/v1/admin/users` | `GET/POST` | 用户管理 |
| `/v1/admin/areas/tree` | `GET` | 区域树 |
| `/v1/admin/notifications` | `GET` | 通知列表 |
## 登录示例
```bash
curl -s http://localhost:8102/v1/admin/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin@example.com","password":"change-me"}'
```
返回中包含 `access_token`,后续接口可使用:
```bash
TOKEN="上一步返回的 access_token"
curl http://localhost:8102/v1/admin/auth/me \
-H "Authorization: Bearer $TOKEN"
```
## 图谱查询示例
```bash
curl http://localhost:8102/v1/admin/graph/overview
```
```bash
curl http://localhost:8102/v1/admin/graph/query \
-H 'Content-Type: application/json' \
-d '{"query":"MATCH (n) RETURN n LIMIT 10"}'
```
## 旅行客服问答示例
```bash
curl http://localhost:8102/v1/admin/travel/assistant-query \
-H 'Content-Type: application/json' \
-d '{"question":"黄小西三日游多少钱?"}'
```
## 前端调用
React 管理后台通过 `admin-web/src/api.ts` 访问同源 API。Docker 部署时前端和 API 同在 `http://localhost:8102`,因此无需额外配置跨域代理。
## 外部服务
LLM 和高德地图相关能力默认关闭或留空。启用前需要在 `.env` 或 Docker Compose 环境变量中配置:
- `LLM_API_BASE`
- `LLM_API_KEY`
- `LLM_MODEL`
- `LLM_EXTRACTION_ENABLED=true`
- `AMAP_WEB_KEY`
- `AMAP_JS_KEY`
- `AMAP_SECURITY_JSCODE`
- `GAODE_CRAWLER_PATH`