这是 YATA (Yet Another Travel Agent) 项目的后端部分, 基于 JoshuaC215 的 Agent Service Toolkit 构建.
该架构参考了 JoshuaC215 的 Agent Service Toolkit, 架构图引用自 Agent Service Toolkit 项目的 相关设计.
- FastAPI: 高性能的 Python 后端框架.
- FastAPI-Users: 完整的用户认证系统,支持注册、登录、JWT 认证等功能.
- LangGraph: 即开即用的 AI 代理框架, 可用于构建复杂的
multi-agent系统. - ChromaDB: 高性能的开源向量数据库, 用于存储和管理
向量数据, 以构建RAG知识库. - PostgreSQL: 高性能的开源关系型数据库, 用于存储和管理
checkpoint、用户数据以及其他必要数据.
- src/agents/: 核心模块, 定义了功能不同的多个 agent.
- src/auth/: 用户认证模块, 基于 FastAPI-Users 实现完整的用户管理功能.
- src/schema/: 通信协议层, 主要用于定义前后端交互时, 部分字段的复杂结构.
- src/core/: LLM 定义与配置层.
- src/memory/: 用于后端与数据库的交互.
- src/service/service.py: 面向前端与 agent 的后端服务.
- src/client/client.py: 面向 agent 的客户端.
- src/streamlit_app.py: 提供聊天界面的 Streamlit 应用 (简易前端), 用于测试与调试.
-
配置环境变量
- 目前支持
ChatGPT,Claude,Gemini,DeepSeek,Groq等模型, 也可以使用OpenRouter提供的中转服务. - env.example 中提供了示例配置, 可以使用下述指令直接创建
.env文件:
cp env.example .env
- 至少需要配置以下内容:
- LLM API 密钥 (如
OPENAI_API_KEY) - JWT 认证密钥 (
AUTH_JWT_SECRET, 生产环境请使用强随机密钥)
- LLM API 密钥 (如
- 目前支持
-
安装 uv 包管理器
- 已测试版本:
0.7.19
curl -LsSf https://astral.sh/uv/0.7.19/install.sh | sh - 已测试版本:
-
配置虚拟环境与依赖
uv venv uv sync --frozen source ./.venv/bin/activate -
启动后端服务
python src/run_service.py
-
启动简易前端界面 (可选)
streamlit run src/streamlit_app.py
后端已集成完整的用户认证系统,支持:
- ✅ 用户注册与登录
- ✅ JWT Token 认证
- ✅ 密码重置与邮箱验证
- ✅ 用户信息管理
- ✅ 支持 SQLite 和 PostgreSQL
查看 用户认证快速开始指南 了解如何:
- 注册和登录用户
- 获取和使用 JWT token
- 在前端集成认证功能
服务启动后,访问以下地址查看交互式 API 文档:
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
