Skip to main content
因为后端是基于SpringBoot3的应用,因此只需要遵循SpringBoot配置即可

系统架构概述

LangChat Pro 后端采用单体多模块架构设计,基于 Spring Boot 3.x 和 Java 17+ 构建。系统采用分层架构,模块间通过 Maven 依赖管理,确保代码的可维护性和扩展性。

启动器配置

后端只存在一个启动器类,位于 langchat-bootstrap 模块中: image-20250910220539900 启动此 main 函数即可启动整个 LLM 平台后端项目。
确保在启动前已正确配置数据库连接、Redis 连接等基础环境配置。

配置文件管理

LangChat Pro 采用分层配置管理策略,很多配置都放在前端、存储在数据库中(例如:模型配置、向量数据库配置等)。因此只需要关心核心配置文件中的基础配置即可。

配置文件结构

image-20250910220612459

环境配置

请注意,默认 application.yml 配置使用了 local 配置,因此可能你直接拉取此项目无法启动,需要手动指定使用哪个配置文件: image-20250910220642418

配置优先级

Spring Boot 配置加载优先级(从高到低):
  1. 命令行参数--spring.profiles.active=prod
  2. 环境变量SPRING_PROFILES_ACTIVE=prod
  3. 配置文件application-{profile}.yml
  4. 默认配置application.yml

对象存储服务配置

LangChat Pro 支持多种对象存储服务,请根据实际需求选择对应的配置方式

配置说明

  1. 启用某个 OSS,需要先在 default-platform 中指定名称
  2. 启用某个 OSS,必须在对应的配置中设置 enable-storage: true
  3. 必须设置每个 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
完成以上配置后,系统将具备完整的对象存储、数据库连接和性能优化能力。