聚合多个 OpenViking 文档源的查询服务,提供 API 和 Web UI,可作为 AI 知识库或文档智能检索平台。
cloud/
├── config.json # 服务配置(后端、端口、搜索参数)
├── client.py # 独立搜索客户端(无需安装 openviking)
├── data/ # 数据源(每个子目录为一个独立 OV 实例,当前是仓颉相关知识库)
│ ├── cangjie-1.0.5/
│ ├── harmonyos-6.1.0.818/
│ └── harmonyos-compatibility-6.0.2.636/
└── server/ # Python 服务模块
├── __main__.py # 入口,python server <start|stop>
├── common.py # 共享工具(配置加载、HTTP、进程管理)
├── aggregator.py # 聚合搜索 API 服务
├── web.py # Web UI 服务
├── lifecycle.py # 服务启停
└── index.html # 前端页面
# 启动所有服务,OV 后端 + 聚合搜索 + Web UI
python server start
# 停止所有服务
python server stop| 服务 | 默认端口 | 说明 |
|---|---|---|
| aggregator | 2027 | 聚合搜索服务 |
| web | 2028 | Web UI |
| ov-cangjie-1.0.5 | 2029 | 仓颉语言文档 |
| ov-harmonyos-6.1.0.818 | 2030 | HarmonyOS API 文档 |
| ov-harmonyos-compatibility-6.0.2.636 | 2031 | HarmonyOS 兼容包文档 |
知识库选择完全由客户端控制,服务端无差别处理:
- client.py:顶部
DEFAULT_BACKENDS列表指定默认查询的知识库,按需增减即可 - Web UI:页面上提供知识库复选框,用户可动态勾选
编辑 config.json 调整端口和搜索参数。
添加新数据源:
- 在
data/下创建新目录,放入.conf和.openviking/数据 - 在
config.json的backends中添加对应条目:{ "name": "新数据源", "host": "127.0.0.1", "port": 2032, "conf": "data/新数据源/新数据源.conf" }
POST /api/v1/search— 聚合搜索(聚合服务 :2027)可选参数{ "query": "搜索内容", "limit": 15 }backends指定查询的知识库列表(不传则查询全部):{ "query": "搜索内容", "limit": 15, "backends": ["cangjie-1.0.5"] }GET /health— 健康检查- Web UI 访问
http://localhost:2028
无需本地安装 openviking,通过 client.py 即可查询云端服务:
# 默认查询(使用 DEFAULT_BACKENDS 列表中的知识库)
python client.py "仓颉 变量声明"
python client.py "ArkUI 组件布局" --limit 10
# 输出原始 JSON
python client.py "搜索内容" --json
# 指定自定义服务器地址
python client.py "搜索内容" --host 111.229.30.227 --port 2027