Skip to content

Rayinf/sop-qa-system

Repository files navigation

LangChain SOP Q&A System

基于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+ 可用磁盘空间

1. 克隆项目

git clone <repository-url>
cd langchain

2. 环境配置

cd sop-qa-system
cp .env.example .env
# 编辑.env文件,设置OpenAI API密钥等配置
vim .env

3. 启动开发环境

# 使用Make命令启动
make deploy-dev

# 或直接使用docker-compose
docker-compose -f docker-dev.yml up -d

4. 访问系统

5. 创建管理员账户

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 "描述"

🚀 生产部署

Docker部署

# 生产环境部署
make deploy

# 检查服务状态
make status

# 查看日志
make logs

Kubernetes部署

# 应用Kubernetes配置
kubectl apply -f k8s/

# 检查部署状态
kubectl get pods

📊 监控和维护

监控面板

性能优化

  • 向量数据库索引优化
  • Redis缓存策略调整
  • 数据库查询优化
  • 异步任务队列监控

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

代码规范

  • 后端: 遵循PEP 8规范,使用black和flake8
  • 前端: 遵循ESLint和Prettier配置
  • 提交信息: 使用conventional commits格式

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢以下开源项目的支持:

📞 支持

如果您遇到问题或需要帮助:

  1. 查看 详细文档
  2. 搜索现有的 Issues
  3. 创建新的 Issue

注意: 本项目仍在积极开发中,欢迎提交Issue和Pull Request!

About

基于LangChain和FastAPI的智能知识库问答系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors