157 lines
4.6 KiB
Markdown
157 lines
4.6 KiB
Markdown
|
|
# 开发构建指南
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
| 组件 | 版本 | 位置 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| JDK | 11 | `/usr/lib/jvm/java-11-openjdk-amd64` |
|
|||
|
|
| Maven | - | 系统安装 |
|
|||
|
|
| Node.js | - | 系统安装 |
|
|||
|
|
| Python | 3.11 | Conda env `langchain-chat` |
|
|||
|
|
| Conda | - | `/opt/software/miniconda3` |
|
|||
|
|
| Docker | - | 系统安装 |
|
|||
|
|
|
|||
|
|
## 启动顺序
|
|||
|
|
|
|||
|
|
### 1. Docker 数据层
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan
|
|||
|
|
|
|||
|
|
# MySQL
|
|||
|
|
cd mysql/mysql-8.4.4 && docker compose up -d && cd ../..
|
|||
|
|
|
|||
|
|
# Redis
|
|||
|
|
docker start redis-server 2>/dev/null || docker run -d --name redis-server -p 6379:6379 redis:7-alpine
|
|||
|
|
|
|||
|
|
# Milvus(含 etcd + MinIO)
|
|||
|
|
cd milvus && docker compose up -d && cd ..
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
验证:`docker ps` 确认 mysql-server、redis-server、milvus-standalone、milvus-etcd、milvus-minio 均 running。
|
|||
|
|
|
|||
|
|
### 2. Java 后端
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 使用现有 jar 启动
|
|||
|
|
sudo bash /opt/download/oss_files/gangyan-deploy/gangyan/backend/start_local.sh
|
|||
|
|
|
|||
|
|
# 或手动启动
|
|||
|
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan/backend
|
|||
|
|
nohup java -Xms512m -Xmx2048m -Dspring.profiles.active=yj -jar chat_web_yj.jar > nohup.out 2>&1 &
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Python RAG
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
source /opt/software/miniconda3/etc/profile.d/conda.sh
|
|||
|
|
conda activate langchain-chat
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan/langchain-chat
|
|||
|
|
export PYTHONPATH="$(pwd):$PYTHONPATH"
|
|||
|
|
nohup python startup.py --all-api > langchain.log 2>&1 &
|
|||
|
|
|
|||
|
|
# PDF 转换微服务(可选)
|
|||
|
|
bash /opt/download/oss_files/gangyan-deploy/gangyan/scripts/pdf-convert-service.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 前端
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_front
|
|||
|
|
npm run dev
|
|||
|
|
# 或后台运行
|
|||
|
|
nohup npm run dev > nohup.out 2>&1 &
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 一键启动
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
bash /opt/download/oss_files/gangyan-deploy/gangyan/start_all.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 构建
|
|||
|
|
|
|||
|
|
### Java 后端重新打包
|
|||
|
|
|
|||
|
|
修改源码后必须重新打 jar:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_backend
|
|||
|
|
mvn -DskipTests package
|
|||
|
|
# 输出:target/chat_web_backend.jar
|
|||
|
|
# 复制到 backend/ 目录
|
|||
|
|
cp target/chat_web_backend.jar ../backend/chat_web_yj.jar
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
注意:`lib/` 下有两个 system scope jar(aspose-words、app-sign-sdk),打包时需确保 `includeSystemScope=true`(pom.xml 已配置)。
|
|||
|
|
|
|||
|
|
### 前端生产构建
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_front
|
|||
|
|
npm run build
|
|||
|
|
# 输出到 dist/ 目录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 健康检查
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -s -o /dev/null -w "Java %{http_code}\n" http://127.0.0.1:8099/chat_web_backend/app/user
|
|||
|
|
curl -s -o /dev/null -w "Langchain %{http_code}\n" http://127.0.0.1:7861/docs
|
|||
|
|
curl -s -o /dev/null -w "Frontend %{http_code}\n" http://127.0.0.1:3000/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 日志文件
|
|||
|
|
|
|||
|
|
| 服务 | 日志位置 |
|
|||
|
|
|------|----------|
|
|||
|
|
| Java 后端 | `backend/nohup.out`、`logs/spring.log`、`logs/backend.log` |
|
|||
|
|
| Python RAG | `langchain-chat/langchain.log`、`logs/langchain-chat.log` |
|
|||
|
|
| 前端 | `chat_web_front/nohup.out` |
|
|||
|
|
| PDF 转换 | `logs/pdf-convert-service.log` |
|
|||
|
|
|
|||
|
|
## 运维脚本
|
|||
|
|
|
|||
|
|
`scripts/` 目录下提供各模块独立重启脚本:
|
|||
|
|
|
|||
|
|
| 脚本 | 用途 |
|
|||
|
|
|------|------|
|
|||
|
|
| `backend-restart.sh` | 重启 Java 后端 |
|
|||
|
|
| `langchain-restart.sh` | 重启 Python RAG |
|
|||
|
|
| `frontend-restart.sh` | 重启前端 |
|
|||
|
|
| `mysql-restart.sh` | 重启 MySQL |
|
|||
|
|
| `redis-restart.sh` | 重启 Redis |
|
|||
|
|
| `milvus-restart.sh` | 重启 Milvus |
|
|||
|
|
| `common-restart.sh` | 通用重启 |
|
|||
|
|
| `log-trim-daemon.sh` | 日志清理 |
|
|||
|
|
| `pdf-convert-service.sh` | PDF 转换服务 |
|
|||
|
|
| `backend-pack.sh` | 后端打包 |
|
|||
|
|
|
|||
|
|
## 配置文件位置速查
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
chat_web_backend/src/main/resources/
|
|||
|
|
├── application.yml # 公共配置
|
|||
|
|
├── application-yj.yml # 当前在用(本机数据库)
|
|||
|
|
├── application-dev.yml # 开发环境(历史)
|
|||
|
|
├── application-test.yml # 测试环境
|
|||
|
|
├── application-prod.yml # 生产环境(ENC加密)
|
|||
|
|
├── mapper/ # MyBatis XML
|
|||
|
|
│ ├── sys/ # 系统表映射
|
|||
|
|
│ └── gpt/ # 业务表映射
|
|||
|
|
└── ueditorConfig/ # UEditor 配置
|
|||
|
|
|
|||
|
|
langchain-chat/configs/
|
|||
|
|
├── model_config.py # 模型、API Key、模型路径
|
|||
|
|
├── server_config.py # 服务端口、Worker 配置
|
|||
|
|
└── kb_config.py # 知识库、向量库、MySQL、搜索引擎
|
|||
|
|
|
|||
|
|
chat_web_front/
|
|||
|
|
├── .env # 环境变量(端口、代理、上下文)
|
|||
|
|
├── vite.config.ts # Vite 配置(代理、插件)
|
|||
|
|
├── tsconfig.json # TypeScript 配置
|
|||
|
|
└── tailwind.config.js # Tailwind CSS
|
|||
|
|
```
|