You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
5.7 KiB
122 lines
5.7 KiB
# ================================================================
|
|
# Support Bot - AI智能客服系统 通用配置
|
|
# ================================================================
|
|
# 本文件仅保留所有环境共享的通用配置。
|
|
# 环境差异化的配置(端口、数据库连接、日志级别、API 文档开关等)
|
|
# 已拆分到 application-dev.yml / application-test.yml / application-prod.yml。
|
|
# 打包时通过 Maven Profile 选择目标环境:mvn clean package -P test / -P prod
|
|
# ================================================================
|
|
|
|
spring:
|
|
# ==================== Spring AI Alibaba DashScope 配置 ====================
|
|
# 模型名称、温度、API Key 等参数已迁移到前端「AI 大模型配置管理」页面管理
|
|
ai:
|
|
dashscope:
|
|
# 关闭 DashScope 自动配置:所有 ChatModel/EmbeddingModel 由
|
|
# ChatModelFactory / EmbeddingModelFactory 按 DB(ai_model_config 表) 手动构建
|
|
enabled: false
|
|
|
|
# ==================== 连接池通用配置 ====================
|
|
# 具体的数据源 url/username/password 在各环境 yml 中配置
|
|
datasource:
|
|
driver-class-name: org.postgresql.Driver
|
|
hikari:
|
|
maximum-pool-size: 10
|
|
minimum-idle: 5
|
|
idle-timeout: 300000
|
|
connection-timeout: 20000
|
|
|
|
# ==================== 文件上传大小限制 ====================
|
|
servlet:
|
|
multipart:
|
|
max-file-size: 50MB
|
|
max-request-size: 50MB
|
|
|
|
# ==================== MyBatis Plus 配置 ====================
|
|
mybatis-plus:
|
|
type-aliases-package: com.wok.supportbot.entity
|
|
mapper-locations: classpath*:mapper/**/*.xml
|
|
configuration:
|
|
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
|
|
map-underscore-to-camel-case: true
|
|
global-config:
|
|
db-config:
|
|
logic-delete-field: isDelete
|
|
logic-delete-value: true
|
|
logic-not-delete-value: false
|
|
id-type: assign_id
|
|
|
|
# ==================== 知识库文档处理配置 ====================
|
|
knowledge:
|
|
chunk:
|
|
chunk-size: 200
|
|
overlap: 100
|
|
min-chunk-size-chars: 10
|
|
max-num-chunks: 5000
|
|
keep-separator: true
|
|
vector:
|
|
# 向量维度,需与 Embedding 模型输出维度一致
|
|
# 千问 text-embedding-v2: 1024 | 豆包 doubao-embedding-text-240515: 2048 | OpenAI text-embedding-3-small: 1536
|
|
dimension: 1024
|
|
role:
|
|
# 严格隔离:true=角色未绑定知识库分类时禁止检索任何内容;false=可检索全部知识库
|
|
strict-isolation: false
|
|
faq:
|
|
# FAQ 语义匹配阈值(0-1),低于此值自动降级到 RAG 检索
|
|
semantic-threshold: 0.85
|
|
rag:
|
|
# RAG 回答规则(保真护栏):所有角色统一生效,注入到 RAG system 提示词与 ContextualQueryAugmenter 模板。
|
|
# 调整后无需改代码,重启即生效。规则需引用「下方【知识库资料】」这一占位块。
|
|
answer-rules: |-
|
|
- 完整性优先:必须覆盖下方【知识库资料】中所有与用户问题相关的要点,按资料本身的条理分点结构化输出;不得只摘取其中一两段或几条而遗漏其余相关的步骤、条件、注意事项、话术示例。多段资料从不同角度回答同一问题时,需综合全部相关内容作答。
|
|
- 忠于资料:只能依据下方【知识库资料】回答,不得调用模型自身记忆补充资料之外的内容;资料中包含流程、步骤、话术、制度等具体内容时,优先逐字引用或完整转述,不得使用未检索到的诗句、篇名、作者或步骤。
|
|
- 来源对应:回答中每个要点都应能在【知识库资料】中找到对应来源;不得让回答内容与下方引用来源不一致,也不得将多步流程压缩到只剩一两条。
|
|
- 资料不足:如果【知识库资料】中没有用户要求的内容,请明确说明未在当前知识库中检索到足够资料,并提示补充或调整知识库。
|
|
- 排版规范:使用 Markdown 结构化输出——分点用有序或无序列表(`1.` / `-`),不同要点之间空一行分段,涉及多来源或多角度时可用二级标题(`##`)区分;严禁把所有内容挤在一段内。
|
|
storage:
|
|
# 上传文件本地存储根路径(Windows: D:/uploads, Linux: /data/uploads)
|
|
# 各环境可在 application-{env}.yml 中覆盖
|
|
local-path: ./uploads
|
|
|
|
# ==================== Knife4j API 文档通用配置 ====================
|
|
# knife4j.enable 开关在各环境 yml 中配置(生产环境建议关闭)
|
|
springdoc:
|
|
swagger-ui:
|
|
path: /swagger-ui.html
|
|
tags-sorter: alpha
|
|
operations-sorter: alpha
|
|
api-docs:
|
|
path: /v3/api-docs
|
|
group-configs:
|
|
- group: default
|
|
paths-to-match: /**
|
|
packages-to-scan: com.wok.supportbot.controller
|
|
- group: open-api
|
|
display-name: 开放API
|
|
paths-to-match: /open-api/**
|
|
packages-to-scan: com.wok.supportbot.controller
|
|
|
|
knife4j:
|
|
setting:
|
|
language: zh_cn
|
|
swagger-model-name: 实体类列表
|
|
|
|
# ==================== 日志输出格式(通用) ====================
|
|
# 具体的 logging.level 在各环境 yml 中配置
|
|
logging:
|
|
pattern:
|
|
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n"
|
|
|
|
# ==================== JWT 认证配置 ====================
|
|
jwt:
|
|
# 签名密钥(生产环境务必通过环境变量 JWT_SECRET 覆盖)
|
|
secret: support-bot-jwt-secret-key-2026-please-change-in-production
|
|
# 访问令牌有效期:24小时(毫秒)
|
|
expiration: 86400000
|
|
# 刷新令牌有效期:7天(毫秒)
|
|
refresh-expiration: 604800000
|
|
# ==================== SDK 专用 JWT 配置 ====================
|
|
# SDK Token 签名密钥(独立于管理后台 JWT 密钥,生产环境务必覆盖)
|
|
sdk-secret: support-bot-sdk-jwt-secret-2026-please-change
|
|
# SDK Token 默认有效期:2小时(毫秒)
|
|
sdk-expiration: 7200000
|