435 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			435 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
# Mistral + KAG 资源配置完整指南
 | 
						|
 | 
						|
## 🎯 资源配置策略概览
 | 
						|
 | 
						|
### 配置原则
 | 
						|
```
 | 
						|
资源配置策略:
 | 
						|
├── 成本优化 (免费资源优先)
 | 
						|
├── 性能平衡 (避免瓶颈)
 | 
						|
├── 扩展性 (支持业务增长)
 | 
						|
└── 可靠性 (生产级稳定)
 | 
						|
```
 | 
						|
 | 
						|
## 💰 免费资源配置方案
 | 
						|
 | 
						|
### 1. Mistral模型资源
 | 
						|
 | 
						|
#### OpenRouter免费额度
 | 
						|
```yaml
 | 
						|
# OpenRouter Mistral配置
 | 
						|
mistral_config:
 | 
						|
  provider: "openrouter"
 | 
						|
  models:
 | 
						|
    free_tier:
 | 
						|
      - model: "mistralai/mistral-7b-instruct:free"
 | 
						|
        limit: "200 requests/day"
 | 
						|
        context: "32k tokens"
 | 
						|
        cost: "$0"
 | 
						|
      - model: "mistralai/mixtral-8x7b-instruct:free" 
 | 
						|
        limit: "20 requests/day"
 | 
						|
        context: "32k tokens"
 | 
						|
        cost: "$0"
 | 
						|
    
 | 
						|
  api_config:
 | 
						|
    base_url: "https://openrouter.ai/api/v1"
 | 
						|
    api_key: "${OPENROUTER_API_KEY}"
 | 
						|
    headers:
 | 
						|
      HTTP-Referer: "https://your-domain.com"
 | 
						|
      X-Title: "太公心易系统"
 | 
						|
```
 | 
						|
 | 
						|
#### 官方Mistral免费层
 | 
						|
```yaml
 | 
						|
# Mistral官方免费配置
 | 
						|
mistral_official:
 | 
						|
  provider: "mistral"
 | 
						|
  free_tier:
 | 
						|
    model: "mistral-small-latest"
 | 
						|
    limit: "1M tokens/month"
 | 
						|
    context: "32k tokens"
 | 
						|
    cost: "$0"
 | 
						|
  
 | 
						|
  api_config:
 | 
						|
    base_url: "https://api.mistral.ai/v1"
 | 
						|
    api_key: "${MISTRAL_API_KEY}"
 | 
						|
```
 | 
						|
 | 
						|
### 2. KAG部署资源
 | 
						|
 | 
						|
#### 轻量级部署配置
 | 
						|
```yaml
 | 
						|
# KAG轻量级配置
 | 
						|
kag_config:
 | 
						|
  deployment_mode: "lightweight"
 | 
						|
  
 | 
						|
  # 计算资源
 | 
						|
  compute:
 | 
						|
    cpu: "4 cores"
 | 
						|
    memory: "8GB RAM"
 | 
						|
    storage: "50GB SSD"
 | 
						|
    gpu: "optional (CPU推理)"
 | 
						|
  
 | 
						|
  # 组件配置
 | 
						|
  components:
 | 
						|
    knowledge_extractor:
 | 
						|
      model: "BAAI/bge-large-zh-v1.5"  # 免费开源
 | 
						|
      device: "cpu"
 | 
						|
      batch_size: 16
 | 
						|
    
 | 
						|
    graph_builder:
 | 
						|
      backend: "networkx"  # 轻量级图库
 | 
						|
      storage: "sqlite"    # 本地存储
 | 
						|
    
 | 
						|
    reasoning_engine:
 | 
						|
      type: "hybrid"
 | 
						|
      symbolic_engine: "owlready2"  # 开源
 | 
						|
      neural_engine: "mistral"     # 通过API
 | 
						|
```
 | 
						|
 | 
						|
## 🏗️ 资源架构设计
 | 
						|
 | 
						|
### 分层资源配置
 | 
						|
```
 | 
						|
资源分层架构:
 | 
						|
┌─────────────────────────────────────┐
 | 
						|
│  应用层资源                          │
 | 
						|
│  - N8N: 1GB RAM                    │
 | 
						|
│  - 太公心易UI: 512MB RAM             │
 | 
						|
├─────────────────────────────────────┤
 | 
						|
│  智能体层资源                        │
 | 
						|
│  - AutoGen: 2GB RAM                │
 | 
						|
│  - 11仙智能体: 共享Mistral API       │
 | 
						|
├─────────────────────────────────────┤
 | 
						|
│  认知中间件层资源                    │
 | 
						|
│  - KAG服务: 4GB RAM, 4 CPU         │
 | 
						|
│  - 知识图谱: 2GB存储                │
 | 
						|
├─────────────────────────────────────┤
 | 
						|
│  模型层资源                         │
 | 
						|
│  - Mistral API: 免费额度            │
 | 
						|
│  - BGE嵌入: 本地CPU推理             │
 | 
						|
├─────────────────────────────────────┤
 | 
						|
│  数据层资源                         │
 | 
						|
│  - Milvus: 4GB RAM, 20GB存储       │
 | 
						|
│  - MongoDB: 2GB RAM, 10GB存储      │
 | 
						|
└─────────────────────────────────────┘
 | 
						|
 | 
						|
总计: 16GB RAM, 8 CPU, 80GB存储
 | 
						|
```
 | 
						|
 | 
						|
