2026-06-19 18:41:35 +08:00
|
|
|
|
# CamTalk 后端配置
|
|
|
|
|
|
|
2026-06-13 15:17:37 +08:00
|
|
|
|
app:
|
2026-06-19 18:41:35 +08:00
|
|
|
|
env: dev # dev / prod,可通过 APP_ENV 环境变量覆盖
|
2026-06-13 15:17:37 +08:00
|
|
|
|
|
|
|
|
|
|
server:
|
|
|
|
|
|
host: "0.0.0.0"
|
|
|
|
|
|
port: 8080
|
2026-06-19 18:41:35 +08:00
|
|
|
|
read_timeout: 30 # 秒
|
|
|
|
|
|
write_timeout: 30 # 秒
|
|
|
|
|
|
shutdown_timeout: 10 # 优雅关闭超时(秒)
|
|
|
|
|
|
heartbeat_interval: 30 # 心跳检查间隔(秒)
|
|
|
|
|
|
heartbeat_timeout: 60 # 心跳超时断开(秒)
|
|
|
|
|
|
allowed_origins: [] # CORS 白名单,空=允许所有
|
2026-06-13 15:17:37 +08:00
|
|
|
|
|
2026-06-19 18:41:35 +08:00
|
|
|
|
session:
|
|
|
|
|
|
ttl: 30 # 会话过期时间(分钟)
|
|
|
|
|
|
max_history: 20 # 对话历史上限(条)
|
2026-06-13 15:17:37 +08:00
|
|
|
|
|
|
|
|
|
|
ai:
|
|
|
|
|
|
stt:
|
2026-06-19 18:41:35 +08:00
|
|
|
|
provider: mimo # mimo / deepgram
|
2026-06-13 21:31:58 +08:00
|
|
|
|
model: mimo-v2.5-asr
|
2026-06-13 21:51:26 +08:00
|
|
|
|
endpoint: "https://api.xiaomimimo.com/v1"
|
2026-06-19 18:41:35 +08:00
|
|
|
|
timeout: 5 # STT 请求超时(秒)
|
|
|
|
|
|
http_client_timeout: 30 # HTTP 客户端超时(秒)
|
2026-06-13 15:17:37 +08:00
|
|
|
|
llm:
|
2026-06-19 18:41:35 +08:00
|
|
|
|
provider: dashscope # dashscope / openai
|
2026-06-13 19:57:35 +08:00
|
|
|
|
model: qwen3-vl-plus
|
2026-06-13 19:57:55 +08:00
|
|
|
|
endpoint: "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
2026-06-19 18:41:35 +08:00
|
|
|
|
timeout: 30 # LLM 请求超时(秒)
|
|
|
|
|
|
http_client_timeout: 60 # HTTP 客户端超时(秒)
|
2026-06-13 15:17:37 +08:00
|
|
|
|
tts:
|
2026-06-19 18:41:35 +08:00
|
|
|
|
provider: mimo # mimo / openai
|
2026-06-14 08:53:12 +08:00
|
|
|
|
model: mimo-v2.5-tts
|
2026-06-14 11:12:49 +08:00
|
|
|
|
voice: mimo_default
|
2026-06-13 15:17:37 +08:00
|
|
|
|
speed: 1.0
|
2026-06-13 19:57:35 +08:00
|
|
|
|
endpoint: "https://token-plan-cn.xiaomimimo.com/v1"
|
2026-06-19 18:41:35 +08:00
|
|
|
|
timeout: 5 # TTS 请求超时(秒)
|
|
|
|
|
|
http_client_timeout: 30 # HTTP 客户端超时(秒)
|
|
|
|
|
|
output_format: mp3 # 输出格式:mp3 / wav
|
|
|
|
|
|
sample_rate: 24000 # 输出采样率
|
2026-06-13 15:17:37 +08:00
|
|
|
|
|
|
|
|
|
|
storage:
|
2026-06-19 22:53:06 +08:00
|
|
|
|
# 三级存储架构:L1 内存 → L2 Redis → L3 PostgreSQL
|
|
|
|
|
|
redis:
|
|
|
|
|
|
enabled: true # 是否启用 Redis(L2 热数据层)
|
|
|
|
|
|
persistence:
|
|
|
|
|
|
enabled: true # 是否启用持久化(L3 冷数据层)
|
|
|
|
|
|
driver: postgres # postgres
|
|
|
|
|
|
# dsn 通过环境变量 CAMTALK_STORAGE_DSN 设置
|
2026-06-19 18:41:35 +08:00
|
|
|
|
|
|
|
|
|
|
redis:
|
|
|
|
|
|
addr: "localhost:6379"
|
|
|
|
|
|
password: ""
|
|
|
|
|
|
db: 0
|
|
|
|
|
|
|
|
|
|
|
|
auth:
|
|
|
|
|
|
# jwt_secret 通过环境变量 CAMTALK_AUTH_JWT_SECRET 设置
|
2026-06-20 13:33:05 +08:00
|
|
|
|
access_ttl: 120 # Access Token 过期时间(分钟)
|
2026-06-19 18:41:35 +08:00
|
|
|
|
refresh_ttl: 10080 # Refresh Token 过期时间(分钟),7 天
|
2026-06-13 15:17:37 +08:00
|
|
|
|
|
2026-06-20 23:51:45 +08:00
|
|
|
|
ratelimit:
|
|
|
|
|
|
enabled: false # 是否启用限流
|
|
|
|
|
|
# WebSocket query 消息限流(核心,控制 AI 成本)
|
|
|
|
|
|
query:
|
|
|
|
|
|
capacity: 10 # 突发容量:允许连续发 10 个 query
|
|
|
|
|
|
rate: 0.2 # 填充速率:每 5 秒补充 1 个令牌
|
|
|
|
|
|
# REST API 登录限流(防暴力破解)
|
|
|
|
|
|
login:
|
|
|
|
|
|
capacity: 5 # 突发容量:允许连续 5 次登录尝试
|
|
|
|
|
|
rate: 0.1 # 填充速率:每 10 秒补充 1 次
|
|
|
|
|
|
# REST API 注册限流
|
|
|
|
|
|
register:
|
|
|
|
|
|
capacity: 3 # 突发容量:允许连续 3 次注册
|
|
|
|
|
|
rate: 0.05 # 填充速率:每 20 秒补充 1 次
|
|
|
|
|
|
|
2026-06-13 15:17:37 +08:00
|
|
|
|
log:
|
2026-06-19 18:41:35 +08:00
|
|
|
|
level: info # debug / info / warn / error
|
|
|
|
|
|
format: console # console / json
|