首页
/ 2025最新版|BISHENG毕昇企业级LLM平台本地化部署全攻略:从环境配置到高可用架构

2025最新版|BISHENG毕昇企业级LLM平台本地化部署全攻略:从环境配置到高可用架构

2026-02-04 04:23:45作者:翟江哲Frasier

引言:企业级LLM平台部署的痛点与解决方案

你是否在部署企业级LLM应用时遇到过以下问题?

  • 开源方案组件繁杂,部署文档零散不成体系
  • 企业内网环境特殊,常规部署流程频频碰壁
  • 资源配置不合理导致系统稳定性差、响应缓慢
  • 安全合规要求高,普通部署方式难以满足企业标准

本文将提供一套完整的BISHENG毕昇本地化部署解决方案,从基础环境准备到高可用架构设计,全程配备实操代码与架构图,确保企业用户能够快速、安全、稳定地部署这套开源LLM应用开发平台。

读完本文你将掌握:

  • 企业级服务器环境的标准化配置方法
  • Docker Compose一键部署与自定义配置技巧
  • 关键组件性能调优参数与最佳实践
  • 高可用集群架构设计与实施步骤
  • 常见部署问题诊断与解决方案

1. 平台简介与部署架构概览

1.1 BISHENG毕昇平台核心价值

BISHENG毕昇是一款开源LLM应用开发平台,专注于企业场景,已被大量行业领先组织和财富500强企业采用。其核心优势包括:

  • Lingsight通用智能体:通过AGL(Agent Guidance Language)框架,将领域专家的偏好、经验和业务逻辑嵌入AI,使智能体在处理任务时表现出"专家级理解"
  • 独特的工作流引擎:支持循环、并行、批处理、条件逻辑等复杂流程,同时允许用户在工作流执行过程中进行干预和反馈
  • 企业级特性:安全审查、RBAC权限管理、用户组管理、流量控制、SSO/LDAP集成、高可用部署方案等
  • 高精度文档解析:包含高精度印刷文本、手写文本、罕见字符识别模型,表格识别模型,布局分析模型等

1.2 部署架构总览

BISHENG平台采用微服务架构,主要由以下组件构成:

flowchart TD
    Client[用户浏览器] --> Nginx[前端服务 Nginx]
    Nginx --> Backend[后端API服务]
    Backend --> MySQL[(MySQL 数据库)]
    Backend --> Redis[(Redis 缓存)]
    Backend --> Milvus[(Milvus 向量数据库)]
    Backend --> Elasticsearch[(Elasticsearch 搜索引擎)]
    Backend --> MinIO[(MinIO 对象存储)]
    Backend --> Office[OnlyOffice 文档服务]
    Backend --> Worker[异步任务处理 Worker]

这种架构设计保证了系统的高可扩展性和组件解耦,同时便于企业根据自身需求进行定制化部署。

2. 部署环境准备与要求

2.1 硬件环境要求

BISHENG平台对硬件资源有一定要求,根据部署规模不同,可分为基础测试环境和生产环境:

环境类型 CPU核心数 内存容量 磁盘空间 网络要求
基础测试环境 ≥4核 ≥16GB ≥100GB SSD 互联网连接
标准生产环境 ≥16核 ≥64GB ≥500GB SSD 内部局域网+可选互联网出口
高并发生产环境 ≥32核 ≥128GB ≥1TB SSD 万兆局域网

注意:向量数据库Milvus对内存要求较高,生产环境建议配置更大内存以获得更好的性能。

2.2 操作系统要求

推荐使用以下Linux发行版:

  • Ubuntu 20.04 LTS / 22.04 LTS
  • CentOS Stream 8 / 9
  • Debian 11 / 12

本文以Ubuntu 22.04 LTS为例进行部署说明。

2.3 基础软件环境准备

2.3.1 安装Docker与Docker Compose

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装依赖包
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加Docker APT仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动Docker服务并设置开机自启
sudo systemctl enable --now docker

# 将当前用户添加到docker组(避免每次使用docker命令都需要sudo)
sudo usermod -aG docker $USER

# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker --version
docker-compose --version

注意:执行上述命令后需要注销并重新登录,以使用户组更改生效。

