使用说明
聊天应用程序-人力资源政策问答助理
一个全栈聊天应用程序,具有RAG(检索增强代)驱动的聊天机器人,可以回答有关人力资源政策的问题。该应用程序由Flask后端API和Next.js前端客户端组成。
🚀 特性
- 🤖 基于RAG的聊天机器人:使用检索增强生成来回答基于人力资源政策文档的问题
- 🔍 矢量搜索:利用ChromaDB进行语义搜索和文档检索
- 🎨 现代前端:Next.js 16,带有React 19、TypeScript和Tailwind CSS
- 🏗️ 整洁架构:实现可维护代码结构的控制器服务模式
- 🔐 基于环境的配置:使用环境变量进行安全配置管理
- 📊 健康检查端点:监视应用程序运行状况
- 🚀 RESTful API:用于聊天交互的结构良好的API端点
📁 项目结构
chat-application/
├── chat-bot-langchain-latest/ # Backend Flask API
│ ├── app/
│ │ ├── config/ # Application configuration
│ │ ├── controllers/ # Request controllers
│ │ ├── models/ # Pydantic models
│ │ ├── routes/ # API routes
│ │ └── services/ # Business logic & RAG agent
│ ├── chroma_db/ # ChromaDB persistent storage
│ ├── main.py # Application entry point
│ ├── pyproject.toml # Python dependencies
│ └── docker-compose.yml # Docker configuration
│
└── chat-client/ # Frontend Next.js client
├── app/ # Next.js app directory
├── public/ # Static assets
├── package.json # Node.js dependencies
└── tsconfig.json # TypeScript configuration
🛠️ 技术栈
后端
- 框架:烧瓶3.1.2+
- LLM:OpenAI GPT-4.1微米
- 矢量数据库:ChromaDB
- 嵌入:OpenAI文本嵌入-3大
- 语言链:朗链
- 验证:Pydantic
- python: 3.13+
前端
- 框架:Next.js 16.1.1
- 用户界面库:反应19.2.3
- 语言:TypeScript 5+
- 样式:顺风CSS 4
- 包管理器:Bun
📋 先决条件
- Python 3.13或更高版本
- Node.js 20+(或Bun)
- OpenAI API密钥
- Git
🔧 安装
后端设置
- 导航到后端目录:
cd chat-bot-langchain-latest
- 使用安装依赖项
uv(推荐)或pip:
# Using uv
uv pip install -e .
# Or using pip
pip install -e .
- 创建一个
.env后端目录中的文件:
OPENAI_API_KEY=your_openai_api_key_here
PORT=5000
FLASK_ENV=development
- (可选)使用Docker设置ChromaDB:
docker-compose -f chroma-docker-compose.yml up -d
前端设置
- 导航到前端目录:
cd chat-client
- 安装依赖项:
# Using bun (recommended)
bun install
# Or using npm
npm install
🚀 运行应用程序
启动后端服务器
cd chat-bot-langchain-latest
python main.py
后端API将在 http://localhost:5000
启动前端客户端
cd chat-client
bun dev
# or
npm run dev
前端将在 http://localhost:3000
📡 API终点
聊天端点
POST /api/v1/ask
Content-Type: application/json
{
"question": "What is the leave policy for employees?"
}
答复:
{
"answer": "Based on the HR policy document...",
"status": "success"
}
健康检查
GET /api/v1/health
答复:
{
"status": "healthy",
"message": "Service is running"
}
🔄 RAG的工作原理
- 文档处理:人力资源政策PDF被拆分为块并转换为向量嵌入
- 向量存储:嵌入存储在ChromaDB中,用于快速相似性搜索
- 查询处理:用户问题转换为嵌入
- 检索:系统找到前3个最相关的文档块
- 生成:GPT-4.1-mini使用检索到的上下文生成答案
🐳 Docker支持
后端使用Docker
cd chat-bot-langchain-latest
docker-compose up -d
ChromaDB与Docker
cd chat-bot-langchain-latest
docker-compose -f chroma-docker-compose.yml up -d
🧪 测试
后端测试
cd chat-bot-langchain-latest
python testing/testing.py
📝 环境变量
后端(.env)
OPENAI_API_KEY:您的OpenAI API密钥(必需)PORT:服务器端口(默认值:5000)FLASK_ENV:环境模式(开发/生产)
前端
在前端代码中配置API端点以指向后端URL。
🐛 故障排除
常见问题
- OpenAI API密钥错误:确保
OPENAI_API_KEY设置在您的.env文件 - ChromaDB连接错误:检查是否
chroma_db目录具有适当的权限 - 端口已在使用中:更改
PORT在你的.env文件 - 未找到模块:确保使用安装所有依赖项
uv pip install -e .或pip install -e .
📚 发展
添加新功能
后端:
- 新路线:添加路线
app/routes/ - 新控制器:在中创建控制器
app/controllers/ - 新服务:在中添加业务逻辑
app/services/ - 新型号:在中定义架构
app/models/schema.py
前端:
- 在中添加新页面
app/目录 - 根据需要创建组件
- 更新API调用以匹配后端终结点
📄 许可证
该项目根据MIT许可证获得许可。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
📞 支持
有关问题和疑问,请在存储库上打开一个问题。
👤 作者
Sudip 酒店
- github: @数据2001
备注:该项目是作为IBM SkillsBuild冬季认证计划-应用人工智能的一部分创建的。