2、安装教程

本文档详细列出了系统部署所需的软硬件环境依赖(OS、Docker、Node.js等),并提供标准化的安装脚本与配置步骤,旨在帮助用户在本地或服务器环境中完成系统初始化。

整个安装过程分为以下几步:

1. **前置要求**: 明确系统运行所需的软硬件规格及依赖项,确保环境满足部署标准。
2. 安装docker环境:部署并验证 Docker 容器运行环境,为服务提供基础支撑。
3. 下载yaml文件: 获取部署所需的 YAML 编排文件,文档将详细解读各配置项含义,指导您完成个性化参数调整。
4. 服务初始化:执行服务启动指令。系统将自动从镜像仓库拉取所需镜像并实例化容器。 _(注:首次拉取取决于网络状况,通常耗时 10-20 分钟,请保持网络通畅直至服务自动运行。)_
5. 访问服务:此步骤将介绍服务启动后,如何访问登录NebulaAi
6. 配置模型和相关初始数据: 访问NebulaAi后,需要配置模型和一些初始化数据后,才能正常使用。

1. 前置要求

2.1.1 在线安装之前,需要确保服务器上安装以下基础服务:

Tip
  • docker >= 20.10.24
    • mysql_8.0.42版本则需要docker >= 24.0.8
  • docker-compose >= 1.25.4
  • 操作系统优先推荐Ubuntu 22.04或以上, Debian 11或以上,次级推荐CentOS 7.9 64 位系统

2.1.2 需要申请兼容 open ai 调用方式的模型,获取相关秘钥、模型类型、请求地址等信息,例如阿里云的千问系列、DeepSeek系列等。

Tip

推荐模型配置:

  • 千问:qwen3-max
  • DeepSeeK:DeepSeek-v3.1

2.1.3 单机部署资源建议:cpu >=8C,memory>=16G

2.1.4 网络服务:建议允许外部网络访问

2.1.5 磁盘需求:使用docker安装时,docker所在的磁盘大小最低预留40G以上空间,生成环境建议100G以上。空间不足将导致镜像拉取失败和容器异常终止。

本次演示将从一台空白服务器进行演示部署

2. 安装Docker环境

Tip

1、如果服务器上已经安装好了Docker,该步骤环节可忽略

2、本次案例演示用的是(Ubuntu 24.04.2 LTS)、有网环境安装,如果需要无网络安装,参考官方文档的二进制安装操作;

2.1 安装Docker

# 1.下载关于Docker的依赖环境
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

2.2 添加 Docker 官方 GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2.3 添加仓库

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

2.4 安装Docker Engine

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io

查看Docker版本,有输出内容就证明安装成功

docker version

如果出现了这个报错,主要原因是APT 软件包管理器无法找到 docker-ce、docker-ce-cli和 containerd.io这三个包,也就是说你当前的系统软件源列表里没有 Docker 官方的仓库,所以无法直接安装。


解决方案:

修改 Docker 源文件

# 编辑 docker.list
sudo nano /etc/apt/sources.list.d/docker.list

把原来的内容(可能包含 noble)改成:

deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu jammy stable

保存后更新并安装,重新执行下2.2.4的步骤操作;

3. 下载docker-compose.yaml 文件

3.1 安装命令

可以根据使用的操作系统,执行对应的命令

# AMD-64
wget --content-disposition "https://nbagent.ai/api/docs/files?version=v3.1"
mv docker-compose-v3.1.yaml docker-compose.yaml

# ARM-64
wget --content-disposition "https://nbagent.ai/api/docs/files?version=v3.1&arch=arm64"
mv docker-compose-v3.1-arm.yaml docker-compose.yaml

3.2 创建挂卷

sudo mkdir -p /home/chatbot/langflow-data
sudo mkdir -p /home/chatbot/chatbot-agent/files/upload
sudo chmod -R 777  /home/chatbot/langflow-data
sudo chmod -R 777  /home/chatbot/chatbot-agent/files/upload

3.3 修改ymal文件

1、输入命令,查看下是否有yaml文件

ls

  • 如遇下载异常或者其他情况,复制下面的文本作为docker-compose.yaml文件内容