## 🐳 Docker Compose配置
 | 
						|
 | 
						|
### 完整的容器化部署
 | 
						|
```yaml
 | 
						|
# docker-compose.yml
 | 
						|
version: '3.8'
 | 
						|
 | 
						|
services:
 | 
						|
  # KAG知识中间件
 | 
						|
  kag-service:
 | 
						|
    image: kag:latest
 | 
						|
    container_name: taigong-kag
 | 
						|
    ports:
 | 
						|
      - "8080:8080"
 | 
						|
    environment:
 | 
						|
      - MISTRAL_API_KEY=${MISTRAL_API_KEY}
 | 
						|
      - OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
 | 
						|
      - KAG_MODE=lightweight
 | 
						|
    volumes:
 | 
						|
      - ./kag_data:/app/data
 | 
						|
      - ./kag_config:/app/config
 | 
						|
    mem_limit: 4g
 | 
						|
    cpus: 2.0
 | 
						|
    restart: unless-stopped
 | 
						|
    depends_on:
 | 
						|
      - milvus
 | 
						|
      - mongodb
 | 
						|
 | 
						|
  # Milvus向量数据库
 | 
						|
  milvus:
 | 
						|
    image: milvusdb/milvus:latest
 | 
						|
    container_name: taigong-milvus
 | 
						|
    ports:
 | 
						|
      - "19530:19530"
 | 
						|
    environment:
 | 
						|
      - ETCD_ENDPOINTS=etcd:2379
 | 
						|
      - MINIO_ADDRESS=minio:9000
 | 
						|
    volumes:
 | 
						|
      - ./milvus_data:/var/lib/milvus
 | 
						|
    mem_limit: 4g
 | 
						|
    cpus: 2.0
 | 
						|
    restart: unless-stopped
 | 
						|
 | 
						|
  # MongoDB文档数据库
 | 
						|
  mongodb:
 | 
						|
    image: mongo:latest
 | 
						|
    container_name: taigong-mongodb
 | 
						|
    ports:
 | 
						|
      - "27017:27017"
 | 
						|
    environment:
 | 
						|
      - MONGO_INITDB_ROOT_USERNAME=admin
 | 
						|
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
 | 
						|
    volumes:
 | 
						|
      - ./mongo_data:/data/db
 | 
						|
    mem_limit: 2g
 | 
						|
    cpus: 1.0
 | 
						|
    restart: unless-stopped
 | 
						|
 | 
						|
  # N8N工作流
 | 
						|
  n8n:
 | 
						|
    image: n8nio/n8n:latest
 | 
						|
    container_name: taigong-n8n
 | 
						|
    ports:
 | 
						|
      - "5678:5678"
 | 
						|
    environment:
 | 
						|
      - N8N_BASIC_AUTH_ACTIVE=true
 | 
						|
      - N8N_BASIC_AUTH_USER=${N8N_USER}
 | 
						|
      - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
 | 
						|
      - WEBHOOK_URL=https://your-domain.com
 | 
						|
    volumes:
 | 
						|
      - ./n8n_data:/home/node/.n8n
 | 
						|
    mem_limit: 1g
 | 
						|
    cpus: 1.0
 | 
						|
    restart: unless-stopped
 | 
						|
 | 
						|
  # 太公心易应用
 | 
						|
  taigong-app:
 | 
						|
    build: ./app
 | 
						|
    container_name: taigong-xinyi
 | 
						|
    ports:
 | 
						|
      - "8501:8501"
 | 
						|
    environment:
 | 
						|
      - KAG_API_URL=http://kag-service:8080
 | 
						|
      - MISTRAL_API_KEY=${MISTRAL_API_KEY}
 | 
						|
    volumes:
 | 
						|
      - ./app_data:/app/data
 | 
						|
    mem_limit: 1g
 | 
						|
    cpus: 1.0
 | 
						|
    restart: unless-stopped
 | 
						|
    depends_on:
 | 
						|
      - kag-service
 | 
						|
 | 
						|
  # Redis缓存
 | 
						|
  redis:
 | 
						|
    image: redis:alpine
 | 
						|
    container_name: taigong-redis
 | 
						|
    ports:
 | 
						|
      - "6379:6379"
 | 
						|
    volumes:
 | 
						|
      - ./redis_data:/data
 | 
						|
    mem_limit: 512m
 | 
						|
    cpus: 0.5
 | 
						|
    restart: unless-stopped
 | 
						|
 | 
						|
# 网络配置
 | 
						|
networks:
 | 
						|
  default:
 | 
						|
    name: taigong-network
 | 
						|
    driver: bridge
 | 
						|
 | 
						|
# 数据卷
 | 
						|
volumes:
 | 
						|
  kag_data:
 | 
						|
  milvus_data:
 | 
						|
  mongo_data:
 | 
						|
  n8n_data:
 | 
						|
  app_data:
 | 
						|
  redis_data:
 | 
						|
```
 | 
						|
 | 
						|
