4.6 KiB
4.6 KiB
开发构建指南
环境要求
| 组件 | 版本 | 位置 |
|---|---|---|
| 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 数据层
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 后端
# 使用现有 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
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. 前端
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_front
npm run dev
# 或后台运行
nohup npm run dev > nohup.out 2>&1 &
一键启动
bash /opt/download/oss_files/gangyan-deploy/gangyan/start_all.sh
构建
Java 后端重新打包
修改源码后必须重新打 jar:
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 已配置)。
前端生产构建
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_front
npm run build
# 输出到 dist/ 目录
健康检查
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