Skip to content

ryoma-e/ChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatBot

一个轻量的 LLM 应用脚手架:FastAPI + OpenAI 兼容接口 + RAG(知识库/会话文件)+ 联网搜索 + “深度研究”工作流(LangGraph),附带一个 Gemini 风格的 Web UI。

功能概览

  • 对话 API:支持同步与流式(SSE)
  • RAG 检索:知识库目录 knowledge_base/ + 会话上传文档(PDF/JPG/PNG → 文本抽取 → 分块检索)
  • 联网搜索:可选将搜索结果拼接进上下文
  • 工具路由:示例内置天气/价格查询(可扩展)
  • 深度研究:查询规划 → 搜索 → 来源筛选(极简要点)→ 报告合成(尽量兼容老旧模型 API 的 prompt 体积)
  • Web UI:默认挂载在 /,支持切换模型、联网搜索、深度研究、系统提示词、RAG 参数等

快速开始

1) 安装依赖

pip install -r requirements.txt

2) 配置环境变量

项目使用 .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:用于会话/检索缓存(取决于当前实现;本项目默认提供该配置项)

3) 启动服务(开发)

# 在项目根目录
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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors