# V8云原生产品线A9C集成CoMi V2.0.2手册

# 前言

V8云原生产品线(A9C)是另一套协同产品,基于微服务云原生技术开发维护,其所需服务和V5产品线有一定差别。

本手册就V8云原生产品线部署集成CoMi V2.0、V2.0.1、V2.0.2版本(建议选择最新版本)提供详细说明,如对本手册中相关内容存在疑问,请通过技术服务支持申请流程工单获取协助。

由于CoMi部署部分与V5产品线部署CoMi没有任何差别,故本手册会跳过若干重复内容,只列举V8产品线集成关键点。

# V8产品线A9C部署CoMi关键点

# 1、确定CoMi部署方案

V8产品线A9C集成CoMi所需服务器资源、环境准备、插件、支持版本等要求见 《CoMi V2.0.1环境准备指导手册 (opens new window)》。

注:CoMi不支持部署到K8S平台中

部署CoMi2.0系列支持两种方式:智能部署工具向导式部署 和 Docker容器化部署,项目上可根据自身情况选择合适的部署方案,并严格按对应手册准备相关包:

方案 部署方式 支持操作系统 部署说明 推荐指数 部署手册
方案1 智能工具智署向导式部署 Linux、信创系统 自动安装CoMi基础服务,浏览器网页可视化启停+调整参数,简单易用
需要提前准备数据库,工具无法自动部署数据库
适用于要求CoMi使用信创数据库的项目
★★★ 手册链接 (opens new window)
方案2 Docker容器部署 Linux、信创系统 自动安装docker和CoMi基础服务(含数据库),需要具备一定Linux维护经验
适合快速搭建POC环境 或 无信创数据库集成要求的项目
★★★★★ 手册链接 (opens new window)

部署视频可通过 协同云-赋能中心-致远学院 访问如下链接获取:

# 2、做好操作系统参数调整

无论哪种部署模式,必须参考对应手册做好操作系统参数调整:

如Docker部署CoMi,麒麟V10系统必须先删除podman,否则后续安装Docker会失败:

1766561343545.png

无论哪种部署模式,都需要设置limites.conf,调大操作系统的openfile句柄数,CoMi的Qdrant向量库高度依赖句柄数:

1766561387556.png

# 3、按需部署V8产品线A9C所需的CoMi服务

V8产品线集成CoMi V2.0.2版本,需要部署:AI-Manager、AI-Engine、AI-Security、Qdrant、数据库(如版本匹配可复用V8数据库,新建空间),CoMi V2.0.2开始还需部署CoMi Server、沙箱、文档解析服务,按需部署OCR图片解析服务(需GPU)。

# 3-1、采用Docker部署CoMi注意事项

如使用Docker部署CoMi,参考部署手册操作,只需调整.env配置文件两处参数:

  • PRODUCT_LINE产品线填写成A9
  • NGINX_ADDRESS产品NG地址
  • COMPOSE_PROFILES可选安装服务全部清空,V8有自己的NG无需CoMi部署,其它服务V8也用不到

1767838157836.png

如使用Docker部署CoMi,正常在Docker容器中运行的服务如下:

1766976111175.png

如使用Docker部署CoMi,部署完成后,一定要修改V8服务器地址,具体位置在comi程序目录下的 config/ai-manager/application.yaml 文件中:

具体参数值为 v8Address ,如果V8的Nginx使用了SSL,则必须是https,可以是访问NG的域名或内网地址,容器能访问哪个地址就用哪个。

# 在comi-install目录下修改配置
vim config/ai-manager/application.yaml

1766976423554.png

# 3-2、采用智能工具向导式部署CoMi注意事项

V8云原生产品线(A9C)使用智能工具向导式部署CoMi,在主机管理界面只需要录入当前CoMi服务器地址(无需按手册录入Nginx地址):

1766651908544.png

部署配置AI-Manager时需要注意:

  • 产品线选择A9
  • 数据库需要提前准备,比如连接V8现有数据库服务,需要给AI-Manager和CoMi Server分别准备一个空库,如命名为ai_manager、comi_server
  • OA反向代理地址:设置成V8 Nginx地址,该地址需要确保当前CoMi服务器能访问,并且如果NG启用了SSL优先用https

1766651420350.png

