一个轻量的 LLM 应用脚手架:FastAPI + OpenAI 兼容接口 + RAG(知识库/会话文件)+ 联网搜索 + “深度研究”工作流(LangGraph),附带一个 Gemini 风格的 Web UI。
- 对话 API:支持同步与流式(SSE)
- RAG 检索:知识库目录
knowledge_base/+ 会话上传文档(PDF/JPG/PNG → 文本抽取 → 分块检索) - 联网搜索:可选将搜索结果拼接进上下文
- 工具路由:示例内置天气/价格查询(可扩展)
- 深度研究:查询规划 → 搜索 → 来源筛选(极简要点)→ 报告合成(尽量兼容老旧模型 API 的 prompt 体积)
- Web UI:默认挂载在
/,支持切换模型、联网搜索、深度研究、系统提示词、RAG 参数等
pip install -r requirements.txt项目使用 .env(见 [app/settings.py]。常用字段:
OPENAI_API_KEY=
BASE_URL=
MODEL_NAME=gpt-5-mini
EMBEDDING_MODEL_NAME=text-embedding-3-small
TAVILY_API_KEY=
REDIS_URL=redis://127.0.0.1:6379/0说明:
BASE_URL:OpenAI 兼容服务地址(代理/第三方网关/自建服务)TAVILY_API_KEY:联网搜索(如未配置,联网搜索能力可能不可用或降级)REDIS_URL:用于会话/检索缓存(取决于当前实现;本项目默认提供该配置项)
# 在项目根目录
python -m uvicorn app.server:app --reload --port 8000打开 Web UI:
app/server.py:FastAPI 入口(/返回 Web UI)app/api.py:HTTP API 路由(chat/stream/upload/sessions 等)app/chat/service.py:对话编排(RAG、联网、工具、深度研究)app/retrieval.py:检索与知识库/会话文档处理web/chat.html:单页 Web UI
python -m pytest -q