CoolFace
Apppublic

SydnieGislason132/myrag-qmd-api-20260331

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
App README

MyRag HF Space

基于 @tobilu/qmd 的 Markdown 上传与检索服务,目标运行环境是 Hugging Face Docker Space。

目录

  • —app/start: 启动配置、restore、readiness
  • —app/api: 上传、查询、健康检查接口
  • —app/qmd-core: qmd 适配层,负责索引与查询
  • —app/backup: relay 调用、归档打包、定时备份
  • —app/runtime: 环境配置、路径与运行状态
  • —app/types: 共享 schema 与类型

默认行为

  • —业务接口只有两个:
  • —POST /v1/upload
  • —POST /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 外层鉴权 token
  • —PROJECT_NAME: 归档项目名
  • —PROJECT_AUTH_TOKEN: relay 业务鉴权 token
  • —ARCHIVE_NAME: 默认归档名,首次可设为 init.zip
  • —ROOT_MARKER_FILE: 根目录标记文件,默认 .root-marker

本地运行

bash
npm install
cp .env.example .env
npm run dev

本地不接 relay 时,可把 ENABLE_RELAY=false,并把 SYNC_EMBED_ON_UPLOAD=false 用于 smoke 测试。

接口示例

查询:

bash
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:

bash
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

  1. 1.新建 Docker Space
  2. 2.上传当前仓库内容
  3. 3.在 Space Secrets 中填写 .env.example 里的敏感项
  4. 4.启动后访问 /healthz 和 /readyz