企业人工智能知识助理(基于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 .env2.使用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服务器地址 |
______________________________________________________________________
🔒 安全功能
- JWT身份验证 带有访问/刷新令牌
- 基于角色的访问控制 用于工具和文档
- SQL注入防护 (仅选择查询)
- 审计日志 对于所有操作
- 基于部门的文档过滤
- 非根Docker容器
______________________________________________________________________
📊 监控
- 健康检查:
GET /health - 审核日志:
GET /api/v1/admin/audit-logs(仅限管理员) - 系统统计信息:
GET /api/v1/admin/stats(仅限管理员)
______________________________________________________________________
🧪 测试
cd backend
pytest tests/ -v______________________________________________________________________
📝 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
