# 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与本组件服务的交互关系如下图所示

1747305368929.png

最低推荐部署模式: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密码

1747127497689.png

为api-engine服务创建api_key

1747127650718.png

复制api_key

1747127683091.png

配置到 /data/Seeyon/Comi/app/seeyonagents/.env_llm.yaml 中

1747127902510.png

# 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配置文件

1747299152380.png

  • AI-Security
cd /data/Seeyon/Comi/app/ai-security-service

# 添加执行权限
chmod +x *.sh

# 启动服务
./start.sh

# 停止服务
./stop.sh

日志目录见服务部署目录的logs下

1747299305985.png

  • AI-Manager
cd /data/Seeyon/Comi/ai_manager

# 添加执行权限
chmod +x jdk/bin/*
chmod +x *.sh

# 启动服务
./startup.sh

# 停止服务
./shutdown.sh

# 查看控制台日志
tail -f nohup.out

# 常见问题

编撰人:het、wangyxyf