## ⚙️ 环境变量配置
 | 
						|
 | 
						|
### .env文件
 | 
						|
```bash
 | 
						|
# .env
 | 
						|
# API密钥
 | 
						|
MISTRAL_API_KEY=your_mistral_api_key
 | 
						|
OPENROUTER_API_KEY=your_openrouter_key
 | 
						|
COHERE_API_KEY=your_cohere_key
 | 
						|
 | 
						|
# 数据库配置
 | 
						|
MONGO_PASSWORD=your_mongo_password
 | 
						|
REDIS_PASSWORD=your_redis_password
 | 
						|
 | 
						|
# N8N配置
 | 
						|
N8N_USER=admin
 | 
						|
N8N_PASSWORD=your_n8n_password
 | 
						|
 | 
						|
# KAG配置
 | 
						|
KAG_MODE=lightweight
 | 
						|
KAG_LOG_LEVEL=INFO
 | 
						|
 | 
						|
# Milvus配置
 | 
						|
MILVUS_HOST=milvus
 | 
						|
MILVUS_PORT=19530
 | 
						|
 | 
						|
# 应用配置
 | 
						|
APP_ENV=production
 | 
						|
APP_DEBUG=false
 | 
						|
```
 | 
						|
 | 
						|
## 📊 资源监控配置
 | 
						|
 | 
						|
### Prometheus + Grafana监控
 | 
						|
```yaml
 | 
						|
# monitoring/docker-compose.monitoring.yml
 | 
						|
version: '3.8'
 | 
						|
 | 
						|
services:
 | 
						|
  prometheus:
 | 
						|
    image: prom/prometheus:latest
 | 
						|
    container_name: taigong-prometheus
 | 
						|
    ports:
 | 
						|
      - "9090:9090"
 | 
						|
    volumes:
 | 
						|
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
 | 
						|
      - prometheus_data:/prometheus
 | 
						|
    command:
 | 
						|
      - '--config.file=/etc/prometheus/prometheus.yml'
 | 
						|
      - '--storage.tsdb.path=/prometheus'
 | 
						|
    mem_limit: 1g
 | 
						|
    cpus: 0.5
 | 
						|
 | 
						|
  grafana:
 | 
						|
    image: grafana/grafana:latest
 | 
						|
    container_name: taigong-grafana
 | 
						|
    ports:
 | 
						|
      - "3000:3000"
 | 
						|
    environment:
 | 
						|
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
 | 
						|
    volumes:
 | 
						|
      - grafana_data:/var/lib/grafana
 | 
						|
      - ./grafana/dashboards:/etc/grafana/provisioning/dashboards
 | 
						|
    mem_limit: 512m
 | 
						|
    cpus: 0.5
 | 
						|
 | 
						|
volumes:
 | 
						|
  prometheus_data:
 | 
						|
  grafana_data:
 | 
						|
```
 | 
						|
 | 
						|
## 💡 成本优化策略
 | 
						|
 | 
						|
### 免费资源最大化利用
 | 
						|
```python
 | 
						|
# 智能API路由配置
 | 
						|
class APIResourceManager:
 | 
						|
    def __init__(self):
 | 
						|
        self.providers = {
 | 
						|
            "openrouter_free": {
 | 
						|
                "daily_limit": 200,
 | 
						|
                "current_usage": 0,
 | 
						|
                "models": ["mistral-7b-instruct:free"]
 | 
						|
            },
 | 
						|
            "mistral_free": {
 | 
						|
                "monthly_limit": 1000000,  # tokens
 | 
						|
                "current_usage": 0,
 | 
						|
                "models": ["mistral-small-latest"]
 | 
						|
            },
 | 
						|
            "local_models": {
 | 
						|
                "unlimited": True,
 | 
						|
                "models": ["bge-large-zh-v1.5"]
 | 
						|
            }
 | 
						|
        }
 | 
						|
    
 | 
						|
    def get_best_provider(self, task_type, complexity):
 | 
						|
        """智能选择最佳提供商"""
 | 
						|
        if task_type == "embedding":
 | 
						|
            return "local_models"
 | 
						|
        
 | 
						|
        if complexity == "simple" and self.providers["openrouter_free"]["current_usage"] < 180:
 | 
						|
            return "openrouter_free"
 | 
						|
        
 | 
						|
        if self.providers["mistral_free"]["current_usage"] < 900000:
 | 
						|
            return "mistral_free"
 | 
						|
        
 | 
						|
        # 降级到本地模型
 | 
						|
        return "local_models"
 | 
						|
```
 | 
						|
 | 
						|
