server:
  port: 8082
spring:
  config:
    import:
      - classpath:tongue-image-check-rules.yml
  # gssz 环境不使用 redis/redisson（避免未部署 redis 时启动失败）
  autoconfigure:
    exclude:
      # Spring Data Redis
      - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
      - org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
      - org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfiguration

      # Redisson（关键：V2）
      - org.redisson.spring.starter.RedissonAutoConfigurationV2

      # Baomidou 分布式锁
      - com.baomidou.lock.spring.boot.autoconfigure.LockAutoConfiguration
      - com.baomidou.lock.spring.boot.autoconfigure.RedissonLockAutoConfiguration

      # 你们自研的 Redis / Cache
      - com.emoon.common.redis.config.RedisConfig
      - com.emoon.common.redis.config.CacheConfig
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML
    encoding: UTF-8
    cache: false
  servlet:
    multipart:
      max-file-size: 30MB      # 单个文件最大大小
      max-request-size: 50MB   # 整个请求最大大小
  datasource:
    dynamic:
      primary: tongue
      datasource:
        tongue:
          url: jdbc:mysql://192.168.10.102:3306/emoon_com?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
          username: emoon_com
          password: iJNeCXXtP2LTW6Jc
          driver-class-name: com.mysql.cj.jdbc.Driver


# MinIO配置
minio:
  endpoint: http://192.168.10.103:9000 #内部连接地址(HTTP)
  public-endpoint: http://192.168.10.103:9000 # 公开访问地址(HTTPS，用于返回给前端，需要通过Nginx反向代理)
  access-key: emoonai
  secret-key: emoon.COM3
  bucket-name: emoon-tongue
  expiry-enabled: true # 是否启用URL超时，false表示不会超时
  expiry-minutes: 10080 # URL超时时间（分钟），仅在expiry-enabled为true时生效

# AI服务配置
ai:
  mock-flag: false # true:跳过AI直接返回mock结果；false:走真实流程（本地舌象mock接口 + 二段对话模型diagnosis）

  # 舌诊诊断 provider：dashscope / local
  diagnosis:
    provider: local

  # DashScope（兼容模式）配置
  dashscope:
    url: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
    model: qwen3-vl-plus
    api-key: sk-fa9452b62d504a21b4ed595be3bf3881

  # 舌象图片校验模型配置（dashscope / local）
  image-check:
    provider: local
    local:
      url: "http://192.168.10.122:8001/v1/chat/completions"
      model: "/home/gansu/Qwen3-VL-32B-Instruct"
      auth-header: ""
      auth-token: ""

  # 本地API配置（当 provider=local 时生效）
  local:
    # 指向后端里新增的 mock 本地模型接口（用于整体流程联调）
    # 模型服务（可通过 curl http://ip:8100/service2/v1/models 验证连通性）
    url: "http://192.168.10.122:8000/v1/chat/completions"
    model: "/home/gansu/output_sft_qwen3_2B"
    system-prompt: "我是AI助手."
    auth-header: "" # 例如：Authorization
    auth-token: ""  # 例如：Bearer xxx
    timeout-ms: 15000

  # 大模型配置
  llm:
    # 统一复用同一个网关与模型
    url: https://192.168.10.124:5443/open/router/v1/chat/completions
    api-key: "ME-sk-+SEjkwHcdftoEyfSqNR6JQ==-2qjtTR4YyNw5B/9yJH1QRCeKicWonpmq"
    model: qwen3-235b-w8a8
    diagnosis-model: qwen3-235b-w8a8
    max-tokens: 4096
    stream: false
    enable-thinking: false
    # 内网自签名证书：跳过 HTTPS 证书/主机名校验（仅建议内网使用）
    insecure-ssl: true

mybatis-plus:
  mapperPackage: com.emoon.tongue.mapper

weaviate:
  protocol: http
  host: 8.136.61.90
  port: 6039
  className: LocalKnowledge

# 文件落盘服务（把 MultipartFile base64 后发往对端保存，返回 data.filePath）
tongue:
  file-download:
#    url: http://61.178.77.37:8100/service4/api/file/download
    url: http://192.168.10.122:8083/api/file/download
--- # gssz 环境禁用 redis/redisson（避免干扰启动）
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

# SpringDoc配置
springdoc:
  info:
    title: 甘肃省中医院AI舌诊系统API
    description: AI舌诊系统后端API文档
    version: v1.0.0
  components:
    securitySchemes: {}

  # 静态资源配置
  web:
    resources:
      static-locations: classpath:/static/, classpath:/public/, classpath:/resources/, classpath:/META-INF/resources/
