Files
AILab/readme.md
T
2025-10-09 14:11:37 +08:00

227 lines
6.1 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**: 网关
- ### 前端
- **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 | EtcdKey-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的地址
windowshost.docker.internal
Linuxip 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
```