本地 RAG 知识库
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

# ================================================================
# 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