向导式工具部署CoMi V2.0.2,AI-Manager、AI-Engine、AI-Security、Qdrant、数据库(如版本匹配可复用V8数据库,新建空间),CoMi V2.0.2开始还需部署CoMi Server、沙箱、文档解析服务,按需部署OCR图片解析服务(需GPU)。

CoMi V2.0.1及之前版本涉及配置Nginx外部依赖(如下图所示),部署配置时无需选择Nginx服务器,直接选择CoMi当前服务器,因为向导式工具生成的ng配置对V8无效,V8需要按后续步骤手动录入。

CoMi V2.0.2如果检测到V8产品线,则自动隐藏了外部依赖配置。

1766651763186.png

如果出现Nginx服务状态检查不通过,通常原因是:内网的CoMi服务器访问不到Nginx的外网域名地址。解决方案为:由网管做内网的DNS解析,或在CoMi服务器设置hosts将域名指向NG的内网IP即可通过。

1766652607671.png

# 4、CoMi部署后重要检查点

检查服务器上 ai-manager/application.yaml 文件,其中v8Address必须配置成V8 Nginx的内网地址,并且comi服务器可访问该地址,如NG开启SSL必须优先使用https。

1766629642250.png

# V8产品线A9C集成CoMi关键点

在完成上一章节CoMi部署后,需要在V8中将CoMi集成进去,关键操作如下:

# 1、确定V8产品线版本是否支持CoMi

CoMi对V8云原生产品线(A9C)对应版本适配列表详见《协同版本边界feishu知识库 (opens new window)》,如当前V8版本不匹配,需要按需升级V8版本!

1766570053689.png

# 2、准备V8产品线CoMi加密授权

关于 V8云原生产品线(A9C) ,如需使用CoMi,需要申请插件名称及标识为:申请CoMi智能助手 comiPlugin。获得加密授权文件后,更新到V8产品中。

1766570066514.png

# 3、V8 Nginx增加CoMi配置

V8只需要在Nginx中增加CoMi配置,即可到后台访问CoMiBuilder并进行后续操作。

V8 与 CoMi 之间的鉴权基于 V8 登录 Token。CoMi 在获取到 V8 的 Token 后,会通过反向校验的方式验证用户权限(此时无需校验 API-KEY)。

第一步:找到V8 Nginx主入口conf配置文件,将 include comi.conf; 加入到V8 Nginx主入口server{}代码块中,示例如下(comi start 到 comi end这部分):

	此处省略若干其它配置......

    # comi start:关联comi配置文件
    include comi.conf;
    # comi end:关联comi配置文件

    location = / {
        return 301 ./main/;
    }
    location ~ /service/ {
        proxy_pass http://10.103.4.2:30001;
        rewrite ^/service/(.*)$ /$1 break;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header sy-host $host;
        client_max_body_size 500M;
    }

	此处省略若干其它配置......

1766570082209.png

第二步:在Nginx V8主入口conf配置文件同层级新增一个名为comi.conf的配置文件,将如下代码完整复制到comi.conf配置文件中,并且将所有xx.xx.xx.xx 批量修改成CoMi服务器的真实IP(CoMi的AI-Manager默认监听8181端口,CoMi Server默认监听8081端口,如做调整,请同步修改comi.conf中的全部端口):

