# CoMi V1.0部署维护手册(草稿)
本手册适用于CoMi产品安装部署维护
2025年5月
# 修订记录
修订内容 | 修订时间 |
---|---|
新增CoMi 1.0安装部署手册 | 2025-5-12 |
# 在线化资料支持
手册存在不定期更新,为了方便您获取最新资料,本手册在致远开放平台也放置了一份,建议您收藏以下地址,并尽量使用在线手册以获得最新的部署信息:https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjM2NjM= (opens new window)
# 环境准备
# 适用OA版本
本组件适配以下协同OA版本,并且需要按要求打对应补丁包:
版本 | 支持的BuildID(其余ID不支持) | 插件部署方式 |
---|---|---|
V9.0SP1 | BuildID为20250520版本(更早期BuildID不支持) | 安装升级,不涉及额外补丁 |
V8.0到V8.2SP1 | 筹备中,具体发布时间以协同通知为准 | 打补丁 |
# 依赖商务授权
使用本组件,需要如下授权信息:
编号 | 授权信息 | 获取路径 |
---|---|---|
1 | CoMi智能体套件(CoMi运行引擎、CoMi超级入口、CoMi标准智能体) | 致远商务侧下单申请,计价规则见商务报价 |
# 环境要求
分类 | 支持情况 |
---|---|
权限要求 | 需要以管理员(root)权限操作 |
支持操作系统 | <=CentOS 7.9 (限v7系列) <=RedHat 7.9(限v7系列) openEuler Ubuntu 20.04 |
服务器类型 | x86 |
注意:
- 暂不支持信创操作系统、信创芯片
# 阶梯资源要求
不同在线用户所需服务器资源不同,常规要求如下:
# 中间件或服务依赖
依赖组件 | 版本 | 端口 | 资源配置 | 说明 |
---|---|---|---|---|
Nginx | 选择较新版本 | 80/443 | CPU>=2C/内存>=4G/磁盘100G | (必须)代理各服务请求,与协同使用的Nginx共用 |
向量数据库qdrant | 1.13.6或以上 | 6333(HTTP)、6334(gPRC) | CPU>=4C/内存>=8G/磁盘200G | (必须)需优先安装,AI-Manager、AI-Engine依赖此组件,部署包已内置 |
关系数据库MySQL | mysql5.7、mysql8.0 | 3306 | CPU>=4C/内存>=8G/磁盘200G | (必须)需优先安装,AI-Manager依赖此组件,如协同使用MySQL可共用服务,暂无其它数据库可选 |
JDK | jdk17或以上 | - | - | AI-Manager已内置x86类型,特殊芯片服务器需手动替换 |
AI-Engine | - | 8000 | CPU>=4C/内存>=8G/磁盘200G | 基础组件部署后,再部署本服务 |
AI-Security | - | 9000 | CPU>=4C/内存>=8G/磁盘200G | 基础组件部署后,再部署本服务 |
AI-Manager | - | 8181 | CPU>=4C/内存>=16G/磁盘200G | 基础组件部署后,再部署本服务。 |
Embedding模型 | - | - | - | 文本向量模型 |
LLM大语言模型 | - | - | 支持公有云大模型、私有模型(以大模型专业厂商方案为准) | DeepSeek、千问等大语言模型,用于接收问题并通过模型内部运算给出问题回复 |
注意:
- 必须使用Nginx是由于浏览器的同源策略默认不允许跨域共享 Cookie。Comi如果要使用OA的Cookie(JsessionId),必须使OA和Comi服务在同一个域内(协议、域名、端口一致)。因此,Comi必须配置在oa的nginx server段中,共用一个端口。
- 以上配置是当前发版的CoMi V1.0服务器配置,随着CoMi版本升级,功能增强,服务器所需配置可能增加,建议在CoMi V1.0总配置基础上再预留部分资源,为CoMi升级版本扩展服务准备(已知下版本: ComiServer:最低4c8g,协同驾驶舱BI: 8c16g + pg数据库4c8g)。
# 网络架构图
# 简单部署模型
客户端、协同OA与本组件服务的交互关系如下图所示
最低推荐部署模式:NG独立、OA服务、CoMi其它服务
# 高可用部署模型
暂不支持高可用部署模式
# 详细部署步骤
# 大模型准备和测试
可零代码接入符合openAI接口规范的大模型,对于不符合该规范的模型需要单独适配
客户提前准备产品适配范围内的大模型,并提供一些必要的信息供产品后续配置使用,主要包含:
1、Base URL:模型的api接口地址,并开通网络策略确保产品能访问到模型地址
2、model模型名称:务必是准确的model,如deepseek-r1:8b、deepseek-r1:32b
3、API Key:授权信息,公有云都会有这个;私有化有的没有API Key,以私有部署厂商回复为准
# Embedding模型
使用大模型厂商提供的Embedding模型
开源模型bge-large-zh
# LLM模型
- 使用大模型厂商提供的LLM模型
# 依赖组件部署
# Mysql部署
- MySQL8.0数据库安装部署-Linux系统
https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI4Nw==
- MySQL8.0数据库部署-Windows
https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI4OA==
# qdrant部署
官方文档:https://qdrant.tech/documentation/quickstart/
- 二进制部署
从提供的部署包下载地址中获取qdrant离线包和配置文件,上传到服务器并解压(注意选择与系统架构一致的包)
mkdir /data/qdrant -p
tar -zvxf qdrant-x86_64-unknown-linux-musl.tar.gz -C /data/qdrant
启动qdrant
cd /data/qdrant
# 启动方法1:qdrant默认读取当前目录config下的config.yaml配置文件
# 创建配置目录
mkdir /data/qdrant/config
# 将下载的配置文件config.yaml上传到 /data/qdrant/config 目录下
nohup ./qdrant >> qdrant.log 2>&1 &
# 启动方法2: 如果没有创建config目录单独存放config.yaml,那么启动时需手动指定配置文件
# 将配置文件config.yaml上传到 /data/qdrant 目录下
nohup ./qdrant --config_path=config.yaml >> qdrant.log 2>&1 &
- docker部署
需提前部署好docker服务,并且能通hub.docker.com拉取镜像
# 从Dockerhub拉取镜像
docker pull qdrant/qdrant
# 创建qdrant目录
mkdir /data/qdrant
# 运行服务
docker run --restart=unless-stopped --name qdrant \
-p 6333:6333 -p 6334:6334 \
-v "/data/qdrant/qdrant_storage:/qdrant/storage:z" \
qdrant/qdrant
# COMI服务部署
# 获取部署包
# 部署AI-Engine
负责agent调度,编排
- 创建安装目录
# 替换为你实际想安装的路径
export dir="/data/Seeyon/Comi"
mkdir -p $dir/seeyon_packages/ai-engine && mkdir -p $dir/app
将安装包 agent_packages.tar.gz、miniconda.tar、seeyonagents.tar.gz 上传到 /data/Seeyon/Comi/seeyon_packages/ai-engine 目录
将seeyonagent解压到 /data/Seeyon/Comi/app
tar -xzvf $dir/seeyon_packages/ai-engine/seeyonagents.tar.gz -C $dir/app
- 执行环境配置脚本
cd $dir/app/seeyonagents
bash service_env_install.sh -p $dir/seeyon_packages/ai-engine -c $dir/miniconda3
- 配置 .env_llm.yaml
cp .env_llm.example.yaml .env_llm.yaml
# 修改配置文件,内容如下
vim .env_llm.yaml
# 所有第三方模型都需要接入Comi builder
# Comi builder 配置
ai_manager:
# API类型, 默认值为openai
api_type: "openai"
# API版本号
api_version: ""
# 模型随agent配置
model: ""
# AI Manager服务地址
base_url: "http://192.168.0.171:8181/v1"
# AI Manager api_key, 可在AI Manager控制台获取,下文会介绍获取方式
api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Embedding 向量模型配置
ai_embedding:
# API类型, 默认值为openai
api_type: "openai"
# API版本号
api_version: ""
# 基础模型
model: ""
# 服务地址
base_url: "http://X.X.X.X:XXXX/v1"
# API密钥
api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Embedding模型
embedding_model: "XXXXXXXXXXXXXXXXX"
# 向量维度
embedding_dimensions: 1024
- 配置.env
cp .env.example .env
# 修改.env文件,将xxx 替换为实际部署配置,并保存
vim .env
# 配置运行端口,默认为8000
SEEYON_AGENTS_SERVER_PORT=8000
SEEYON_AGENTS_MAX_WORKERS=200
SEEYON_AGENTS_RESTORE_SESSION=True
# 日志路径替换为实际路径
SEEYON_AGENTS_LOGS_ROOT=/data/Seeyon/Comi/app/seeyonagents/logs
# True: 表示用docker run,False: 本地运行
SEEYON_AGENTS_DOCKER_RUN=False
#Temp_Data路径替换实际路径
SEEYON_AGENTS_TEMP_DATA_PATH=/home/seeyon/app/seeyonagents/data
# 配置向量库
SEEYON_AGENTS_VECTORSTORE_TYPE=qdrant
#这里使用向量库的http端口6333
SEEYON_AGENTS_VECTORSTORE_URL=http://192.168.0.171:6333
SEEYON_AGENTS_VECTORSTORE_EMBEDDING_LLM=ai_embedding
SEEYON_AGENTS_LOGS_FILESIZE=20
TIKTOKEN_CACHE_DIR=./tiktoken_cache
# 部署AI-Security
负责敏感词检测拦截
- 创建安装目录
# 替换为你实际想安装的路径
export dir="/data/Seeyon/Comi"
mkdir -p $dir/seeyon_packages/ai-security && mkdir -p $dir/app
将安装包 ai-security-service.tar.gz、miniconda.tar、sensitive_packages.tar.gz 上传到 /data/Seeyon/Comi/seeyon_packages/ai-security 目录
将ai-security-service解压到 /data/Seeyon/Comi/app
tar -xzvf $dir/seeyon_packages/ai-security/ai-security-service.tar.gz -C $dir/app
- 执行环境配置脚本
如果ai-security和ai-engine部署在同一台机器,脚本通过/data/Seeyon/Comi/app/.condaPath文件检测到环境存在,则不会重复安装
cd $dir/app/ai-security-service
chmod -R +x *.sh
bash service_env_install.sh -p $dir/seeyon_packages/ai-security -c $dir/miniconda3
- 配置 .env
cp .env.example .env
# 修改.env文件,将xxx 替换为实际部署配置,并保存
vim .env
# 服务配置
SERVER_HOST=0.0.0.0 # 服务运行IP,默认0.0.0.0
SERVER_PORT=9000 # 服务运行端口,默认为9000
# 部署AI-Manager
负责各项功能资源的配置以及工具和大模型的调用
- 连接mysql创建ai_manager数据库
-- 建库语句
create database ai_manager default character set utf8mb4;
- 初始化数据
从部署包中获取初始化sql脚本,通过以下命令初始化ai_manager数据库
mysql -h 数据库主机 -P 数据库端口 -u 数据库用户名 -p 数据库密码 ai_manager < /path/to/database_init_data.sql
- 部署ai_manager
# 创建部署目录
mkdir /data/Seeyon/Comi/ai_manager -p
# 将部署包解压至 /data/Seeyon/Comi/ai_manager/
unzip ai_manager20250510_standard.zip -d /data/Seeyon/Comi/ai_manager/
- 修改配置文件
vim /data/Seeyon/Comi/ai_manager/application.yaml
server:
# 监听端口,可自行修改,默认为:8181
port: 8181
tomcat:
connection-timeout: 600000
spring:
servlet:
multipart:
enabled: true
max-file-size: 50MB
max-request-size: 500MB
mvc:
static-path-pattern: /ai-static/**
web:
resources:
# 静态资源路径,将 you_path 修改为 ai_manager 的实际部署路径,格式如下
static-locations: file:/data/Seeyon/Comi/ai_manager/frontend,,file:/data/Seeyon/Comi/ai_manager/static/
logging:
level:
root: info
seeyon:
application:
name: ai-manager
ai:
# 数据源配置,修改为之前部署的mysql的地址、用户、密码,及初始化的数据库名
datasource:
url: jdbc:mysql://192.168.0.92:3342/ai_manager
username: root
password: Seeyon123
# agent引擎服务配置
websocket:
# ai-engine 服务管理通道,修改其中的ip和端口
manageUrl: ws://192.168.0.171:8000/agent/services
# ai-engine 服务消息通道,修改其中的ip和端口
messageUrl: ws://192.168.0.171:8000/agent/msg
# ai-security 敏感词消息通道,修改其中的ip和端口
sensitiveUrl: ws://192.168.0.171:9000/sensitive/services
token: ai-engine
# 向量数据库配置,修改为实际部署的qdrant地址和端口
vector-store:
engine: qdrant
# Qdrant服务IP地址
host: 192.168.0.171
# Qdrant服务端口
port: 6334
common:
# 文件临时存储的路径
filePath: /data/Seeyon/Comi/ai_manager/temp
# 修改为ai_manager服务器的IP
baseUrl: http://192.168.0.171:8181/ai-manager
menus:
- { "key": "bi-chart","label": "智能问数", "id": "1", "url": "http://nginx ip:端口/seeyon/bi/openbifromai.htm" }
# 使用 admin 登录密码配置
password: 123456
# 集成v5时,修改为v5的访问地址和端口
v5Address: http://192.168.0.70:80
# 集成v8时,修改为v8的访问地址和端口
v8Address: http://127.0.0.1:81
commonFileSuffixes: txt,md,rtf,zip,rar,7z,tar,gz,jpg,jpeg,png,gif,bmp,tiff,tif,webp,doc,docx,xls,xlsx,pdf,rep,csv,json
- 登录ai_manager获取api_key
管理后台地址:http://ai-manager_IP:8080/ ,用户admin, 密码见配置文件中设置的admin密码
为api-engine服务创建api_key
复制api_key
配置到 /data/Seeyon/Comi/app/seeyonagents/.env_llm.yaml 中
# Nginx服务代理配置
注意:由于浏览器的同源策略默认不允许跨域共享 Cookie,Comi如果要使用OA的Cookie(JsessionId),必须使OA和Comi服务在同一个域内(协议、域名、端口一致)。因此,Comi必须配置在oa的nginx server段中。
- 修改OA的nginx配置文件
在原有的nginx.conf中,关联comi配置
vim nginx.conf
...
upstream seeyon_v5_cluster{
sticky;
server 192.168.0.70:80 max_fails=300 fail_timeout=30s;
}
# 增加AI-Manager的upstream配置
upstream ai_manager{
server 192.168.0.171:8181;
}
server {
listen 8080;
server_name xt.seeyon.com;
charset utf-8;
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
# 关联comi配置文件
include comi.conf;
}
...
- 新建comi配置文件
在nginx.conf同级目录下新建comi.conf,此文件不需要修改
location ~ /\.(git|env|svn|htaccess|bak|old|swp)$ {
deny all;
}
location /ai-static {
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 修改为AI-Manager的IP端口
proxy_pass http://ai_manager;
proxy_buffering off;
}
location ^~ /seeyon/ai-platform/ai-manager/agent/info/call/sse{
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSE 连接时的超时时间
proxy_read_timeout 86400s;
# 取消缓冲
proxy_buffering off;
# 关闭代理缓存
proxy_cache off;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
}
location ^~ /seeyon/ai-platform/backend {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
set $nocache 1;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ^~/seeyon/ai-platform/frontend {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
set $nocache 1;
proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ~ /seeyon/ai-platform {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
rewrite ^/seeyon/ai-platform(.*)$ $1 break;
proxy_pass http://ai_manager;
}
location /ai-manager {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
return 204;
}
proxy_pass http://ai_manager;
# 取消缓冲
proxy_buffering off;
# 关闭代理缓存
proxy_cache off;
gzip off;
}
- 检查配置并reload
# 检查配置是否正确
./nginx -p nginx目录 -c nginx配置文件 -t
# 热加载配置
./nginx -p nginx目录 -c nginx配置文件 -s reload
# https配置
参考OA配置https方法,仅编辑nginx.conf配置文件即可
向域名服务商、托管服务商或专业证书颁发机构购买对应域名的ssl证书
将nginx类型的证书及私钥上传至nginx服务器的conf/ssl目录下,注意修改名称与下列配置文件中的一致
vim nginx.conf
...
server {
# 设置ssl监听端口
listen 443 ssl;
server_name xt.seeyon.com;
# 配置ssl证书的公私钥文件
ssl_certificate ssl/server.pem;
ssl_certificate_key ssl/server.key;
# TLS协议按需调整
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset utf-8;
...
}
...
修改后测试配置文件并reload
# 协同OA配置
部署完服务之后,修改OA部署目录下的 base/conf/plugin.properties 文件
# 编辑plugin.properties,增加配置项
ai.comibuilderServer=http://192.168.0.171:8080/seeyon/ai-platform/ai-manager/assistant/info/getAllRightsAssistant
# 组件日常维护
# 启停组件服务
- AI-Engine
cd /data/Seeyon/Comi/app/seeyonagents
# 添加执行权限
chmod +x *.sh
# 启动服务
./start.sh
# 停止服务
./stop.sh
日志目录见服务部署目录下的.env配置文件
- AI-Security
cd /data/Seeyon/Comi/app/ai-security-service
# 添加执行权限
chmod +x *.sh
# 启动服务
./start.sh
# 停止服务
./stop.sh
日志目录见服务部署目录的logs下
- AI-Manager
cd /data/Seeyon/Comi/ai_manager
# 添加执行权限
chmod +x jdk/bin/*
chmod +x *.sh
# 启动服务
./startup.sh
# 停止服务
./shutdown.sh
# 查看控制台日志
tail -f nohup.out
# 常见问题
快速跳转
← 人人过关的AI基础概念 什么是AI模型对话 →
