对 `utils_model.py` 中的请求处理逻辑进行重构,创建统一的请求执行方法 `_execute_request`。该方法集中处理请求构建、重试逻辑和响应处理,替代了 `generate_response`、`generate_response_for_image` 和 `generate_response_async` 中的冗余代码。 关键变更: - 引入 `_execute_request` 作为 API 请求的单一入口 - 新增支持自定义重试策略和响应处理器 - 通过 `_build_payload` 简化图像和文本载荷构建 - 改进错误处理和日志记录 - 移除已弃用的同步方法 - 加入了`max_response_length`以兼容koboldcpp硬编码的默认值500 此次重构在保持现有功能的同时提高了代码可维护性,减少了重复代码
100 lines
2.8 KiB
TOML
100 lines
2.8 KiB
TOML
[bot]
|
||
qq = 123
|
||
nickname = "麦麦"
|
||
|
||
[personality]
|
||
prompt_personality = [
|
||
"曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧", # 贴吧人格
|
||
"是一个女大学生,你有黑色头发,你会刷小红书" # 小红书人格
|
||
]
|
||
prompt_schedule = "一个曾经学习地质,现在学习心理学和脑科学的女大学生,喜欢刷qq,贴吧,知乎和小红书"
|
||
|
||
[message]
|
||
min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息
|
||
max_context_size = 15 # 麦麦获得的上文数量
|
||
emoji_chance = 0.2 # 麦麦使用表情包的概率
|
||
ban_words = [
|
||
# "403","张三"
|
||
]
|
||
|
||
[emoji]
|
||
check_interval = 120 # 检查表情包的时间间隔
|
||
register_interval = 10 # 注册表情包的时间间隔
|
||
|
||
[cq_code]
|
||
enable_pic_translate = false
|
||
|
||
[response]
|
||
model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率
|
||
model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率
|
||
model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率
|
||
max_response_length = 1024 # 麦麦回答的最大token数
|
||
|
||
[memory]
|
||
build_memory_interval = 300 # 记忆构建间隔 单位秒
|
||
forget_memory_interval = 300 # 记忆遗忘间隔 单位秒
|
||
|
||
[others]
|
||
enable_advance_output = true # 是否启用高级输出
|
||
enable_kuuki_read = true # 是否启用读空气功能
|
||
|
||
[groups]
|
||
talk_allowed = [
|
||
123,
|
||
123,
|
||
] #可以回复消息的群
|
||
talk_frequency_down = [] #降低回复频率的群
|
||
ban_user_id = [] #禁止回复消息的QQ号
|
||
|
||
|
||
#V3
|
||
#name = "deepseek-chat"
|
||
#base_url = "DEEP_SEEK_BASE_URL"
|
||
#key = "DEEP_SEEK_KEY"
|
||
|
||
#R1
|
||
#name = "deepseek-reasoner"
|
||
#base_url = "DEEP_SEEK_BASE_URL"
|
||
#key = "DEEP_SEEK_KEY"
|
||
|
||
#下面的模型若使用硅基流动则不需要更改,使用ds官方则改成.env.prod自定义的宏,使用自定义模型则选择定位相似的模型自己填写
|
||
|
||
[model.llm_reasoning] #R1
|
||
name = "Pro/deepseek-ai/DeepSeek-R1"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
[model.llm_reasoning_minor] #R1蒸馏
|
||
name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
[model.llm_normal] #V3
|
||
name = "Pro/deepseek-ai/DeepSeek-V3"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
[model.llm_normal_minor] #V2.5
|
||
name = "deepseek-ai/DeepSeek-V2.5"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
[model.vlm] #图像识别
|
||
name = "deepseek-ai/deepseek-vl2"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
[model.embedding] #嵌入
|
||
name = "BAAI/bge-m3"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|
||
|
||
# 主题提取,jieba和snownlp不用api,llm需要api
|
||
[topic]
|
||
topic_extract='snownlp' # 只支持jieba,snownlp,llm三种选项
|
||
|
||
[topic.llm_topic]
|
||
name = "Pro/deepseek-ai/DeepSeek-V3"
|
||
base_url = "SILICONFLOW_BASE_URL"
|
||
key = "SILICONFLOW_KEY"
|