SydnieGislason132/myrag-qmd-api-20260331
0
MyRag HF Space
基于 @tobilu/qmd 的 Markdown 上传与检索服务,目标运行环境是 Hugging Face Docker Space。
目录
app/start: 启动配置、restore、readinessapp/api: 上传、查询、健康检查接口app/qmd-core:qmd适配层,负责索引与查询app/backup: relay 调用、归档打包、定时备份app/runtime: 环境配置、路径与运行状态app/types: 共享 schema 与类型
默认行为
- 业务接口只有两个:
POST /v1/uploadPOST /v1/query- 两个业务接口都要求
Authorization: Bearer <APP_API_KEY> - 启动时先 restore,再进入 ready
- 查询默认
rerank=false - 上传默认同步 embed
- 归档真相是
docs/ + state/qmd.sqlite + .root-marker - 至少每小时执行一次备份;上传后可追加一次延迟备份
环境变量
复制 .env.example 后按需配置。
关键项:
APP_API_KEY: 上传和查询接口的统一密钥ENABLE_RELAY: 是否启用远端 relay 备份RELAY_BASE_URL: relay 服务地址RELAY_BEARER_TOKEN: relay 外层鉴权 tokenPROJECT_NAME: 归档项目名PROJECT_AUTH_TOKEN: relay 业务鉴权 tokenARCHIVE_NAME: 默认归档名,首次可设为init.zipROOT_MARKER_FILE: 根目录标记文件,默认.root-marker
本地运行
npm install
cp .env.example .env
npm run dev本地不接 relay 时,可把 ENABLE_RELAY=false,并把 SYNC_EMBED_ON_UPLOAD=false 用于 smoke 测试。
接口示例
查询:
curl -X POST http://127.0.0.1:7860/v1/query \
-H "Authorization: Bearer myrag678" \
-H "Content-Type: application/json" \
-d '{"query":"node2部署踩坑","limit":1,"rerank":false}'上传 JSON:
curl -X POST http://127.0.0.1:7860/v1/upload \
-H "Authorization: Bearer myrag678" \
-H "Content-Type: application/json" \
-d '{"relativePath":"notes/demo.md","content":"# demo\n\nhello"}'Hugging Face Space
- 新建 Docker Space
- 上传当前仓库内容
- 在 Space Secrets 中填写
.env.example里的敏感项 - 启动后访问
/healthz和/readyz
