页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 35 下一个 »

本章主要介绍X86架构下如何部署AIChat引擎, 升级AIChat引擎请查看文档:AIChat引擎版本升级

1.安装环境要求

1.1. 环境检查

1.1.1 CPU架构以及指令集确认

输入查看系统的指令

uname -a|grep x86

可以看到如下信息,即为正常:

输入查看系统指令集的指令:

cat /proc/cpuinfo|grep avx

可以看到如下信息,即为正常:

1.1.2网络环境检查

利用ping和telnet的方法无法准确判断是否连通,请务必按照本教程来检查。

网络环境检查要确保Smartbi服务器和NLA服务器双向访问正常。

首先确认NLA服务器是否可以连通Smartbi服务:

curl -L <http|https>://<Smartbi地址>

出现如下信息则在NLA服务器访问Smartbi服务是正常的。

同理需要在Smartbi安装的服务器上确认AIChat的服务是否连通:

curl -L <http|https>://<AIChat服务地址>

出现如下信息则在Smartbi服务器访问NLA服务是正常的。

安装权限要求:

安装时用root用户运行或使用具有sudo权限的用户执行,推荐使用root用户安装,如果是普通用户有sudo权限的,在命令前加上sudo。

1.1.3 关闭selinux 

临时关闭selinux,立即生效,不需要重启服务器。

setenforce 0

永久关闭selinux,修改完配置后需要重启服务器才能生效

sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

2.安装

  (1) 解压安装包

cd /<安装包路径>
tar -xvf nla-agent-setup.tar.gz

  (2) 执行安装脚本进行安装

先在安装包的解压目录下对文件进行授权:

sudo chmod 777 -R *

创建AIChat安装目录(以下以/data/admin/smartbi-nla为例)

mkdir -p /data/admin/smartbi-nla

进入安装包解压目录

cd /<安装包解压目录>

使用install.sh脚本进行安装:

sudo bash install.sh

输入创建的AIChat安装目录的绝对路径:

当出现如下字样则说明安装完成并已经启动:

检查aichat启动是否成功

docker ps                     # 列出当前正在运行的 Docker 容器
docker logs 容器的名称或 ID   # 查看 Docker 容器的日志输出

如果操作系统已安装了高版本的docker,可能会碰到网络问题,导致启动失败。此时需要修改docker-compose.yml文件,添加network配置。

docker-compose.yml
version: "3"
services:
  propertycenter:
    image: "aienv4j:v9.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/propertycenter:/scripts
    links:
      - "redis:airedis"
    entrypoint:
      - /bin/sh
      - /scripts/docker-entrypoint.sh
    depends_on:
      - redis
    restart: always
    networks:
      smartbinla_v1:

  aiweb: 
    image: "aienv4j:v9.1"
    ports: 
      - "9060:9082" 
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/aiweb:/scripts
    links: 
      - "redis:airedis"
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    depends_on: 
      - redis
    restart: always
    networks:
      smartbinla_v1:

  admin: 
    image: "aienv4j:v9.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/admin:/scripts
    links: 
      - "redis:airedis"
      - "propertycenter:propertycenter"
      - "mongo:aimongo"
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    depends_on: 
      - redis
      - propertycenter
      - mongo
    restart: always
    networks:
      smartbinla_v1:
        aliases:
          - main
       
  modulemanager: 
    image: "aienv4j:v9.1"
    ports:
      - "9081:9081"
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/modulemanager:/scripts
    links: 
      - "redis:airedis"
      - "propertycenter:propertycenter"
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    depends_on: 
      - redis
      - propertycenter
    restart: always  
    networks:
      smartbinla_v1:

  aibus: 
    image: "aienv4j:v9.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/aibus:/scripts
    links: 
      - "redis:airedis"
      - "propertycenter:propertycenter"
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    depends_on: 
      - redis
      - propertycenter
    restart: always
    networks:
      smartbinla_v1:

  smartbiproxy: 
    image: "aienv4j:v9.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/ailogs
      - /data/admin/smartbi-nla/services:/jars
      - /data/admin/smartbi-nla/scripts/smartbiproxy:/scripts
    links: 
      - "redis:airedis"
      - "propertycenter:propertycenter"
    entrypoint:
      - /bin/sh
      - /scripts/docker-entrypoint.sh
    depends_on: 
      - redis
      - propertycenter
    restart: always
    networks:
      smartbinla_v1:

  nl2sql_llm:
    image: "aienv4py-llm:v6"
    volumes:
      - /data/admin/smartbi-nla/logs:/logs
      - /data/admin/smartbi-nla/scripts/nl2sql_llm:/scripts
      - /data/admin/smartbi-nla/services:/services
      - /data/admin/smartbi-nla/data/nl2sql_data:/data
      - /data/admin/smartbi-nla/backup/backup_data:/backup_data
    links: 
      - "redis:airedis"
      - "admin:main"
    depends_on: 
      - redis
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    restart: always
    networks:
      smartbinla_v1:

  jupyter:
    image: "aienv4py-agent:v1.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/logs
      - /data/admin/smartbi-nla/scripts/agent:/scripts
      - /data/admin/smartbi-nla/services:/services
    links:
      - "redis:airedis"
      - "admin:main"
    depends_on:
      - redis
    entrypoint:
      - /bin/sh
      - /scripts/docker-entrypoint-runtime.sh
    restart: always
    networks:
      smartbinla_v1:

  agent:
    image: "aienv4py-agent:v1.1"
    volumes:
      - /data/admin/smartbi-nla/logs:/logs
      - /data/admin/smartbi-nla/scripts/agent:/scripts
      - /data/admin/smartbi-nla/services:/services
      - /data/admin/smartbi-nla/data/nl2sql_data:/data
      - /var/run/docker.sock:/var/run/docker.sock 
    links: 
      - "redis:airedis"
      - "admin:main"
      - "jupyter:jupyter"
    depends_on: 
      - redis
      - jupyter
    entrypoint:
      - /bin/sh 
      - /scripts/docker-entrypoint.sh
    restart: always
    networks:
      smartbinla_v1:

  mongo:
    image: "mongo:4"
    volumes:
      - /data/admin/smartbi-nla/data/mongo/data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: smartbi1#nla
    restart: always
    networks:
      smartbinla_v1:
        aliases:
          - aimongo
  
  redis:
    image: "airedis:v5"
    volumes:
      - /data/admin/smartbi-nla/data/config:/var/lib/mysql
      - /data/admin/smartbi-nla/backup/config:/backup
    restart: always
    networks:
      smartbinla_v1:
        aliases:
          - airedis

