基于 AI CLI 工具(Claude Code / OpenCode / Cursor)的知识检索服务。
uv sync
cp .env.example .env.development
# 填入 DEEPQUERY_API_KEY (来自 https://token.cvte.com)
uv run deepquery
# 或 uv run uvicorn deepquery.api.app:create_app --factory --reloadAPI:
GET /healthGET /api/adapters— 列出可用 CLIPOST /api/query—{"question": "...", "adapter": "claude_code"}POST /api/query/stream— 流式响应
| 模块 | 作用 |
|---|---|
config/ |
pydantic-settings,按 DEEPQUERY_ENV 加载 .env.{development,production,testing} |
cli_adapters/ |
CLI 工具抽象 + 注册表,新增工具 = 子类 + @register |
services/ |
QueryService 编排:Query → Adapter → Answer |
api/ |
FastAPI 路由 |
knowledge/ datasources/ history/ |
占位,后续迭代 |
# src/deepquery/cli_adapters/my_tool.py
from deepquery.cli_adapters.base import BaseCLIAdapter
from deepquery.cli_adapters.registry import register
@register
class MyToolAdapter(BaseCLIAdapter):
name = "my_tool"
def build_command(self, prompt): return ["my-tool", "-p", prompt]
def build_env(self): return {"MY_TOOL_KEY": self.api_key}然后在 cli_adapters/__init__.py import 一下即可自动注册。
docker build -f docker/Dockerfile -t deepquery:dev .
docker run --rm -p 8000:8000 --env-file .env.production deepquery:dev- MVP:HTTP → CLI 子进程 → 回答
- 本地 Markdown 知识库检索(注入 prompt 上下文)
- Git / HTTP 文档同步
- MCP + 数据库数据源
- Skills 加载
- 问答历史(SQLite)
- Web 前端(打包进镜像)