Files
AILab/readme.md
T
2025-11-05 18:10:54 +08:00

419 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 主干AI实验室
## 一、技术栈
- ### 运维
- **Docker**:项目部署
- **Nginx**:前端项目部署
- **Kong**: 网关
- **Prometheus**:服务监控
- **Grafana**:数据可视化
- ### 前端
- **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 | 技术栈 | 功能作用 |
| --------- | -------- | ---------- | -------------------- | -------------------- | ------------------------------------------ |
| **13011** | 13011 | 13011 | Harbor | Harbor | Harboradmin:Bbit000000 |
| | | 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监控主机的工具 |
| | 8000 | 8000 | ce_bot_server | xiaozhi-esp32-server | 小智AI服务ws端口 |
| | 8003 | 8003 | ce_bot_server | xiaozhi-esp32-server | 小智AI服务http端口 |
| | 8005 | 8002 | ce_bot_web | xiaozhi-esp32-server | 小智**管理界面**admin:Bbit000000 |
| | 8092 | 8092 | ce_bot_test | xiaozhi-esp32-server | 小智服务器测试页面 |
| | 8004 | 8004 | ce_bot_mcp | mcp-endpoint-server | 小智MCP接入点 |
| | 8093 | 8090 | CVAT | CVAT | CVAT |
| **8094** | 8094 | 8080 | CVAT | CVAT | CVAT**管理界面**bbit:bbit |
| | | | | | |
| | | | | | |
| | | | | | |
## 三、新部署
### 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 ai.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 | |
## 五、其他
docker 权限
sudo groupadd docker
sudo usermod -aG docker kaijihar
newgrp docker
### 旧部署
后端
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
#### 内网地址
windowshost.docker.internal
Linuxip addr show docker0 查看
#### 相关命令
查看所有镜像
```
docker images
```
删除镜像
```
docker rm
```
删除容器
```
docker rmi 镜像名:Tag
```
删除无用镜像
```
docker image prune
```
### 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
```