version: "3"
services:
  chatbot-server:
    container_name: chatbot-server
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-server:v3.1-ce
    restart: always
    depends_on:
      - redis
      - mysql
    environment:
      - DATABASE_URI=mysql://root:yourchatbotpassword@{your_ip_or_host}/chatbot?maxsize=10 # mysql配置地址
      - AGENT_BASE_URL=http://{your_ip_or_host}:8000 # chatbot-agent的服务地址
      - AGENT_WS_PATH=ws://{your_ip_or_host}:8000/dev/eia/ws/chat # chatbota-agent服务的ws访问地址
      - UPLOAD_FOLDER=/data/uploads # 文件上传后的存储路径
      - ANT_AGENT_URL=http://{your_ip_or_host}:8081 # 蚂蚁金融财报研报服务暂时不对外开放
      - REDIS_URL=redis://:Nopassredis^^NexP@{your_ip_or_host} # redis服务的地址
      - FAISS_DB_PATH=/data/faiss_db # 知识库向量存储路径
      - MOCK_SERVER=http://{your_ip_or_host}:5000 # mock服务地址,此处为chatbot-server服务
      - SECRET_KEY=8hW691DzKSHrEG222qYCv1m4rcHRQRbqr4KlaFkjZa0c1 # chatbot-server的jwt secret,pageplug、nebula-ai-flow集成需要
      - TIME_OUT=300
      - LOG_LEVEL=DEBUG
      - TEACH_DB=/data/teach_db # 可教性存储路径
      - PAGEPLUG_SERVER=http://{your_ip_or_host}:30080 # pageplug服务地址
      - PAGEPLUG_CHATBOT_TOKEN_NAME=chatbot_token # 访问pageplug token的key
      - CHATBOT_KEY=3kuuVcM0CUC1hpnq # 第三方应用接入的key
      - ROBOT_HOST=http://{your_ip_or_host}:7777 # 集成第三方应用企业微信、钉钉机器人的服务,该服务只能部署到外网
      - CHATBOT_WEB_SERVER=http://{your_ip_or_host}:3000 # chatbot-web的服务地址
      - CHROMADB_PATH=/data/chromadb # 训练数据存储目录
      - MAX_HISTORY=5 # 每次聊天时初始携带的最大上下文消息
      - FLOW_HOST=http://{your_ip_or_host}:7860 # 工作流服务的地址
      - ACCESS_TOKEN_EXPIRE_MINUTES=240 # 自定义token过期时间,单位分钟. 推荐120-240
      - COMPRESS_IMAGE_SIZE=40 # 上传的图片压缩后的大小配置,单位KB
      # 新增环境变量
      - RAG_DB=milvus # 向量数据库配置,faiss或者milvus
      - MCP_GATEWAY_SERVER=http://mcp-gateway:8080
      - LOGIN_TYPE=account # 登录方式,指定account或者email
    ports:
      - 5000:5000
    volumes:
      - /home/chatbot/chatbot-agent/files:/data/uploads # 文件上传存储路径卷
      - /home/chatbot/chatbot-agent/faiss_db:/data/faiss_db # 向量数据库卷
      - /home/chatbot/chatbot-agent/teach_db:/data/teach_db # 可教性数据卷
      - /home/chatbot/chatbot-agent/chromadb:/data/chromadb # 训练数据挂卷目录

  chatbot-agent:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/agent:v3.1
    container_name: chatbot-agent
    restart: always
    depends_on:
      - redis
    ports:
      - 8000:8000
    environment:
      FLASH_RERANK_MODEL_NAME: "ms-marco-MiniLM-L-12-v2" # 系统内置重排序模型,请勿删除
      REDIS_URL: "redis://:Nopassredis^^NexP@{your_ip_or_host}"
      FILE_UPLOAD_ROOT: "/data/uploads"
      FAISS_DB_PATH: "/data/faiss_db"
      CHROMADB_PATH: "/data/chromadb"
      CHATBOT_SERVER: "http://{your_ip_or_host}:5000"
      LOG_LEVEL: "INFO"
      MAX_TOKEN: "18000" # 模型的最大token数,建议配置为2/3
      TEACH_DB: "/data/teach_db"
      LLM_TIMEOUT: "600"
      # VIDEO_CHAT_SERVER: "http://{your_ip_or_host}:8090"  # video-chat视频处理服务地址, 该参数已废弃
      CHATBOT_KEY: "3kuuVcM0CUC1hpnq" # 第三方访问chatbot-server的key
      CHATBOT_SERVER_OUT: "http://{your_ip_or_host}:5000" # chatbot-server外部调用地址
      EMBEDDING_BATCH_SIZE: "25" # 当次请求向量模型携带的文本块数量。公有云模型的大部分都会限制调用api携带的文本块数量
      MINILM_L12V2_PATH: "/app/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
      DOC_HANDLER: "antiword" # 处理doc word2003 文档的方式,此处无需变动
      FLOW_HOST: "http://{your_ip_or_host}:7860" # 工作流服务的访问地址
      WEBSEARCH_HOST: "http://websearch.nbagent.ai" # 此处参数填写固定值。如果私有化部署无法访问外网,联网搜索功能将无法使用。
      AUDIO_SEGMENT_DURATION: "30" # 自定义音视频分段处理时长,以便模型能够正常处理。单位s
      VIDEO_SEGMENT_DURATION: "30"

      # 新增环境变量
      MILVUS_URI: http://{your_ip_or_host}:19530
      RAG_DB: milvus
      MCP_GATEWAY_SERVER: http://mcp-gateway:8080 # agent会调用mcpgateway启动的mcp服务,所以此处只能填写服务名称
      DATABASE_URI: mysql://root:yourchatbotpassword@{your_ip_or_host}/chatbot?maxsize=10
      MEDIA_TYPE: upload_file

    volumes:
      - /home/chatbot/chatbot-agent/files:/data/uploads # 文件上传存储路径卷
      - /home/chatbot/chatbot-agent/faiss_db:/data/faiss_db # 向量数据库卷
      - /home/chatbot/chatbot-agent/teach_db:/data/teach_db # 可教性数据卷
      - /home/chatbot/chatbot-agent/chromadb:/data/chromadb # 训练数据卷
      - /home/chatbot/chatbot-agent/nvidia:/usr/local/lib/python3.10/site-packages/nvidia # 挂卷nvidia pip包

  chatbot-web:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-ui:v3.1
    container_name: chatbot-web
    ports:
      - 3000:3000
    restart: always
    environment:
      SERVER_URL: "http://{your_ip_or_host}:5000" # chatbot-server的服务地址
      NEXT_PUBLIC_SERVER_URL: "http://{your_ip_or_host}:5000" # mock服务地址,此处填写chatbot-server地址
      NEXT_PUBLIC_DOC_URL: "https://docs.nbagent.ai" # 帮助文档地址
      NEXT_PUBLIC_APP_LOGO: "/api/get/image/YXBwLnBuZw=="
      NEXT_PUBLIC_PLUGIN_LOGO: "/api/get/image/cGx1Z2luLnBuZw=="
      NEXT_PUBLIC_ROBOT_AGENT_SERVER: "http://{your_ip_or_host}:5000" # 企业微信和钉钉集成,配置chatbot-server对外的访问地址,注意该服务需要暴漏到外网才能使用企业微信
      NEXT_PUBLIC_GPUSTACK_URL: ""
      NEXT_PUBLIC_WORKFLOW_URL: "http://{your_ip_or_host}:7860" # 工作流服务地址
      NEXT_PUBLIC_PAGEPLUG_URL: "http://{your_ip_or_host}:30080" #  支持pageplug使用其他域名访问
      NEXT_PUBLIC_DEFAULT_LOCALE: "zh-CN"

  pageplug:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/pageplug-ee:chatbot_202412251048
    container_name: pageplug
    ports:
      - "30080:80"
      - "32017:27017"
    volumes:
      - /home/chatbot/stacks:/appsmith-stacks
    restart: unless-stopped
    environment:
      - PAGEPLUG_CHATBOT_OFFICIAL_WORKSPACE_ID=66ebbd1858fb1943e10a665e
      - PAGEPLUG_CHATBOT_DEPLOY=true
      - PAGEPLUG_CHATBOT_DEFAULT_USER_PASSWORD=chatbotpwd # 使用chatbot-server账号访问pageplug页面时的初始密码
      - PAGEPLUG_CHATBOT_BASE64_ENCODED_SECRET_KEY=OGhXNjkxRHpLU0hyRUcyMjJxWUN2MW00cmNIUlFSYnFyNEtsYUZralphMGMx # chatbot-server的jwt base64字符串
      - PAGEPLUG_LICENSE_KEY=rgC+4eVz2xqWkVGXFA7jVYWmisE8CfgAgJzqfd+0E3yj5cZz6k7NT5Ii3fcwFgKl9ZFLAVPyGtObSxia3H9ArMpZwoCSW5/knsnqVWtQZbH8+oZsXrKPx1vEOI4qG8oWXc7c0GKSErQKh7mfQvrUCmtV0N3iFRe/kivjghE7LtqPsonmHLlRFuk0JUb6R2VtmZyXb6EF830ROLYOISK8mkBK3oUz6UpHvdDpCQarf8lXKdEEs2UPjwlmjoufP0cwKgHPzTo0TDrfeP7riiWKirW0we7B8/1/a34VBWAgvS+/1n7GhLKwmCpX5eQr7uRtda5Tz5KJ9CF4IT7WiszwfQ==

  redis:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/redis:6.2
    container_name: redis
    ports:
      - 6379:6379
    restart: always
    privileged: true
    volumes:
      - /home/chatbot/redis/data:/data
    command: redis-server  --appendonly yes --requirepass Nopassredis^^NexP # redi设置强密码

  mysql:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/mysql:8.0.42-v3.1
    container_name: mysql
    ports:
      - 3306:3306
    restart: always
    volumes:
      - /home/chatbot/mysql:/var/lib/mysql
      # - /home/chatbot/mysql_conf/my.cnf:/etc/mysql/conf.d/my.cnf  #mysql配置文件挂卷
    environment:
      MYSQL_ROOT_PASSWORD: "yourchatbotpassword"
      MYSQL_INITDB_CHARSET: "utf8mb4"
      MYSQL_INITDB_COLLATE: "utf8mb4_unicode_ci"
  nebula-ai-flow:
    container_name: nebula-ai-flow
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/nebulaai-flow:v1.3.2-20250702210612
    privileged: true
    ports:
      - "7860:7860"
    depends_on:
      - postgres
    environment:
      - LANGFLOW_DATABASE_URL=postgresql://nebulaai:Nebuxxl^T11@postgres:5432/nebulaai # 连接postgres服务地址
      - LANGFLOW_AUTO_LOGIN=true
      - LANGFLOW_SECRET_KEY=iaTca1Z-j2laYLkfbGCyGjIVYlQusIqWrvvJgaNGJDE # 工作流的秘钥
      - LANGFLOW_NEW_USER_IS_ACTIVE=True
      - LANGFLOW_NBAI_SECRET_KEY=8hW691DzKSHrEG222qYCv1m4rcHRQRbqr4KlaFkjZa0c1 # 工作流与chatbot-server集成的公用秘钥
      - LANGFLOW_WORKERS=3 # 工作流的工作进程数量
      - LANGFLOW_LOG_LEVEL=INFO
      - LANGFLOW_LOG_ENV=container_csv
    volumes:
      - /home/chatbot/langflow-data:/app/langflow # 工作流的存储路径

  postgres:
    container_name: postgres
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/postgres:15.10-bullseye
    privileged: true
    environment:
      POSTGRES_USER: nebulaai
      POSTGRES_PASSWORD: Nebuxxl^T11
      POSTGRES_DB: nebulaai
    ports:
      - "15432:5432"
    volumes:
      - /home/chatbot/langflow-postgres:/var/lib/postgresql/data

  mcp-gateway:
    container_name: mcp-gateway
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/mcp-gateway:v1.0
    privileged: true
    ports:
      - "18080:8080"
      # - "51000-51200:51000-51200"  # Port range for gateway instances
    environment:
      - HOST=0.0.0.0
      - PORT=8080
      - DEBUG=false
      - LOG_LEVEL=INFO
      - GATEWAY_PORT_START=41000
      - GATEWAY_PORT_END=65000
      - COMMAND_TIMEOUT=30
      - CORS_ORIGINS=*
      - REDIS_URL=redis://:Nopassredis^^NexP@{your_ip_or_host}
      # npm以及uvx安装MCP服务时镜像加速地址
      - NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
      - UV_DEFAULT_INDEX=https://mirrors.aliyun.com/pypi/simple
      #volumes:
      # - /var/run/docker.sock:/var/run/docker.sock  # If needed for container management
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      # start_period: 40s

  # milvus相关服务以及镜像地址
  etcd:
    container_name: milvus-etcd
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/etcd:v3.5.18
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/minio:RELEASE.2024-05-28T17-19-04Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/milvus:v2.5.14
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      MINIO_REGION: us-east-1
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      # tart_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"
  nbai-graphrag:
    container_name: nbai-graphrag
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/nbai-graphrag:v2.7.2
    ports:
      - "${PORT:-9621}:9621"
    volumes:
      - /home/chatbot/graph/data/rag_storage:/app/data/rag_storage
      - /home/chatbot/graph/data/inputs:/app/data/inputs
      - /home/chatbot/graph/config.ini:/app/config.ini
      - /home/chatbot/graph/lightrag:/app/lightrag
      #- /home/chatbot/graph/.env:/app/.env
      #env_file:
      # - .env

    environment:
      - HOST=0.0.0.0
      - TIKTOKEN_CACHE_DIR=/app/data/tiktoken
      - OLLAMA_EMULATING_MODEL_TAG=latest
      - ENABLE_LLM_CACHE=true
      - RERANK_BINDING=aliyun # 重排序模型类型
      - RERANK_BY_DEFAULT=True # 使用默认使用重排序
      - RERANK_MODEL=gte-rerank-v2 # 重排序模型
      - RERANK_BINDING_HOST=https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank # 重排序地址
      - RERANK_BINDING_API_KEY=your-apikey # 模型访问的apikey
      - ENABLE_LLM_CACHE_FOR_EXTRACT=true
      - SUMMARY_LANGUAGE=Chinese
      - MAX_ASYNC=4
      - MAX_PARALLEL_INSERT=2
      - EMBEDDING_FUNC_MAX_ASYNC=8
      - EMBEDDING_BATCH_NUM=10
      - LLM_MODEL=qwen3-max # 大语言模型的名称
      - LLM_BINDING_HOST=https://dashscope.aliyuncs.com/compatible-mode/v1 # 大语言模型的访问地址
      - LLM_BINDING_API_KEY=your-apikey # 大语言模型的apikey
      - LLM_BINDING=openai # 大语言模型的访问方式
      - OPENAI_LLM_MAX_COMPLETION_TOKENS=9000
      - OLLAMA_LLM_NUM_CTX=32768
      #      - EMBEDDING_BINDING=azure_openai
      #      - AZURE_EMBEDDING_DEPLOYMENT=text-embedding-3-large
      #      - AZURE_EMBEDDING_API_VERSION=2025-01-01-preview
      #      - AZURE_EMBEDDING_ENDPOINT=https://yourendpoint.openai.azure.com
      #      - AZURE_EMBEDDING_API_KEY=your-apikey

      - EMBEDDING_BINDING=openai # 向量模型的类别
      - EMBEDDING_MODEL=text-embedding-3-large # 向量模型的名称
      - EMBEDDING_DIM=3072
      - EMBEDDING_BINDING_HOST=https://api.openai.com/v1 # 向量模型的访问地址
      - EMBEDDING_BINDING_API_KEY=your_api_key # 向量模型的apikey
      - OLLAMA_EMBEDDING_NUM_CTX=8192

      - LIGHTRAG_KV_STORAGE=RedisKVStorage # 缓存使用存储方式
      - LIGHTRAG_VECTOR_STORAGE=MilvusVectorDBStorage # 向量数据库使用存储方式
      - LIGHTRAG_GRAPH_STORAGE=MemgraphStorage # 图数据库的使用方式
      # 下面是向量数据库的一些配置内容
      - MILVUS_URI=http://{your_ip_or_host}:19530
      - MILVUS_DB_NAME=graphrag
      # MILVUS_USER=root
      # MILVUS_PASSWORD=your_password
      # MILVUS_TOKEN=your_token
      # MILVUS_WORKSPACE=yourworkspace

      # 缓存的配置信息
      - REDIS_URI=redis://:Nopassredis^^NexP@{your_ip_or_host}:6379/2
      - REDIS_SOCKET_TIMEOUT=30
      - REDIS_CONNECT_TIMEOUT=10
      - REDIS_MAX_CONNECTIONS=50
      - REDIS_RETRY_ATTEMPTS=3

      # 图数据库的配置内容
      - MEMGRAPH_URI=bolt://{your_ip_or_host}:7687
      - MEMGRAPH_USERNAME=
      - MEMGRAPH_PASSWORD=
      - MEMGRAPH_DATABASE=memgraph

      - NBAI_SECRET_KEY=8hW691DzKSHrEG222qYCv1m4rcHRQRbqr4KlaFkjZa0c1

  memgraph:
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/memgraph-mage:3.7.2
    container_name: nbai-memgraph
    ports:
      - "7687:7687"
      - "7444:7444"
    command: ["--log-level=TRACE"]
    volumes:
      - memgraph_data:/var/lib/memgraph

