企业级智能体平台MaxKB部署实战3种高可用方案详解【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKBMaxKBMax Knowledge Brain是一个强大易用的开源企业级智能体平台支持RAG检索增强生成、工作流编排和多模态AI应用。本文将为您提供最全面的MaxKB部署方案涵盖从快速启动到生产级高可用架构的全方位技术指导。技术架构概述MaxKB采用现代化的微服务架构设计基于DjangoVue.js技术栈构建集成了LangChain框架和pgvector向量数据库为企业级AI应用提供完整的解决方案。平台核心架构包括前端界面层基于Vue.js构建的现代化管理界面后端服务层Django REST框架提供API服务AI处理层LangChain集成多模型支持数据存储层PostgreSQL pgvector实现向量检索任务队列层Celery处理异步任务缓存层Redis提供高性能缓存支持部署方案对比MaxKB提供多种部署方式满足不同场景需求。以下是各方案的详细对比部署方案适用场景优点缺点推荐环境Docker单容器开发测试、快速体验部署简单、启动快速单点故障、扩展性差开发环境Docker Compose中小型生产环境服务分离、易于管理需要手动扩缩容中小型生产Kubernetes集群大型企业生产环境高可用、自动扩缩容配置复杂、运维成本高企业级生产方案一Docker快速部署环境要求与准备在开始部署前请确保系统满足以下最低要求Docker 20.10 或 Docker Compose 2.04GB以上可用内存2核CPU以上配置10GB以上磁盘空间Linux/Windows/macOS系统一键启动命令# Linux/macOS系统 docker run -d --namemaxkb --restartalways \ -p 8080:8080 \ -v ~/.maxkb:/opt/maxkb \ -e MAXKB_DB_PASSWORDyour_password \ -e MAXKB_REDIS_PASSWORDyour_password \ registry.fit2cloud.com/maxkb/maxkb # Windows系统 docker run -d --namemaxkb --restartalways ^ -p 8080:8080 ^ -v C:/maxkb:/opt/maxkb ^ -e MAXKB_DB_PASSWORDyour_password ^ -e MAXKB_REDIS_PASSWORDyour_password ^ registry.fit2cloud.com/maxkb/maxkb环境变量配置核心环境变量配置# 数据库配置 MAXKB_DB_HOST127.0.0.1 MAXKB_DB_PORT5432 MAXKB_DB_NAMEmaxkb MAXKB_DB_USERpostgres MAXKB_DB_PASSWORDyour_secure_password # Redis配置 MAXKB_REDIS_HOST127.0.0.1 MAXKB_REDIS_PORT6379 MAXKB_REDIS_PASSWORDyour_secure_password # 嵌入模型配置 MAXKB_EMBEDDING_MODEL_PATH/opt/maxkb-app/model/embedding MAXKB_EMBEDDING_MODEL_NAMEshibing624_text2vec-base-chinese方案二Docker Compose生产部署Compose文件配置创建docker-compose.yml文件version: 3.8 services: postgres: image: postgres:17-alpine container_name: maxkb-postgres restart: always environment: POSTGRES_DB: maxkb POSTGRES_USER: maxkb_user POSTGRES_PASSWORD: ${DB_PASSWORD} PGDATA: /var/lib/postgresql/data/pgdata volumes: - postgres_data:/var/lib/postgresql/data networks: - maxkb-network healthcheck: test: [CMD-SHELL, pg_isready -U maxkb_user] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: maxkb-redis restart: always command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data networks: - maxkb-network healthcheck: test: [CMD, redis-cli, ping] interval: 10s timeout: 5s retries: 5 maxkb: image: registry.fit2cloud.com/maxkb/maxkb:latest container_name: maxkb-app restart: always depends_on: postgres: condition: service_healthy redis: condition: service_healthy ports: - 8080:8080 environment: MAXKB_DB_HOST: postgres MAXKB_DB_PORT: 5432 MAXKB_DB_NAME: maxkb MAXKB_DB_USER: maxkb_user MAXKB_DB_PASSWORD: ${DB_PASSWORD} MAXKB_REDIS_HOST: redis MAXKB_REDIS_PORT: 6379 MAXKB_REDIS_PASSWORD: ${REDIS_PASSWORD} volumes: - maxkb_data:/opt/maxkb - ./models:/opt/maxkb-app/model networks: - maxkb-network volumes: postgres_data: redis_data: maxkb_data: networks: maxkb-network: driver: bridge部署与启动创建环境变量文件echo DB_PASSWORD$(openssl rand -base64 32) .env echo REDIS_PASSWORD$(openssl rand -base64 32) .env启动服务docker-compose up -d验证部署# 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f maxkb-app # 健康检查 curl http://localhost:8080/api/health方案三Kubernetes高可用部署集群架构设计对于企业级生产环境推荐使用Kubernetes部署方案确保高可用性和弹性伸缩# maxkb-namespace.yaml apiVersion: v1 kind: Namespace metadata: name: maxkb数据库与缓存配置# postgres-statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: postgres namespace: maxkb spec: serviceName: postgres replicas: 3 selector: matchLabels: app: postgres template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:17-alpine env: - name: POSTGRES_DB value: maxkb - name: POSTGRES_USER value: maxkb_user - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: maxkb-secrets key: db-password ports: - containerPort: 5432 volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data resources: requests: memory: 2Gi cpu: 1000m limits: memory: 4Gi cpu: 2000m volumeClaimTemplates: - metadata: name: postgres-data spec: accessModes: [ ReadWriteOnce ] resources: requests: storage: 50GiMaxKB应用部署# maxkb-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: maxkb namespace: maxkb spec: replicas: 3 selector: matchLabels: app: maxkb template: metadata: labels: app: maxkb spec: containers: - name: maxkb image: registry.fit2cloud.com/maxkb/maxkb:latest env: - name: MAXKB_DB_HOST value: postgres.maxkb.svc.cluster.local - name: MAXKB_DB_PORT value: 5432 - name: MAXKB_DB_NAME value: maxkb - name: MAXKB_DB_USER value: maxkb_user - name: MAXKB_DB_PASSWORD valueFrom: secretKeyRef: name: maxkb-secrets key: db-password - name: MAXKB_REDIS_HOST value: redis.maxkb.svc.cluster.local - name: MAXKB_REDIS_PORT value: 6379 - name: MAXKB_REDIS_PASSWORD valueFrom: secretKeyRef: name: maxkb-secrets key: redis-password ports: - containerPort: 8080 livenessProbe: httpGet: path: /api/health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /api/health port: 8080 initialDelaySeconds: 5 periodSeconds: 5 resources: requests: memory: 2Gi cpu: 1000m limits: memory: 4Gi cpu: 2000m volumeMounts: - name: models mountPath: /opt/maxkb-app/model - name: data mountPath: /opt/maxkb volumes: - name: models persistentVolumeClaim: claimName: models-pvc - name: data persistentVolumeClaim: claimName:># maxkb-service.yaml apiVersion: v1 kind: Service metadata: name: maxkb namespace: maxkb spec: selector: app: maxkb ports: - port: 8080 targetPort: 8080 type: ClusterIP # maxkb-ingress.yaml (使用Ingress-Nginx) apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: maxkb-ingress namespace: maxkb annotations: nginx.ingress.kubernetes.io/ssl-redirect: true nginx.ingress.kubernetes.io/force-ssl-redirect: true nginx.ingress.kubernetes.io/proxy-body-size: 100m spec: tls: - hosts: - maxkb.your-domain.com secretName: maxkb-tls rules: - host: maxkb.your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: maxkb port: number: 8080配置详解与优化数据库性能优化PostgreSQL配置优化建议-- 连接池配置 ALTER SYSTEM SET max_connections 200; ALTER SYSTEM SET shared_buffers 4GB; ALTER SYSTEM SET effective_cache_size 12GB; ALTER SYSTEM SET maintenance_work_mem 1GB; ALTER SYSTEM SET checkpoint_completion_target 0.9; ALTER SYSTEM SET wal_buffers 16MB; ALTER SYSTEM SET default_statistics_target 100; -- pgvector扩展安装 CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS btree_gin;Redis缓存配置Redis性能优化配置# redis.conf maxmemory 2gb maxmemory-policy allkeys-lru save 900 1 save 300 10 save 60 10000 appendonly yes appendfsync everysec嵌入模型配置MaxKB支持多种嵌入模型配置示例# 本地模型配置 MAXKB_EMBEDDING_MODEL_NAME: shibing624_text2vec-base-chinese MAXKB_EMBEDDING_MODEL_PATH: /opt/maxkb-app/model/embedding # 在线模型配置如OpenAI MAXKB_OPENAI_API_KEY: your_api_key MAXKB_EMBEDDING_MODEL: text-embedding-3-small多模型支持配置MaxKB支持丰富的模型提供商配置文件位置apps/models_provider/impl/支持的模型提供商包括OpenAI、Claude、Gemini等国际模型通义千问、DeepSeek、智谱GLM等国内模型本地部署模型Ollama、vLLM等运维监控方案日志收集与分析配置集中式日志收集# Docker日志驱动配置 docker run -d --namemaxkb \ --log-driverloki \ --log-opt loki-urlhttp://localhost:3100/loki/api/v1/push \ --log-opt loki-retries5 \ --log-opt loki-batch-size400 \ registry.fit2cloud.com/maxkb/maxkb性能监控指标关键监控指标配置# Prometheus监控配置 scrape_configs: - job_name: maxkb static_configs: - targets: [maxkb:8080] metrics_path: /api/metrics scrape_interval: 15s健康检查端点MaxKB提供以下健康检查端点GET /api/health- 应用健康状态GET /api/metrics- 性能指标GET /api/status- 系统状态故障排除指南常见问题与解决方案问题1容器启动失败# 查看详细日志 docker logs maxkb --tail 100 # 常见原因端口冲突 # 解决方案更换端口或停止占用端口的服务 docker run -p 8081:8080 ...问题2数据库连接失败# 检查数据库服务状态 docker-compose ps postgres # 检查连接配置 docker exec -it maxkb-app python -c import psycopg2 try: conn psycopg2.connect( hostlocalhost, port5432, databasemaxkb, userpostgres, passwordyour_password ) print(Database connection successful) except Exception as e: print(fConnection failed: {e}) 问题3向量检索性能差-- 创建向量索引优化查询性能 CREATE INDEX idx_paragraph_embedding ON knowledge_paragraph USING ivfflat (embedding vector_cosine_ops) WITH (lists 100); -- 更新统计信息 VACUUM ANALYZE knowledge_paragraph;问题4内存使用过高# 调整Docker资源限制 docker run -d --namemaxkb \ --memory4g \ --memory-swap6g \ --cpus2.0 \ registry.fit2cloud.com/maxkb/maxkb性能调优建议数据库优化定期执行VACUUM ANALYZE调整shared_buffers和work_mem使用连接池减少连接开销Redis优化启用持久化AOFRDB配置合理的内存淘汰策略监控内存使用情况应用层优化调整Gunicorn worker数量启用HTTP压缩配置合理的超时时间向量检索优化选择合适的嵌入模型调整chunk大小和重叠使用HNSW索引优化查询安全最佳实践生产环境安全配置网络隔离# 使用内部网络 networks: maxkb-internal: internal: trueTLS/SSL配置# Nginx反向代理配置 server { listen 443 ssl http2; server_name maxkb.your-domain.com; ssl_certificate /etc/ssl/certs/maxkb.crt; ssl_certificate_key /etc/ssl/private/maxkb.key; location / { proxy_pass http://maxkb:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }访问控制# 配置防火墙规则 ufw allow 443/tcp ufw allow 22/tcp ufw --force enable数据备份与恢复定期备份策略#!/bin/bash # 备份脚本 BACKUP_DIR/backup/maxkb DATE$(date %Y%m%d_%H%M%S) # 备份数据库 docker exec maxkb-postgres pg_dump -U maxkb_user maxkb $BACKUP_DIR/db_backup_$DATE.sql # 备份配置文件 tar -czf $BACKUP_DIR/config_backup_$DATE.tar.gz /opt/maxkb/config # 备份向量模型 tar -czf $BACKUP_DIR/models_backup_$DATE.tar.gz /opt/maxkb-app/model # 保留最近7天备份 find $BACKUP_DIR -name *.sql -mtime 7 -delete find $BACKUP_DIR -name *.tar.gz -mtime 7 -delete扩展与集成API集成示例MaxKB提供完整的REST API接口支持与第三方系统集成import requests # 认证获取token auth_url http://localhost:8080/api/auth/login auth_data { username: admin, password: MaxKB123.. } response requests.post(auth_url, jsonauth_data) token response.json()[token] # 创建知识库 headers {Authorization: fBearer {token}} kb_data { name: 技术文档库, description: 公司技术文档知识库, type: document } kb_response requests.post( http://localhost:8080/api/knowledge, jsonkb_data, headersheaders ) # 上传文档 with open(technical_doc.pdf, rb) as f: files {file: f} upload_response requests.post( http://localhost:8080/api/knowledge/1/documents, filesfiles, headersheaders )工作流编排MaxKB支持可视化工作流编排配置文件位置apps/flow/step_node/工作流节点类型输入/输出节点条件判断节点循环控制节点API调用节点数据处理节点自定义模型集成通过配置文件集成自定义模型# 自定义模型配置文件示例 # apps/models_provider/impl/custom_model_provider/model_config.py from .base_model_provider import BaseModelProvider class CustomModelProvider(BaseModelProvider): def __init__(self): super().__init__() self.model_type custom self.supported_models [custom-model-1, custom-model-2] def chat_completion(self, messages, model, **kwargs): # 实现自定义模型调用逻辑 pass总结MaxKB作为企业级智能体平台提供了从快速部署到生产级高可用架构的完整解决方案。通过本文介绍的三种部署方案您可以根据实际需求选择最适合的部署方式开发测试使用Docker单容器快速启动中小型生产采用Docker Compose实现服务分离企业级生产基于Kubernetes构建高可用集群关键配置文档参考数据库配置apps/common/db/模型配置apps/models_provider/工作流配置apps/flow/系统设置apps/system_manage/通过合理的架构设计、性能优化和安全配置MaxKB能够稳定支撑企业级AI应用场景为智能客服、知识管理、业务流程自动化等场景提供强大的技术支撑。【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考