一个具备长期记忆和流式响应的 AI 聊天助手。
- 🔄 实时流式输出:基于 SSE (Server-Sent Events),逐字返回 LLM 响应,提供流畅的对话体验
- 🧠 持久化记忆:使用 LangGraph Checkpoint + SQLite,每个对话线程独立保存历史上下文
- 📊 智能摘要:自动压缩长对话历史,保持上下文连贯性的同时控制 Token 消耗
- ⚡ 简洁架构:纯 Flask + LangGraph,无冗余依赖,易于理解和扩展
- 🛠️ 生产就绪:提供完整的启动/停止脚本,日志管理,异常处理机制
pip install -r requirements.txt复制配置模板并修改:
cp .env.example .env然后编辑 .env 文件,填入你的配置:
# 必填
OPENAI_API_KEY=your_actual_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL_NAME=gpt-4
# 可选(已有默认值)
TEMPERATURE=0.7
MAX_TOKENS=12288./start.sh./stop.sh./restart.sh./status.shpython server.py.
├── server.py # Flask 服务入口
├── src/
│ ├── main.py # LangGraph 工作流定义
│ └── agents/
│ ├── chatbox.py # 聊天 Agent
│ └── models.py # 数据模型和工具函数
├── static/
│ └── index.html # 前端页面
├── data/ # SQLite checkpoint 存储
├── logs/ # 日志文件
│ └── server.log # 服务日志(所有输出)
└── *.sh # 启动脚本
启动成功后访问:http://127.0.0.1:5000
# 实时查看日志
tail -f logs/server.log
# 查看最近 50 行
tail -50 logs/server.log
# 搜索错误
grep ERROR logs/server.log- 工作流引擎: LangGraph - 状态管理 + 可中断流式执行
- Web 框架: Flask + SSE - 服务端事件推送实现实时流式响应
- LLM 接入: LangChain + OpenAI API(兼容所有 OpenAI 格式端点)
- 持久化层: LangGraph Checkpoint + SQLite - 零配置的对话历史存储
- 前端界面: 原生 HTML/CSS/JavaScript - 无构建依赖,开箱即用
