246 lines
8.1 KiB
Markdown
246 lines
8.1 KiB
Markdown
# ICP(Intelligence Control Platform)
|
||
|
||
## 一、简介
|
||
|
||
主干AI实验室使用以下技术栈:
|
||
|
||
- ### 部署
|
||
|
||
- **Docker**:项目部署
|
||
- **Nginx**:前端项目部署
|
||
- **Kong**: 网关
|
||
|
||
- ### 前端
|
||
|
||
- **Vue**:Vben Admin作为框架
|
||
- 开发语言:**TypeScript/JavaScript**
|
||
|
||
- ### 后端
|
||
|
||
- **Ktor**:业务后端
|
||
- 开发语言:**Java/Kotlin**
|
||
- **FastAPI**:实验室AI模块后端程序
|
||
- 开发语言:**Python**
|
||
|
||
- ### 数据库
|
||
|
||
- **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 | MinIOWeb控制端 |
|
||
| | 19530 | 19530 | ce_milvus | Milvus | Minvus数据访问 |
|
||
| | 9091 | 9091 | ce_milvus | Milvus | MinvusWeb控制端,需要加/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远程框架 |
|
||
| | 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. 输入命令使服务开机自启
|
||
```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
|
||
```
|
||
|
||
|