因为后端是基于SpringBoot3的应用,因此只需要遵循SpringBoot配置即可
系统架构概述
LangChat Pro 后端采用单体多模块架构设计,基于 Spring Boot 3.x 和 Java 17+ 构建。系统采用分层架构,模块间通过 Maven 依赖管理,确保代码的可维护性和扩展性。
启动器配置
后端只存在一个启动器类,位于 langchat-bootstrap 模块中:
启动此 main 函数即可启动整个 LLM 平台后端项目。
确保在启动前已正确配置数据库连接、Redis 连接等基础环境配置。
配置文件管理
LangChat Pro 采用分层配置管理策略,很多配置都放在前端、存储在数据库中(例如:模型配置、向量数据库配置等)。因此只需要关心核心配置文件中的基础配置即可。
配置文件结构
环境配置
请注意,默认 application.yml 配置使用了 local 配置,因此可能你直接拉取此项目无法启动,需要手动指定使用哪个配置文件:
配置优先级
Spring Boot 配置加载优先级(从高到低):
- 命令行参数:
--spring.profiles.active=prod
- 环境变量:
SPRING_PROFILES_ACTIVE=prod
- 配置文件:
application-{profile}.yml
- 默认配置:
application.yml
对象存储服务配置
LangChat Pro 支持多种对象存储服务,请根据实际需求选择对应的配置方式
配置说明
- 启用某个 OSS,需要先在
default-platform 中指定名称
- 启用某个 OSS,必须在对应的配置中设置
enable-storage: true
- 必须设置每个 OSS 的访问域名,本地和腾讯是
domain 参数,七牛是 base-path,Minio 和阿里是 end-point
配置示例
langchat:
oss:
# 固定填写,本地:local-plus(nginx)、七牛:qiniu-kodo、阿里OSS:aliyun-oss、腾讯OSS:tencent-cos、minio: minio
default-platform: local-plus
local-plus:
- platform: local-plus
# 是否启用
enable-storage: false
# 访问域名
domain: http://127.0.0.1:80/
# 文件夹名称
base-path: langchat-oss/
# 本地存储路径
storage-path: /Users/tycoding/data/software/nginx/
数据库配置
MySQL 配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/langchat?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:password}
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
Redis 配置
spring:
redis:
host: ${REDIS_HOST:localhost}
port: ${REDIS_PORT:6379}
password: ${REDIS_PASSWORD:}
database: ${REDIS_DATABASE:0}
timeout: 10000ms
lettuce:
pool:
max-active: 8
max-wait: -1ms
max-idle: 8
min-idle: 0
日志配置
日志级别配置
logging:
level:
root: INFO
com.langchat: DEBUG
org.springframework.web: INFO
org.springframework.security: INFO
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
file:
name: logs/langchat.log
max-size: 100MB
max-history: 30
性能调优配置
JVM 参数建议
# 生产环境 JVM 参数
-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UseStringDeduplication
连接池优化
spring:
datasource:
druid:
# 连接池配置
initial-size: 10
min-idle: 10
max-active: 50
# 监控配置
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: admin
完成以上配置后,系统将具备完整的对象存储、数据库连接和性能优化能力。