基于LangChain和FastAPI的企业级智能问答系统,支持多种文档格式的上传、向量化存储和智能检索问答。
本项目是一个完整的企业级SOP(标准作业程序)问答系统,旨在帮助企业构建智能化的文档管理和问答平台。系统采用现代化的微服务架构,支持大规模文档处理和高并发访问。
- 提升效率: 快速检索企业文档,减少人工查找时间
- 知识管理: 统一管理企业SOP文档,避免知识孤岛
- 智能问答: 基于AI的自然语言问答,提供准确的答案
- 多语言支持: 支持中英文等多种语言的文档和问答
- 基于LangChain的检索增强生成(RAG)技术
- 支持上下文理解和多轮对话
- 结构化答案输出,包含来源引用
- 实时WebSocket通信
- 支持PDF、Word、TXT、Markdown等多种格式
- 智能文档分块和向量化
- 文档分类和标签管理
- 批量上传和处理
- 完整的用户认证和授权
- 基于角色的访问控制(RBAC)
- 用户操作日志记录
- 多租户支持
- 微服务架构,支持水平扩展
- 容器化部署,支持Docker和Kubernetes
- 完整的监控和告警系统
- 高性能缓存和异步处理
- 前端: React + TypeScript + Ant Design
- 后端: FastAPI + Python 3.11
- AI框架: LangChain + OpenAI GPT-4
- 向量数据库: Elasticsearch
- 关系数据库: PostgreSQL
- 缓存: Redis
- 消息队列: Celery
- 监控: Prometheus + Grafana
- 部署: Docker + Docker Compose + Kubernetes
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Nginx │ │ Backend │
│ (React) │◄──►│ (Load Balancer)│◄──►│ (FastAPI) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌─────────────────┐ │
│ Elasticsearch │◄────────────┤
│ (Vector Store) │ │
└─────────────────┘ │
│
┌─────────────────┐ ┌─────────────────┐ │
│ PostgreSQL │◄───│ Redis │◄────────────┤
│ (Database) │ │ (Cache) │ │
└─────────────────┘ └─────────────────┘ │
│
┌─────────────────┐ ┌─────────────────┐ │
│ Celery │◄───│ Prometheus │◄────────────┘
│ (Workers) │ │ (Monitoring) │
└─────────────────┘ └─────────────────┘
│
┌─────────────────┐
│ Grafana │
│ (Dashboard) │
└─────────────────┘
langchain/
├── sop-qa-system/ # 主要应用代码
│ ├── backend/ # 后端服务
│ │ ├── app/ # FastAPI应用
│ │ ├── tests/ # 测试代码
│ │ ├── requirements.txt # Python依赖
│ │ └── Dockerfile # 后端容器配置
│ ├── frontend/ # 前端应用
│ │ ├── src/ # React源码
│ │ ├── package.json # Node.js依赖
│ │ └── Dockerfile # 前端容器配置
│ ├── nginx/ # 反向代理配置
│ ├── monitoring/ # 监控配置
│ ├── k8s/ # Kubernetes配置
│ ├── docker-compose.yml # 生产环境配置
│ ├── docker-dev.yml # 开发环境配置
│ └── README.md # 详细文档
├── data/ # 数据文件
├── SOP_QA_System_PRD.md # 产品需求文档
├── development_plan.md # 开发计划
├── deepseekAPI.md # DeepSeek API文档
└── Qwen3-embeddingAPI.md # Qwen3嵌入API文档
- Docker 20.10+
- Docker Compose 2.0+
- 4GB+ RAM
- 20GB+ 可用磁盘空间
git clone <repository-url>
cd langchaincd sop-qa-system
cp .env.example .env
# 编辑.env文件,设置OpenAI API密钥等配置
vim .env# 使用Make命令启动
make deploy-dev
# 或直接使用docker-compose
docker-compose -f docker-dev.yml up -d- 前端应用: http://localhost:3000
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
- 监控面板: http://localhost:3001 (Grafana)
docker-compose -f docker-dev.yml exec backend python scripts/create_superuser.py# 启动开发环境
cd sop-qa-system
make dev-up
# 查看日志
make dev-logs
# 运行测试
make test
# 代码检查
make lint# 数据库迁移
make migrate-dev
# 创建新迁移
docker-compose exec backend alembic revision --autogenerate -m "描述"# 生产环境部署
make deploy
# 检查服务状态
make status
# 查看日志
make logs# 应用Kubernetes配置
kubectl apply -f k8s/
# 检查部署状态
kubectl get pods- Grafana: http://localhost:3001 (admin/admin123)
- Prometheus: http://localhost:9090
- 向量数据库索引优化
- Redis缓存策略调整
- 数据库查询优化
- 异步任务队列监控
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
- 后端: 遵循PEP 8规范,使用black和flake8
- 前端: 遵循ESLint和Prettier配置
- 提交信息: 使用conventional commits格式
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
感谢以下开源项目的支持:
- LangChain - AI应用开发框架
- FastAPI - 现代Python Web框架
- React - 前端UI框架
- Elasticsearch - 搜索和分析引擎
- PostgreSQL - 关系数据库
- Redis - 内存数据库
如果您遇到问题或需要帮助:
注意: 本项目仍在积极开发中,欢迎提交Issue和Pull Request!