企业AI知识助手

一个企业级AI助手,允许员工使用自然语言查询内部知识(文档、数据库、GitHub、Jira),采用MCP协议和RAG技术提供安全的AI响应。

  • by Raul909
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Raul909/Enterprise-AI-assistant

使用说明

企业人工智能知识助理(基于MCP)

企业级AI助手,使员工能够使用自然语言查询内部知识(文档、数据库、GitHub、Jira)。系统使用 模型上下文协议(MCP) 安全地编排工具和 检索增强生成(RAG) 用于接地AI响应。


🚀 主要特点

  • 自然语言查询 -用简单的英语询问有关公司数据的问题
  • 现代React用户界面 -美观、专业的界面,实时聊天
  • MCP工具编排 -通过模型上下文协议安全、可审计地执行工具
  • 多源RAG -搜索文档、数据库、GitHub和Jira
  • 基于角色的访问控制(RBAC) -每个用户角色的细粒度权限
  • 多LLM支持 -使用OpenAI GPT-4或拟人克劳德
  • 审计日志 -跟踪所有查询和工具执行情况
  • 对话记忆 -情境感知后续问题

🏗 建筑

┌─────────────────────────────────────────────────────────────┐
│                      Frontend (Optional)                     │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                   FastAPI Backend (8000)                     │
│  ┌──────────┐  ┌──────────────┐  ┌────────────────────────┐ │
│  │   Auth   │  │ AI Orchestr. │  │   RAG Service          │ │
│  │  (JWT)   │  │  (LLM + MCP) │  │   (FAISS + Embeddings) │ │
│  └──────────┘  └──────┬───────┘  └────────────────────────┘ │
└─────────────────────────┼───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                   MCP Server (3333)                          │
│  ┌────────────────────────────────────────────────────────┐ │
│  │ Tools: Documents | Database | GitHub | Jira            │ │
│  └────────────────────────────────────────────────────────┘ │
└───────────────────────────┬─────────────────────────────────┘
                            │
  ┌─────────────────────────┼─────────────────────────────────┐
  │                         │                                  │
  ▼                         ▼                                  ▼
┌──────────┐         ┌──────────────┐                  ┌────────────┐
│PostgreSQL│         │ Vector Store │                  │ External   │
│ (Users,  │         │   (FAISS)    │                  │ APIs       │
│  Logs)   │         │              │                  │(GitHub,    │
└──────────┘         └──────────────┘                  │ Jira)      │
                                                       └────────────┘

🛠 技术栈

层 技术
前端 React 18,快速,清晰的图标
后端 Python 3.11、FastAPI、SQLAlchemy、Pydantic
人工智能 OpenAI GPT-4/拟人克劳德,句子转换器,FAISS
主控程序 带有工具注册表的自定义MCP服务器
认证 JWT(python jose),加密
数据库 PostgreSQL、Redis(缓存)
基础设施 Docker,Docker编写

📁 项目结构

enterprise-ai-assistant/
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── Login.jsx
│   │   │   ├── Login.css
│   │   │   ├── Chat.jsx
│   │   │   └── Chat.css
│   │   ├── App.jsx
│   │   ├── api.js
│   │   ├── main.jsx
│   │   └── index.css
│   ├── index.html
│   ├── vite.config.js
│   └── package.json
├── backend/
│   ├── app/
│   │   ├── api/v1/          # REST endpoints
│   │   │   ├── auth.py      # Authentication endpoints
│   │   │   ├── chat.py      # Chat/query endpoints
│   │   │   └── admin.py     # Admin endpoints
│   │   ├── core/            # Core utilities
│   │   │   ├── config.py    # Settings management
│   │   │   ├── security.py  # JWT & auth
│   │   │   └── logging.py   # Structured logging
│   │   ├── db/              # Database layer
│   │   ├── models/          # SQLAlchemy models
│   │   ├── schemas/         # Pydantic schemas
│   │   ├── services/        # Business logic
│   │   │   ├── ai_orchestrator.py
│   │   │   ├── mcp_client.py
│   │   │   ├── rag_service.py
│   │   │   └── permission_service.py
│   │   └── main.py          # Application entry
│   └── requirements.txt
├── mcp-server/
│   ├── tools/               # Tool implementations
│   │   ├── document_tool.py
│   │   ├── database_tool.py
│   │   ├── github_tool.py
│   │   └── jira_tool.py
│   ├── server.py            # MCP server
│   ├── permissions.py       # RBAC
│   └── requirements.txt
├── vector-store/
│   ├── ingest.py            # Document ingestion
│   └── search.py            # Semantic search
├── docker/
│   ├── docker-compose.yaml
│   ├── backend.Dockerfile
│   └── mcp.Dockerfile
├── .env.example
└── README.md

🚀 快速开始

先决条件

  • Python 3.11+
  • Docker&Docker编写
  • OpenAI API密钥或Anthropic API密钥

1.克隆和配置

cd /home/raul/Downloads/enterprise-ai-assistant

# Copy environment template
cp .env.example .env

# Edit .env with your API keys
nano .env

2.使用Docker运行(推荐)

cd docker
docker-compose up -d

这将开始:

  • 端口5432上的PostgreSQL数据库
  • 端口6379上的Redis缓存
  • 端口3333上的MCP服务器
  • 端口8000上的后端API

3.本地运行(开发)

# Terminal 1: Start MCP Server
cd mcp-server
pip install -r requirements.txt
uvicorn server:app --host 0.0.0.0 --port 3333 --reload

# Terminal 2: Start Backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

# Terminal 3: Start Frontend
cd frontend
npm install
npm run dev

访问UIhttp://localhost:3000


📖 API使用

认证

# Register
curl -X POST http://localhost:8000/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "user@company.com", "password": "securepass123"}'

# Login
curl -X POST http://localhost:8000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@company.com", "password": "securepass123"}'

# Response: {"access_token": "eyJ...", "token_type": "bearer", ...}

聊天/查询

# Ask a question
curl -X POST http://localhost:8000/api/v1/chat \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "What are the company vacation policies?"}'

# Response includes answer, sources, and tools used

可用工具(按角色)

角色 工具
员工 搜索文档
经理 search_documents,query_database,search_jira,get_jira_ticket
管理员 所有工具,包括GitHub集成

⚙️ 配置

关键环境变量(参见 .env.example 完整列表):

变量 描述 默认值
AI_PROVIDER 法学硕士提供者(openai/anthropic) openai
OPENAI_API_KEY OpenAI API密钥 -
DATABASE_URL PostgreSQL连接字符串 -
JWT_SECRET_KEY JWT代币的秘密 -
MCP_SERVER_URL MCP服务器地址 http://localhost:3333

🔒 安全功能

  • JWT身份验证 带有访问/刷新令牌
  • 基于角色的访问控制 用于工具和文档
  • SQL注入防护 (仅选择查询)
  • 审计日志 对于所有操作
  • 基于部门的文档过滤
  • 非根Docker容器

📊 监控

  • 健康检查: GET /health
  • 审核日志: GET /api/v1/admin/audit-logs (仅限管理员)
  • 系统统计信息: GET /api/v1/admin/stats (仅限管理员)

🧪 测试

cd backend
pytest tests/ -v

📝 许可证

MIT许可证-有关详细信息,请参阅许可证文件。