## 🚀 部署脚本
 | 
						|
 | 
						|
### 一键部署脚本
 | 
						|
```bash
 | 
						|
#!/bin/bash
 | 
						|
# deploy.sh
 | 
						|
 | 
						|
echo "🚀 开始部署太公心易 + KAG + Mistral系统..."
 | 
						|
 | 
						|
# 1. 检查依赖
 | 
						|
echo "📋 检查系统依赖..."
 | 
						|
command -v docker >/dev/null 2>&1 || { echo "请先安装Docker"; exit 1; }
 | 
						|
command -v docker-compose >/dev/null 2>&1 || { echo "请先安装Docker Compose"; exit 1; }
 | 
						|
 | 
						|
# 2. 创建目录结构
 | 
						|
echo "📁 创建目录结构..."
 | 
						|
mkdir -p {kag_data,milvus_data,mongo_data,n8n_data,app_data,redis_data}
 | 
						|
mkdir -p {kag_config,monitoring}
 | 
						|
 | 
						|
# 3. 检查环境变量
 | 
						|
echo "🔑 检查环境变量..."
 | 
						|
if [ ! -f .env ]; then
 | 
						|
    echo "请先配置.env文件"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# 4. 启动服务
 | 
						|
echo "🐳 启动Docker服务..."
 | 
						|
docker-compose up -d
 | 
						|
 | 
						|
# 5. 等待服务就绪
 | 
						|
echo "⏳ 等待服务启动..."
 | 
						|
sleep 30
 | 
						|
 | 
						|
# 6. 健康检查
 | 
						|
echo "🏥 执行健康检查..."
 | 
						|
curl -f http://localhost:8080/health || echo "KAG服务未就绪"
 | 
						|
curl -f http://localhost:19530/health || echo "Milvus服务未就绪"
 | 
						|
curl -f http://localhost:5678/healthz || echo "N8N服务未就绪"
 | 
						|
 | 
						|
echo "✅ 部署完成!"
 | 
						|
echo "🌐 访问地址:"
 | 
						|
echo "  - 太公心易应用: http://localhost:8501"
 | 
						|
echo "  - N8N工作流: http://localhost:5678"
 | 
						|
echo "  - KAG API: http://localhost:8080"
 | 
						|
echo "  - 监控面板: http://localhost:3000"
 | 
						|
```
 | 
						|
 | 
						|
## 📈 扩展配置
 | 
						|
 | 
						|
### 生产环境扩展
 | 
						|
```yaml
 | 
						|
# 生产环境资源配置
 | 
						|
production_config:
 | 
						|
  compute:
 | 
						|
    cpu: "16 cores"
 | 
						|
    memory: "64GB RAM"
 | 
						|
    storage: "500GB SSD"
 | 
						|
    gpu: "NVIDIA T4 (可选)"
 | 
						|
  
 | 
						|
  high_availability:
 | 
						|
    replicas: 3
 | 
						|
    load_balancer: "nginx"
 | 
						|
    failover: "automatic"
 | 
						|
  
 | 
						|
  monitoring:
 | 
						|
    metrics: "prometheus"
 | 
						|
    logging: "elasticsearch"
 | 
						|
    alerting: "alertmanager"
 | 
						|
```
 | 
						|
 | 
						|
## 🎯 总结
 | 
						|
 | 
						|
**推荐的资源配置策略:**
 | 
						|
 | 
						|
1. **开发/测试**: 使用免费API + 轻量级部署
 | 
						|
2. **小规模生产**: 混合免费+付费API + 中等资源
 | 
						|
3. **大规模生产**: 私有化部署 + 充足资源
 | 
						|
 | 
						|
**关键配置要点:**
 | 
						|
- ✅ 充分利用免费API额度
 | 
						|
- ✅ 智能路由避免超限
 | 
						|
- ✅ 容器化部署便于扩展
 | 
						|
- ✅ 监控资源使用情况
 | 
						|
 | 
						|
想要我帮你根据你的具体需求调整这个配置方案吗?🤔 |