Files
AILab/readme.md
T
BBIT-Kai 64262c4432 更新
2025-10-22 13:54:10 +08:00

9.9 KiB
Raw Blame History

主干AI实验室

一、技术栈

  • 运维

    • Docker:项目部署
    • Nginx:前端项目部署
    • Kong: 网关
    • Prometheus:服务监控
    • Grafana:数据可视化
  • 前端

    • VueVben Admin作为框架
      • 开发语言:TypeScript/JavaScript
  • 后端

    • Ktor:业务后端
      • 开发语言:Java/Kotlin
    • FastAPI:实验室AI模块后端程序
      • 开发语言:Python
    • RabbitMQ:消息队列
  • 数据库

    • Radis:内存数据库
    • PostgreSQL:实验室业务数据库
    • Milvus:实验室AI模块向量数据库
  • 人工智能

    • LangChain:自定义LLM流程核心
    • LangGraphAgent构建核心
  • 对象存储服务器

    • MinIO:实验室对象存储服务器

二、端口使用

公网域名:s1.ronsunny.cn

公网端口 内网端口 docker端口 docker服务/Host 技术栈 功能作用
8090 ce_vue Vue vue前端服务
8089 Ktor 实验室业务后端
13011 ce_pybackend FastAPI 实验室AI后端
5432 5432 ce_postgres PostgreSQL PostgreSQL数据库
6379 6379 ce_redis Redis Radis数据库
2379 ce_etcd Etcd EtcdKey-Value 存储,给ce_milvus使用
9000 9000 9000 ce_minio MinIO MinIO数据访问
9001 9001 ce_minio MinIO MinIO管理界面minioadmin:minioadmin
19530 19530 ce_milvus Milvus Minvus数据访问
9091 9091 ce_milvus Milvus Minvus管理界面,需要加/webui,无需登录
3000 3000 ce_attu Attu AttuMinvus
8090 8090 8090 ce_kong Kong Kong网关
8001 8001 ce_kong Kong Kong Admin API
8002 8002 ce_kong Kong Kong管理界面,无需登录
8444 8444 ce_kong Kong Kong Admin API 的 HTTPS 端口
8088 ws-scrcpy Android远程框架
5672 5672 ce_rabbitmq RabbitMQ RabbitMQ 客户端连接端口
15672 15672 ce_rabbitmq RabbitMQ RabbitMQ管理界面admin:123456
9323 9323 Docker Docker debug端口
3001 3001 ce_grafana Grafana Grafana管理界面admin:123456
9090 9090 ce_prometheus Prometheus Prometheus监控/管理界面,无需登录
9121 ce_redis_exporter Prometheus Prometheus监控Radis的工具
ce_postgres_exporter Prometheus Prometheus监控PostgreSQL的工具
9100 ce_node_exporter Prometheus Prometheus监控主机的工具
13011 13011 13011 Harbor Harbor Harboradmin:bbit
8088 建议后续关闭,原Android远程框架,现已由网关控制
8089 建议后续关闭,原Ktor后端服务,现已由网关控制

三、新部署

3.1 ktor

  1. 将Ktor程序运行installDist打包程序。

  2. 将程序覆盖于服务器/opt/final/ktor文件夹

  3. 重启服务

    sudo systemctl restart ktor.service
    
    sudo systemctl status ktor.service
    

3.2 FastAPI

  1. 打包镜像:运行Dockerfile

    docker build -t ce_pybackend .
    
  2. 打标签

    docker tag ce_pybackend:latest s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:latest
    docker tag ce_pybackend:latest s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:1.5
    
  3. 推送镜像

    docker push s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:1.5
    docker push s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:latest
    
  4. (服务器)重启Compose

    docker-compose pull backend
    
    docker compose up -d
    

3.3 Vue

  1. 打包项目

    pnpm build:antd
    
  2. 打包镜像:运行Dockerfile

    docker build -t ce_vue .
    
  3. 打标签

    docker tag ce_vue:latest s1.ronsunny.cn:13011/bbit_ai/ce_vue:latest
    docker tag ce_vue:latest s1.ronsunny.cn:13011/bbit_ai/ce_vue:1.1.0
    
  4. 推送镜像

    docker push s1.ronsunny.cn:13011/bbit_ai/ce_vue:1.1.0
    docker push s1.ronsunny.cn:13011/bbit_ai/ce_vue:latest
    
  5. (服务器)重启Compose

    docker-compose pull vue
    docker compose up -d
    