volumes:
  memgraph_data:

2、输入命令,修改yaml文件配置

vim docker-compose.yaml

3、执行下面命令,替换

# 10.10.4.10为示例IP,需要替换目前环境的ip或域名

:%s/{your_ip_or_host}/10.10.4.10/g

4、执行完命令后,保存文件退出。

3.4 启动镜像

#旧版本命令
sudo docker-compose up -d

#新版本命令
sudo docker compose up -d

看到下面内容的时候,已经安装成功

3.5 访问测试

在浏览器中,访问下这个地址(需要替换成自己环境的ip地址):

# 格式
http://{ip 地址或者域名}:{chatbot-web 的监听端口}

# 默认
http://{ip 地址}:3000

(看到这个页面的时候,已经启动成功了)

# 初始帐号信息如下:

username:chatbot
password:yourchatbotpassword

4. 配置模型和相关的初始数据

4.1 挂卷pip nvidia安装包

  • amd64安装命令
# AMD-64
sudo docker exec chatbot-agent pip install -i https://mirrors.aliyun.com/pypi/simple nvidia-cublas-cu12==12.4.5.8 nvidia-cuda-cupti-cu12==12.4.127  nvidia-cuda-nvrtc-cu12==12.4.127 nvidia-cuda-runtime-cu12==12.4.127  nvidia-cudnn-cu12==9.1.0.70 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-nccl-cu12==2.21.5 nvidia-nvjitlink-cu12==12.4.127 nvidia-nvtx-cu12==12.4.127

