- 为 configuration.py 增加环境变量占位符解析、配置归一化、脱敏快照与启动校验\n- 在 main.py 启动阶段接入配置校验日志,并在致命缺项时阻止进程继续启动\n- 新增 config.example.yaml,并将默认 config.yaml 改为安全占位模板,移除仓库内明文敏感信息\n- 调整 docker-entrypoint.sh 与文档,统一说明配置复制、环境变量注入与当前优化进展
142 lines
4.9 KiB
YAML
142 lines
4.9 KiB
YAML
environment: "${ABOT_ENVIRONMENT:development}"
|
||
plugin_dir: "${ABOT_PLUGIN_DIR:plugins}"
|
||
|
||
db_config:
|
||
pool_name: "${ABOT_DB_POOL_NAME:wechat_boot_pool}"
|
||
pool_size: "${ABOT_DB_POOL_SIZE:10}"
|
||
host: "${ABOT_DB_HOST:127.0.0.1}"
|
||
# 新配置统一使用 port;prot 仅作为历史兼容字段保留。
|
||
port: "${ABOT_DB_PORT:3306}"
|
||
prot: "${ABOT_DB_PORT:3306}"
|
||
user: "${ABOT_DB_USER:root}"
|
||
password: "${ABOT_DB_PASSWORD}"
|
||
database: "${ABOT_DB_NAME:message_archive}"
|
||
charset: "${ABOT_DB_CHARSET:utf8mb4}"
|
||
use_unicode: true
|
||
get_warnings: true
|
||
pool_reset_session: true
|
||
|
||
redis_config:
|
||
host: "${ABOT_REDIS_HOST:127.0.0.1}"
|
||
port: "${ABOT_REDIS_PORT:6379}"
|
||
password: "${ABOT_REDIS_PASSWORD:}"
|
||
db: "${ABOT_REDIS_DB:0}"
|
||
decode_responses: true
|
||
|
||
# 邮件发送配置
|
||
email_config:
|
||
smtp_server: "${ABOT_EMAIL_SMTP_SERVER:smtp.163.com}"
|
||
smtp_port: "${ABOT_EMAIL_SMTP_PORT:465}"
|
||
sender_email: "${ABOT_EMAIL_SENDER:}"
|
||
sender_password: "${ABOT_EMAIL_PASSWORD:}"
|
||
alert_recipient: "${ABOT_EMAIL_ALERT_RECIPIENT:}"
|
||
|
||
glances:
|
||
host: "${ABOT_GLANCES_HOST:127.0.0.1}"
|
||
port: "${ABOT_GLANCES_PORT:61208}"
|
||
|
||
wx_config:
|
||
# 微信管理账号,用于接收部分管理员指令。
|
||
admin: [ "${ABOT_WX_ADMIN:admin}" ]
|
||
|
||
llm:
|
||
default_backend: "${ABOT_LLM_DEFAULT_BACKEND:dify_workflow_chat}"
|
||
backends:
|
||
dify_workflow_chat:
|
||
provider: "dify"
|
||
mode: "workflow"
|
||
api_key: "${ABOT_LLM_DIFY_WORKFLOW_CHAT_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "workflows/run"
|
||
response_mode: "blocking"
|
||
request_timeout: 120
|
||
max_retries: 1
|
||
retry_delay_seconds: 1.0
|
||
dify_workflow_member_context:
|
||
provider: "dify"
|
||
mode: "workflow"
|
||
api_key: "${ABOT_LLM_DIFY_MEMBER_CONTEXT_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "workflows/run"
|
||
workflow_output_key: "text"
|
||
response_mode: "streaming"
|
||
request_timeout: 240
|
||
dify_workflow_message_summary:
|
||
provider: "dify"
|
||
mode: "workflow"
|
||
api_key: "${ABOT_LLM_DIFY_MESSAGE_SUMMARY_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "workflows/run"
|
||
workflow_output_key: "text"
|
||
response_mode: "streaming"
|
||
request_timeout: 180
|
||
dify_workflow_douyu_daily_report:
|
||
provider: "dify"
|
||
mode: "workflow"
|
||
api_key: "${ABOT_LLM_DIFY_DOUYU_REPORT_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "workflows/run"
|
||
workflow_output_key: "text"
|
||
response_mode: "blocking"
|
||
request_timeout: 240
|
||
dify_chat_global_news:
|
||
provider: "dify"
|
||
mode: "chat"
|
||
api_key: "${ABOT_LLM_DIFY_GLOBAL_NEWS_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "chat-messages"
|
||
response_mode: "blocking"
|
||
request_timeout: 60
|
||
openai_compatible_game_task:
|
||
provider: "openai_compatible"
|
||
api_url: "${ABOT_LLM_GAME_TASK_API_URL:https://api.example.com/v1/chat/completions}"
|
||
api_key: "${ABOT_LLM_GAME_TASK_API_KEY:}"
|
||
model: "${ABOT_LLM_GAME_TASK_MODEL:doubao-1-5-lite-32k-250115}"
|
||
stream: false
|
||
temperature: 0.2
|
||
max_tokens: 1000
|
||
timeout_seconds: 60
|
||
openai_compatible_ai_auto_response:
|
||
provider: "openai_compatible"
|
||
api_base_url: "${ABOT_LLM_AUTO_REPLY_API_BASE_URL:https://api.example.com/v1}"
|
||
endpoint: "chat/completions"
|
||
api_key: "${ABOT_LLM_AUTO_REPLY_API_KEY:}"
|
||
model: "${ABOT_LLM_AUTO_REPLY_MODEL:gpt-5.4}"
|
||
stream: true
|
||
temperature: 0.35
|
||
max_tokens: 120
|
||
timeout_seconds: 45
|
||
max_retries: 3
|
||
retry_delay_seconds: 1.0
|
||
dify_workflow_ai_auto_response:
|
||
provider: "dify"
|
||
mode: "workflow"
|
||
api_key: "${ABOT_LLM_DIFY_AUTO_REPLY_API_KEY:}"
|
||
api_base_url: "${ABOT_LLM_DIFY_API_BASE_URL:http://127.0.0.1:8080/v1}"
|
||
endpoint: "workflows/run"
|
||
workflow_output_key: "result_json"
|
||
response_mode: "blocking"
|
||
request_timeout: 15
|
||
max_retries: 1
|
||
retry_delay_seconds: 1.0
|
||
openai_compatible_ai_gen_image:
|
||
provider: "openai_compatible"
|
||
api_base_url: "${ABOT_LLM_IMAGE_API_BASE_URL:https://api.example.com/v1}"
|
||
endpoint: "chat/completions"
|
||
api_key: "${ABOT_LLM_IMAGE_API_KEY:}"
|
||
model: "${ABOT_LLM_IMAGE_MODEL:gpt-image-1}"
|
||
stream: false
|
||
timeout_seconds: 300
|
||
max_retries: 2
|
||
retry_delay_seconds: 1.0
|
||
scenes:
|
||
"chat.main": "dify_workflow_chat"
|
||
"member.profile": "dify_workflow_member_context"
|
||
"summary.daily": "dify_workflow_message_summary"
|
||
"douyu.daily_report": "dify_workflow_douyu_daily_report"
|
||
"news.global": "dify_chat_global_news"
|
||
"game.task": "openai_compatible_game_task"
|
||
"auto_reply.group": "dify_workflow_ai_auto_response"
|
||
"member_roast": "openai_compatible_ai_auto_response"
|
||
"image.generate": "openai_compatible_ai_gen_image"
|