3.4 更新并重启Compose

docker compose down
docker compose pull vue backend
docker compose up -d

docker image prune -f

四、配置

  • 安装顺序

    1. 安装docker
    2. 运行基本环境infra-compose.yaml
    3. 安装Harbor
    4. 推送镜像
    5. 运行前后端程序docker-compose.yaml
  • Harbor

    1. 添加用户

    2. 添加仓库

    3. 添加仓库用户使用权限

    4. (2x客户端)登录

      docker login http://s1.ronsunny.cn:13011
      
  • Prometheus

    1. 设置docker metrics配置文件

      {
        "registry-mirrors": [
          "https://docker.m.daocloud.io",
          "https://mirror.baidubce.com",
          "https://docker.nju.edu.cn"
        ],
        "metrics-addr": "10.10.10.9:9323",
        "experimental": true,
        "insecure-registries": ["s1.ronsunny.cn:13011"]
      }
      
    2. 重启docker

      sudo systemctl restart docker
      
  • RabbitMQ

    1. 添加用户
    2. 添加Vhost
  • [Grafana][https://grafana.com/grafana/dashboards/]

    1. 创建Prometheus数据源

    2. 增加配置

      项目 代码 描述
      MinIO 13502
      Docker 9621
      PostgreSQL 9628
      主机 1860
      RabbitMQ 10991
      Redis 11835
      Prometheus 19268
      主机 中文版 8919

五、其他

旧部署

后端

ktor

  1. 将Ktor程序运行installDist打包程序。

  2. 将程序覆盖于服务器/opt/final/ktor文件夹

  3. 将项目目录server/service的ktor.service文件置于服务器/etc/systemd/system/目录

  4. 输入命令使服务开机自启

    sudo systemctl enable ktor.service
    sudo systemctl status ktor.service
    
    
    sudo systemctl restart ktor.service
    

python

  1. 打包Docker

    docker build -t ce_pybackend .
    
  2. 保存Image为文件

    docker save -o ce-pybackend.tar ce_pybackend
    
  3. 将保存好的Imagece-pybackend.tar上传到服务器

  4. 删除服务器的旧版镜像

    docker rmi  ce_pybackend:latest
    
  5. 读取上传的新镜像

    docker load -i ce_pybackend.tar
    

其他命令:

  • 测试运行docker

    docker run -d -p 13011:13011 ce_pybackend
    
  • 调试运行项目

    uvicorn app:app --reload --host 0.0.0.0 --port 13011
    
  • docker日志查看

    docker logs -f ce_pybackend
    

前端

直接在wsl中build,不要install

  1. 在vue目录运行docker打包命令

    pnpm build:docker
    
  2. 将Image保存为文件

    docker save -o vue.tar ce_vue
    
  3. 将保存好的Imagevue.tar上传到服务器

  4. 停掉之前的docker compose

    docker-compose down
    
  5. 删除之前的Image

    docker rmi  ce_vue:latest
    
  6. 在服务器读取Image

    docker load -i vue.tar
    
  7. 重新运行

    docker compose up -d
    

docker

内网地址

windowshost.docker.internal

Linuxip addr show docker0 查看

相关命令

查看所有镜像

docker images

删除镜像

docker rm 

删除容器

docker rmi 镜像名:Tag

删除无用镜像

docker image prune

Vue项目使用

  • 本地运行dist文件夹
npm install -g http-server
cd dist
http-server -p 8080
  • VBen项目运行方法
  1. 下载最新node

  2. 开发

    # 进入项目目录
    cd vue-vben-admin
    
    # 使用项目指定的pnpm版本进行依赖安装
    npm i -g corepack
    
    # 安装依赖
    pnpm install
    # 启动项目
    pnpm dev
    
  3. 本地部署

    构建
    pnpm build
    
    预览
    pnpm preview