# ai平台配置开始
location ^~ /ai-static {
    proxy_pass http://xx.xx.xx.xx:8181/ai-static;
}
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 $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # SSE 连接时的超时时间
    proxy_read_timeout 86400s;

    # 取消缓冲
    proxy_buffering off;

    # 关闭代理缓存
    proxy_cache off;
    # 不走缓存
    add_header Cache-Control max-age=0;
    # 禁用分块传输编码
    #chunked_transfer_encoding off
    proxy_pass http://xx.xx.xx.xx:8181/ai-manager/agent/info/call/sse;
}
location =/seeyon/ai-platform/backend {
    proxy_pass http://xx.xx.xx.xx:8181/backend;
    set $nocache 1;
    # 不走缓存
    add_header Cache-Control max-age=0;
    proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location =/seeyon/ai-platform/frontend {
    proxy_pass http://xx.xx.xx.xx:8181/frontend;
    set $nocache 1;
    # 不走缓存
    add_header Cache-Control max-age=0;
    proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ~ ^/seeyon/ai-platform/(.*) {
    proxy_pass http://xx.xx.xx.xx:8181/$1$is_args$args;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    set $nocache 1;
    # 不走缓存
    add_header Cache-Control max-age=0;
    proxy_cache_bypass $nocache $cookie_nocache $arg_nocache $arg_comment;
}
location ^~ /ai-manager {
    # 不走缓存
    add_header Cache-Control max-age=0;
    proxy_pass http://xx.xx.xx.xx:8181;
    proxy_set_header api-key $http_api_key;
}
location ^~ /ai-manager/form {
    # 不走缓存
    add_header Cache-Control max-age=0;
    proxy_pass http://xx.xx.xx.xx:8181;
    proxy_set_header api-key $http_api;
}
# ai平台配置结束
location = /comi/ai-manager/assistant/info/call/stream {
        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;
        # 禁用分块传输编码
        chunked_transfer_encoding off;
        gzip off;
		# CoMi Server地址
        proxy_pass http://xx.xx.xx.xx:8081;
}

location ^~ /comi {
    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;
	# CoMi Server地址
    proxy_pass http://xx.xx.xx.xx:8081;
}

 location ~/seeyon/comi-server/(.*)  {
        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;
        rewrite ^/seeyon/comi-server/(.*)$ /$1 break;
		# CoMi Server地址
        proxy_pass http://xx.xx.xx.xx:8081/comi/$1$is_args$args;
        # 取消缓冲
        proxy_buffering off;
        # 关闭代理缓存
        proxy_cache off;
        gzip off;
 }

1766570096825.png

第三步:检查配置并重新加载Nginx配置:

# 检查配置是否正确(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -t

# 重新加载配置,使配置生效(示例代码见截图)
./nginx -p nginx目录 -c nginx.conf配置文件路径 -s reload

# 4、V8管理员后台配置模型和初始化

V8管理员后台 → 访问COMiBuilder菜单:

1766570492008.png

1766629783526.png

异常说明:如V8访问CoMiBuilder异常,通常先查看CoMi服务器ai-manager/logs下log-info.log和log-error.log有什么错误,然后根据错误分析原因。

1766629973367.png


确认能访问CoMiBuilder页面后,参考《CoMi模型配置操作手册 (opens new window)》进行模型配置和应用初始化。

也可以参考《模型初始化和授权Feishu知识库 (opens new window)》在线视频做操作

1766645652060.png

1766646050556.png

# 5、V8后台完成智能问答配置

V8管理员后台 → 系统参数 → 智能问答分别添加apiKey和apiUrl信息:

  • apiKey:对应CoMi安装部署后生成的APIKey(可以去CoMiBuilder后台直接复制API KEY到此处)
  • apiUrl:对应CoMi的AI-Manager内网服务器地址,与Nginx配置文件comi.conf中的http地址保持一致

1766631666680.png

# 6、V8租户管理员授权CoMi应用

以上完成后,通过V8租户管理员授权CoMi应用给普通用户,随后用户就能在前端看到CoMi。

详细授权CoMi应用操作见《AI-COP A9 领航版 V5.0 AI办公助手 产品操作手册 (opens new window)》 初始化和授权 → 租户管理员 章节。

1766646831077.png

异常说明:如果租户管理员授权了CoMi应用给普通用户,但普通用户前台依然看不到CoMi小章鱼图标,则重点检查租户管理员 → 智能管理 → 基础配置 是否授权了对应单位或用户。

1766648149153.png

# 7、检查Embedding模型标识一致性

如使用CoMi智能工具部署,需要到CoMi智能工具页面,找到AI-Engine的配置,需要确保“向量模型标识” 与 V8管理员后台CoMiBuilder模型管理中的Embedding模型标识保持一致(不一致则修改ai-engine的值,并重新发布ai-engine服务):

1766654783698.png

如使用Docker工具部署CoMi,需要到配置文件 config/ai-engine/.env_llm.yaml ,确保embedding_model值与 V8管理员后台CoMiBuilder模型管理中的Embedding模型标识保持一致(不一致则修改ai-engine的值,并重启ai-engine服务):

1766655081957.png

# V8使用CoMi用户手册

关于V8下面CoMi的详细操作,访问《AI-COP A9 领航版 V5.0 AI办公助手 产品操作手册 (opens new window)》可以查看CoMi在V8中如何使用。

编撰人:het、hufei