2.3.2 配置系统资源限制

为确保Docker容器有足够的资源运行,需要适当调整系统资源限制:

# 编辑系统限制配置文件
sudo tee /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
EOF

# 编辑Docker配置文件
sudo tee /etc/docker/daemon.json << EOF
{
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 65536,
      "Soft": 65536
    },
    "nproc": {
      "Name": "nproc",
      "Hard": 65536,
      "Soft": 65536
    }
  },
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF

# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 基础部署步骤:Docker Compose一键部署

3.1 获取项目代码

# 克隆代码仓库
git clone https://gitcode.com/dataelem/bisheng.git
cd bisheng/docker

3.2 目录结构说明

docker/
├── bisheng/                # BISHENG配置文件目录
│   ├── config/
│   │   └── config.yaml     # 主配置文件
│   └── entrypoint.sh       # 启动脚本
├── mysql/                  # MySQL配置
├── nginx/                  # Nginx配置
├── redis/                  # Redis配置
├── office/                 # OnlyOffice配置
├── docker-compose.yml      # 主docker-compose配置文件
├── docker-compose-ft.yml   # 微调版本配置文件
└── docker-compose-uns.yml  # 非结构化数据处理配置文件

3.3 配置自定义

在启动前,我们需要根据实际环境修改一些关键配置:

# 复制默认配置文件
cp bisheng/config/config.yaml.example bisheng/config/config.yaml

# 编辑配置文件(根据实际情况修改)
vi bisheng/config/config.yaml

关键配置项说明:

# 数据库配置
database_url: "mysql+pymysql://root:1234@mysql:3306/bisheng?charset=utf8mb4"

# API服务配置
api:
  host: "0.0.0.0"
  port: 7860
  timeout: 120
  workers: 4  # 根据CPU核心数调整,建议设置为CPU核心数的1-2倍

# 日志配置
log:
  level: "INFO"  # 生产环境建议使用INFO,调试时可改为DEBUG
  dir: "./logs"
  max_size: 100  # MB
  backup_count: 30  # 日志文件保留数量
  
# 向量数据库配置
milvus:
  connection_args: '{"host":"milvus","port":"19530","user":"","password":"","secure":false}'
  is_partition: true
  partition_suffix: "1"
  
# 搜索引擎配置
elasticsearch:
  url: "http://elasticsearch:9200"
  ssl_verify: "{}"  # 如启用安全认证,配置为'{"basic_auth": ("elastic", "密码")}'

3.4 启动服务

# 使用docker-compose启动所有服务
docker-compose -f docker-compose.yml -p bisheng up -d

# 查看服务状态
docker-compose -p bisheng ps

正常情况下,所有服务状态应显示为"Up"。如果有服务状态异常,可以通过以下命令查看日志:

# 查看特定服务日志
docker-compose -p bisheng logs -f 服务名

# 例如查看backend服务日志
docker-compose -p bisheng logs -f backend

3.5 验证部署

服务启动后,通过浏览器访问:http://服务器IP:3001,应该能看到BISHENG的登录页面。

timeline
    title 服务启动时间线
    00:00:00 : 开始启动所有服务
    00:00:10 : MySQL、Redis启动完成
    00:00:20 : Elasticsearch、Milvus启动完成
    00:00:30 : Backend服务启动完成并初始化
    00:00:35 : Frontend服务启动完成
    00:00:40 : 所有服务启动完成,可访问Web界面

注意:首次启动时,系统需要初始化数据库和一些基础数据,可能需要3-5分钟才能完全就绪。可以通过查看backend日志确认系统是否准备就绪。

4. 进阶配置:性能优化与安全加固

4.1 资源配置优化

默认的docker-compose.yml可能没有充分利用服务器资源,我们可以根据实际硬件配置进行优化:

# 编辑docker-compose.yml,修改各服务的资源限制
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '8'      # 根据CPU核心数调整
          memory: 32G    # 根据内存大小调整
    # ...其他配置
    
  elasticsearch:
    environment:
      - "ES_JAVA_OPTS=-Xms16g -Xmx16g"  # 一般设置为服务器内存的1/4
    # ...其他配置
    
  milvus:
    environment:
      - "MILVUS_MEMORY_USAGE_RATIO=0.6"  # 内存使用率比例
    # ...其他配置