# ARM-64
sudo docker exec chatbot-agent pip install -i https://mirrors.aliyun.com/pypi/simple nvidia-cuda-cupti-cu12==12.4.127  nvidia-cuda-nvrtc-cu12==12.4.127  nvidia-cuda-runtime-cu12==12.4.127 nvidia-cudnn-cu12==9.1.0.70.post1  nvidia_cublas_cu12==12.9.0.13  nvidia-cufft-cu12==11.2.1.3  nvidia_nvjitlink_cu12==12.9.41 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.5.9.5 nvidia-nccl-cu12==2.23.4  nvidia-nvtx-cu12==12.4.127

看到下面信息内容的时候,安装包下载成功

4.2 进行挂卷

由于该安装包较大,下载完之后进行挂卷。使用以下命令将容器的nvidia安装包copy到宿主机并进行挂卷,一般默认是处理好了的;

我们也可以进到docker-compose.yaml文件里面查看一下

# 检查挂卷信息是否正确,如果是下面信息,则无需修改直接重启chatbot-agent
volumes:
  - /home/chatbot/chatbot-agent/files:/data/uploads   # 文件上传存储路径卷
  - /home/chatbot/chatbot-agent/faiss_db:/data/faiss_db   # 向量数据库卷
  - /home/chatbot/chatbot-agent/teach_db:/data/teach_db   # 可教性数据卷
  - /home/chatbot/chatbot-agent/chromadb:/data/chromadb   # 训练数据卷
  - /home/chatbot/chatbot-agent/nvidia:/usr/local/lib/python3.10/site-packages/nvidia   # 挂卷nvidia pip包

如果没有,可以执行下面命令

sudo docker cp chatbot-agent:/usr/local/lib/python3.10/site-packages/nvidia  /home/chatbot/chatbot-agent/

NebulaAI的安装就完成了~~