# 主干AI实验室 ## 一、技术栈 - ### 部署 - **Docker**:项目部署 - **Nginx**:前端项目部署 - **Kong**: 网关 - ### 前端 - **Vue**:Vben Admin作为框架 - 开发语言:**TypeScript/JavaScript** - ### 后端 - **Ktor**:业务后端 - 开发语言:**Java/Kotlin** - **FastAPI**:实验室AI模块后端程序 - 开发语言:**Python** - **RabbitMQ**:消息队列 - ### 数据库 - **Radis**:内存数据库 - **PostgreSQL**:实验室业务数据库 - **Milvus**:实验室AI模块向量数据库 - ### 人工智能 - **LangChain**:自定义LLM流程核心 - **LangGraph**:Agent构建核心 - ### 对象存储服务器 - **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 | Etcd,Key-Value 存储,给ce_milvus使用 | | **9000** | 9000 | 9000 | ce_minio | MinIO | MinIO数据访问 | | | 9001 | 9001 | ce_minio | MinIO | MinIO**Web可视化**控制端 | | | 19530 | 19530 | ce_milvus | Milvus | Minvus数据访问 | | | 9091 | 9091 | ce_milvus | Milvus | Minvus**Web控制端**,需要加/webui | | | 3000 | 3000 | ce_attu | Attu | Attu,**Minvus的可视化**控制 | | **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 **管理界面**端口 | | 8088 | | | | | 建议后续关闭,原Android远程框架,现已由网关控制 | | 8089 | | | | | 建议后续关闭,原Ktor后端服务,现已由网关控制 | | 13011 | | | | | 已空闲:原FastAPI后端服务,现已由网关控制 | ## 三、部署 ### 后端 #### ktor 1. 将Ktor程序运行installDist打包程序。 2. 将程序覆盖于服务器/opt/final/ktor文件夹 3. 将项目目录server/service的ktor.service文件置于服务器/etc/systemd/system/目录 4. 输入命令使服务开机自启 ```shell 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. 将保存好的Image`ce-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打包命令 ```shell pnpm build:docker ``` 2. 将Image保存为文件 ```shell docker save -o vue.tar ce_vue ``` 3. 将保存好的Image`vue.tar`上传到服务器 4. 停掉之前的docker compose ``` docker-compose down ``` 5. 删除之前的Image ```shell docker rmi ce_vue:latest ``` 6. 在服务器读取Image ```shell 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 ```shell docker compose up -d ``` ## 其他 ### docker的地址 windows:host.docker.internal Linux:ip addr show docker0 查看 ### Vue项目使用 - 本地运行dist文件夹 ```shell npm install -g http-server cd dist http-server -p 8080 ``` - VBen项目运行方法 1. 下载最新node 2. 开发 ```shell # 进入项目目录 cd vue-vben-admin # 使用项目指定的pnpm版本进行依赖安装 npm i -g corepack # 安装依赖 pnpm install # 启动项目 pnpm dev ``` 3. 本地部署 ```shell 构建 pnpm build 预览 pnpm preview ```