ICP(Intelligence Control Platform)

一、简介

主干AI实验室使用以下技术栈:

  • 部署

    • Docker:项目部署
    • Nginx:前端项目部署
    • Kong: 网关
  • 前端

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

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

    • 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 MinIOWeb控制端
19530 19530 ce_milvus Milvus Minvus数据访问
9091 9091 ce_milvus Milvus MinvusWeb控制端,需要加/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远程框架
9876 9876 ce_rmq_name_srv RocketMQ NameServer
8080 8080 ce_rmq_proxy RocketMQ RocketMQ Proxy 的 消息发送/消费 REST API 或 TCP 代理端口
8081 8081 ce_rmq_proxy RocketMQ RocketMQ Proxy 的 管理/监控接口
8082 8082 ce_rmq_dashboard RocketMQ RocketMQ Dashboard Web UI 端口
10909 10909 ce_rmq_broker_a RocketMQ broker 内部默认端口
10911 10911 ce_rmq_broker_a RocketMQ Consumer 拉取消息的端口
10912 10912 ce_rmq_broker_a RocketMQ Broker 之间的集群复制/同步
10929 10909 ce_rmq_broker_b RocketMQ broker 内部默认端口
10931 10911 ce_rmq_broker_b RocketMQ Consumer 拉取消息的端口
10932 10912 ce_rmq_broker_b RocketMQ Broker 之间的集群复制/同步
8088 建议后续关闭,原Android远程框架,已由网关控制
8089 建议后续关闭,原Ktor后端服务,已由网关控制
13011 已空闲:原FastAPI后端服务,已由网关控制
服务 端口 用途
NameServer 9876 注册/查询 Broker 地址,服务发现
Broker 10909 内部集群通信(心跳、同步)
10911 外部客户端通信(Producer/Consumer
10912 HA 主从同步(可选)
Proxy 8080 HTTP/REST 客户端访问 Broker
8081 Proxy 管理/状态监控
Dashboard 8082 Web UI 可视化监控

三、部署

后端

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 Compose

包含Vue、PostgreSQL、Radis、MinIO在内的Docker Compose服务

  1. 将项目目录下的server/docker-compose.yml复制到服务器/opt/fianl/vue-image/文件夹下

  2. /opt/fianl/vue-image/文件夹下运行Docker Compose

    docker compose up -d
    

其他

docker的地址

windowshost.docker.internal

Linuxip addr show docker0 查看

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
    
S
Description
主干AI实验室
Readme 133 MiB
Languages
Vue 39.2%
Python 30%
TypeScript 21.8%
Kotlin 5.4%
CSS 1.2%
Other 2.2%