4.2 安全加固

4.2.1 修改默认密码

# 修改MySQL默认密码
vi docker-compose.yml
# 找到MYSQL_ROOT_PASSWORD参数,修改为强密码

# 修改MinIO默认密码
# 找到MINIO_ACCESS_KEY和MINIO_SECRET_KEY,修改为强密码

# 修改配置文件中的密码
vi bisheng/config/config.yaml
# 更新database_url中的密码

4.2.2 启用HTTPS

# 创建证书目录
mkdir -p nginx/ssl

# 生成自签名证书(生产环境建议使用正规CA签发的证书)
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=your.domain.com" \
  -keyout nginx/ssl/server.key -out nginx/ssl/server.crt

# 修改Nginx配置启用HTTPS
vi nginx/conf.d/default.conf

Nginx HTTPS配置示例:

server {
    listen 443 ssl;
    server_name your.domain.com;
    
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    
    # SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    # 代理配置
    location / {
        proxy_pass http://frontend:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # API请求代理
    location /api {
        proxy_pass http://backend:7860;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name your.domain.com;
    return 301 https://$host$request_uri;
}

4.3 配置外部存储

对于企业环境,通常需要使用外部存储服务而非容器内置的存储:

# 修改docker-compose.yml
services:
  backend:
    volumes:
      # 替换默认数据卷配置
      - /data/bisheng/data:/app/data  # 使用外部目录
      
  # 注释掉或删除内置的minio服务,如果使用外部S3兼容存储
  # minio:
  #   ...
  
  # 修改backend环境变量,配置外部存储
  environment:
    # ...其他环境变量
    BS_MINIO_SCHEMA: 'true'  # 使用HTTPS
    BS_MINIO_ENDPOINT: 'minio.yourcompany.com'  # 外部MinIO/S3地址
    BS_MINIO_ACCESS_KEY: 'your-access-key'      # 访问密钥
    BS_MINIO_SECRET_KEY: 'your-secret-key'      # 密钥

5. 高可用部署方案

对于企业关键业务场景,单节点部署无法满足高可用性要求。下面介绍如何构建BISHENG高可用集群。

5.1 高可用架构设计

flowchart TD
    Client[用户请求] --> LB[负载均衡器]
    LB --> Frontend1[前端服务1]
    LB --> Frontend2[前端服务2]
    Frontend1 --> Backend1[后端API服务1]
    Frontend2 --> Backend2[后端API服务2]
    Backend1 --> RedisCluster[(Redis集群)]
    Backend2 --> RedisCluster
    Backend1 --> MySQLCluster[(MySQL主从集群)]
    Backend2 --> MySQLCluster
    Backend1 --> MilvusCluster[(Milvus集群)]
    Backend2 --> MilvusCluster
    Backend1 --> ESCluster[(Elasticsearch集群)]
    Backend2 --> ESCluster

5.2 数据库高可用配置

使用MySQL主从复制架构:

# docker-compose-mysql-ha.yml
version: '3.8'
services:
  mysql-master:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: "your-strong-password"
      MYSQL_DATABASE: bisheng
      MYSQL_REPLICATION_USER: "repl_user"
      MYSQL_REPLICATION_PASSWORD: "repl_password"
    volumes:
      - ./mysql/master/data:/var/lib/mysql
      - ./mysql/master/conf:/etc/mysql/conf.d
    ports:
      - "3306:3306"
    command: --server-id=1 --log-bin=mysql-bin --binlog-do-db=bisheng
  
  mysql-slave:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: "your-strong-password"
      MYSQL_REPLICATION_USER: "repl_user"
      MYSQL_REPLICATION_PASSWORD: "repl_password"
    volumes:
      - ./mysql/slave/data:/var/lib/mysql
      - ./mysql/slave/conf:/etc/mysql/conf.d
    ports:
      - "3307:3306"
    command: --server-id=2 --log-bin=mysql-bin --binlog-do-db=bisheng
    depends_on:
      - mysql-master

5.3 多节点部署配置

# 在多台服务器上部署backend服务
# 服务器1
docker-compose -f docker-compose.yml -p bisheng up -d backend worker

# 服务器2
docker-compose -f docker-compose.yml -p bisheng up -d backend worker

# 配置负载均衡器(以Nginx为例)
vi /etc/nginx/conf.d/bisheng-api.conf

Nginx负载均衡配置:

upstream bisheng_backend {
    server server1_ip:7860 weight=1 max_fails=2 fail_timeout=30s;
    server server2_ip:7860 weight=1 max_fails=2 fail_timeout=30s;
}

server {
    listen 443 ssl;
    server_name api.bisheng.yourcompany.com;
    
    # SSL配置...
    
    location / {
        proxy_pass http://bisheng_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
    }
}

6. 系统监控与运维

6.1 日志管理

集中化日志收集配置:

# 在docker-compose.yml中添加ELK相关服务
services:
  logstash:
    image: logstash:8.12.0
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    depends_on:
      - elasticsearch
      
  kibana:
    image: kibana:8.12.0
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    depends_on:
      - elasticsearch

6.2 性能监控

使用Prometheus和Grafana监控系统性能:

# docker-compose-monitor.yml
version: '3.8'
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
      
  grafana:
    image: grafana/grafana
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - "3000:3000"
    depends_on:
      - prometheus

volumes:
  prometheus_data:
  grafana_data:

7. 常见问题诊断与解决方案

7.1 服务启动失败

# 检查服务状态
docker-compose -p bisheng ps

# 查看失败服务日志
docker-compose -p bisheng logs -f 服务名

# 常见问题及解决方案:
问题现象 可能原因 解决方案
backend服务反复重启 数据库连接失败 检查MySQL服务是否正常,配置文件中的数据库连接参数是否正确
elasticsearch启动失败 内存不足或权限问题 确保系统内存充足,设置vm.max_map_count=262144,检查目录权限
milvus启动失败 etcd或minio服务异常 检查etcd和minio服务状态,查看相关日志
前端访问404 后端服务未就绪 等待后端服务初始化完成,检查Nginx配置

7.2 性能优化常见问题

问题 优化方案
API响应缓慢 1. 增加backend服务workers数量
2. 优化数据库查询
3. 增加缓存配置
文档处理速度慢 1. 增加worker服务资源
2. 调整异步任务并发数
3. 优化文档解析参数
向量检索性能低 1. 调整Milvus索引参数
2. 增加Milvus资源配置
3. 优化向量维度

7.3 安全相关问题

安全需求 实现方案
敏感数据加密 1. 配置文件中敏感信息加密
2. 数据库敏感字段加密
3. 传输层使用HTTPS
访问控制 1. 启用RBAC权限控制
2. 配置IP白名单
3. 集成企业SSO
审计日志 1. 启用详细操作日志
2. 配置日志集中存储
3. 设置日志留存策略

8. 总结与展望

通过本文介绍的部署方案,企业用户可以快速、安全地部署BISHENG毕昇平台。从单节点快速部署到高可用集群架构,本文提供了全方位的部署指南,满足不同规模企业的需求。

未来,BISHENG平台将继续优化部署体验,包括:

  • 提供更便捷的Kubernetes部署方案
  • 增加自动化运维工具
  • 完善监控告警体系
  • 增强多云部署能力

希望本文能帮助企业用户顺利部署BISHENG平台,充分发挥LLM技术在企业场景中的价值。如有任何部署问题,欢迎加入BISHENG社区寻求帮助。

附录:常用操作命令速查表

# 启动所有服务
docker-compose -p bisheng up -d

# 停止所有服务
docker-compose -p bisheng down

# 查看服务状态
docker-compose -p bisheng ps

# 查看日志
docker-compose -p bisheng logs -f [服务名]

# 重启单个服务
docker-compose -p bisheng restart 服务名

# 执行数据库备份
docker exec bisheng-mysql mysqldump -u root -p1234 bisheng > backup_$(date +%Y%m%d).sql

# 查看系统资源使用情况
docker stats

# 监控服务健康状态
curl http://localhost:7860/health
登录后查看全文
热门项目推荐
相关项目推荐