2025最新版|BISHENG毕昇企业级LLM平台本地化部署全攻略:从环境配置到高可用架构
引言:企业级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
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00