networks:
  smartbinla_v1:

如果需要停止AIChat,可以执行命令

cd /data/admin/smartbi-nla  # AIChat安装目录
sudo bash stop.sh

停止后再次运行,可以执行命令

cd /data/admin/smartbi-nla  # AIChat安装目录
sudo bash run.sh

(3)修改docker本地存储地址(可选择)

原因:通常docker安装后,默认的本地存储地址是根目录,根目录通常都不大,需要将仓库迁移到容量较大的目录

方法:

1、停止AIChat和docker

cd /data/admin/smartbi-nla   #停止AIChat

./stop.sh 

systemctl stop docker   #停止docker

2、创建存储目录(假设你的存储目录是:/data/docker-data)

mkdir /data/docker-data

3、在 /etc/docker目录下创建daemon.json文件;如果存在该文件则修改:

cd /etc/docker

vim /etc/docker/daemon.json
4、daemon.json文件的内容如下(填写创建的存储目录地址)
{
"data-root": "/data/docker-data"
}
5、重启docker
systemctl restart docker

(4)更改了docker本地存储地址后需要重新安装

进入AIChat安装目录

cd /<AIChat安装目录>

删除AIChat目录下文件

rm -rf *

进入安装包解压目录

cd /<安装包解压目录>

使用install.sh脚本进行安装:

sudo bash install.sh

输入创建的AIChat安装目录的绝对路径:

当出现如下字样则说明安装完成:

  (3) 服务设置

 打开Smartbi,进入系统运维--系统选项找到 服务器地址-- Smartbi服务器URL地址 配置项,设置Smartbi的地址:

这里以 http://10.10.202.100:8080/smartbi为例。

进入“系统运维--自然语言配置“中设置“自然语言分析的登录地址”,测试连接成功后点击“保存”。

AIChat默认的端口为9060;如需修改端口请依照安装目录下的docker-compose.yml的注释进行修改。

如果点击“保存“按钮提示报错,请检查一下是否拥有系统配置权限。

打开AIChat管理后台,配置smartbi服务器。地址:http://ip:9060/aiweb/#/manager/config   默认密码:admin/manager

配置smartbi服务器地址。

样例:http://10.10.202.101:18080/smartbi

  (4) 配置大语言模型

进入“系统运维--自然语言配置“中设置大模型配置”,新增大模型。

支持OpenAI接口,阿里千问、百度等大模型。

配置在线大模型前,要先获取大模型的api_key。

(5)训练图谱

进入Smartbi,准备好数据模型。然后进入自然语言配置--构建模型图谱。

构建图谱时,选择必要的、有明确业务含义的字段,不要选择日期字段、ID类字段,时间层次。

(5)使用AIChat

浏览器中访问AIChat,http://10.10.202.100:9060/aiweb,用smartbi中的账号登录。

选择训练的图谱,进行对话式分析。

3.常见问题(FAQ)

1. selinux导致daemon的OCI runtime create failed

问题现象:启动服务的时候出现报错,报错信息如下

解决办法:关闭selinux 

临时关闭selinux,立即生效,不需要重启服务器。

setenforce 0


永久关闭selinux,修改完配置后需要重启服务器才能生效

sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

2. CPU缺少AVX指令集合

问题现象:启动服务后nl2sql、metadata、intention2cls、rhetorical_question服务不停的重启或停止运行。

使用docker logs 进入容器查看,出现如下日志:

Illegal instruction (core dumped)

当前服务器的 CPU 不支持TensorFlow所需要的指令集 avx 和 avx2。

解决办法:更换服务器,要求服务器支持AVX指令集。


3. 安装完成了但是自然语言分析的配置项显示不出来。

问题现象:填了“自然语言分析的登陆地址“,点击“测试连接”,提示OK,点击“显示更多设置“按钮无反应。

问题可能的原因1:如果部署了CAS拓展包,请检查CAS服务器是否能与nla服务器互通。

问题可能的原因2:Smartbi服务器地址没有填,或者NLA服务无法访问smartbi服务的地址。请在NLA服务器上用curl -L <Smartbi地址>来测试连通性。

4. 启动报NLA服务 iptables failed问题

问题报错:如下

解决方案:

1、检查iptables状态,  systemctl status iptables  如果状态启动则跳到第3步,如果失败则参照第2步进行安装iptables。

2、安装iptables

   sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

   yum install iptables

   sudo systemctl start iptables

   sudo systemctl enable iptables

3、手动添加iptables规则

   sudo iptables -P FORWARD ACCEPT
   sudo iptables -A FORWARD -i dockere -j ACCEPT
   sudo iptables -A FORWARD-o dockero -j ACCEPT

4、重启docker 

   sudo systemctl restart docker

  • 无标签