@@ -1,98 +1,43 @@
[ inner ]
version = "1.0 .0"
version = "1.1 .0"
# 配置文件版本号迭代规则同bot_config.toml
#
# === 多API Key支持 ===
# 本配置文件支持为每个API服务商配置多个API Key, 实现以下功能:
# 1. 错误自动切换: 当某个API Key失败时, 自动切换到下一个可用的Key
# 2. 负载均衡: 在多个可用的API Key之间循环使用, 避免单个Key的频率限制
# 3. 向后兼容: 仍然支持单个key字段的配置方式
#
# 配置方式:
# - 多Key配置: 使用 api_keys = ["key1", "key2", "key3"] 数组格式
# - 单Key配置: 使用 key = "your-key" 字符串格式(向后兼容)
#
# 错误处理机制:
# - 401/403认证错误: 立即切换到下一个API Key
# - 429频率限制: 等待后重试, 如果持续失败则切换Key
# - 网络错误: 短暂等待后重试, 失败则切换Key
# - 其他错误:按照正常重试机制处理
#
# === 任务类型和模型能力配置 ===
# 为了提高任务分配的准确性和可维护性,现在支持明确配置模型的任务类型和能力:
#
# task_type( 推荐配置) :
# - 明确指定模型主要用于什么任务
# - 可选值: llm_normal, llm_reasoning, vision, embedding, speech
# - 如果不配置, 系统会根据capabilities或模型名称自动推断( 不推荐)
#
# capabilities( 推荐配置) :
# - 描述模型支持的所有能力
# - 可选值: text, vision, embedding, speech, tool_calling, reasoning
# - 支持多个能力的组合,如:["text", "vision"]
#
# 配置优先级:
# 1. task_type( 最高优先级, 直接指定任务类型)
# 2. capabilities( 中等优先级, 根据能力推断任务类型)
# 3. 模型名称关键字(最低优先级,不推荐依赖)
#
# 向后兼容:
# - 仍然支持 model_flags 字段,但建议迁移到 capabilities
# - 未配置新字段时会自动回退到基于模型名称的推断
[ request_conf ] # 请求配置(此配置项数值均为默认值,如想修改,请取消对应条目的注释)
max_retry = 2 # 最大重试次数( 单个模型API调用失败, 最多重试的次数)
timeout = 10 # API调用的超时时长( 超过这个时长, 本次请求将被视为“请求超时”, 单位: 秒)
retry_interval = 10 # 重试间隔( 如果API调用失败, 重试的间隔时间, 单位: 秒)
default_temperature = 0.7 # 默认的温度( 如果bot_config.toml中没有设置temperature参数, 默认使用这个值)
default_max_tokens = 1024 # 默认的最大输出token数( 如果bot_config.toml中没有设置max_tokens参数, 默认使用这个值)
[ [ api_providers ] ] # API服务提供商( 可以配置多个)
name = "DeepSeek" # API服务商名称( 可随意命名, 在models的api-provider中需使用这个命名)
base_url = "https://api.deepseek.cn/v1" # API服务商的BaseURL
# 支持多个API Key, 实现自动切换和负载均衡
api_key = "sk-your-first-key-here"
api_key = "your-api-key-here" # API密钥( 请替换为实际的API密钥)
client_type = "openai" # 请求客户端(可选,默认值为"openai", 使用gimini等Google系模型时请配置为"gemini")
max_retry = 2 # 最大重试次数( 单个模型API调用失败, 最多重试的次数)
timeout = 30 # API请求超时时间( 单位: 秒)
retry_interval = 10 # 重试间隔时间(单位:秒)
[ [ api_providers ] ] # SiliconFlow的API服务商配置
name = "SiliconFlow"
base_url = "https://api.siliconflow.cn/v1"
api_key = "your-siliconflow-api-key"
client_type = "openai"
max_retry = 2
timeout = 30
retry_interval = 10
[ [ api_providers ] ] # 特殊: Google的Gimini使用特殊API, 与OpenAI格式不兼容, 需要配置client为"gemini"
name = "Google"
base_url = "https://api.google.com/v1"
api_key = "your-google-api-key-1"
client_type = "gemini"
max_retry = 2
timeout = 30
retry_interval = 10
[ [ models ] ] # 模型(可以配置多个)
# 模型标识符( API服务商提供的模型标识符)
model_identifier = "deepseek-chat"
# 模型名称( 可随意命名, 在bot_config.toml中需使用这个命名 )
name = "deepseek-v3"
# API服务商名称( 对应在api_providers中配置的服务商名称 )
api_provider = "DeepSeek"
# 任务类型(推荐配置,明确指定模型主要用于什么任务)
# 可选值: llm_normal, llm_reasoning, vision, embedding, speech
# 如果不配置, 系统会根据capabilities或模型名称自动推断
task_type = "llm_normal"
# 模型能力列表(推荐配置,描述模型支持的能力)
# 可选值: text, vision, embedding, speech, tool_calling, reasoning
capabilities = [ "text" , "tool_calling" ]
# 输入价格( 用于API调用统计, 单位: 元/兆token) ( 可选, 若无该字段, 默认值为0)
price_in = 2.0
# 输出价格( 用于API调用统计, 单位: 元/兆token) ( 可选, 若无该字段, 默认值为0)
price_out = 8.0
# 强制流式输出模式(若模型不支持非流式输出,请取消该注释,启用强制流式输出)
#( 可选, 若无该字段, 默认值为false)
#force_stream_mode = true
[ [ models ] ]
model_identifier = "deepseek-reasoner"
name = "deepseek-r1"
api_provider = "DeepSeek"
price_in = 4.0
price_out = 16.0
has_thinking = true # 有无思考参数
enable_thinking = true # 是否启用思考
model_identifier = "deepseek-chat" # 模型标识符( API服务商提供的模型标识符)
name = "deepseek-v3" # 模型名称(可随意命名,在后面中需使用这个命名)
api_provider = "DeepSeek" # API服务商名称( 对应在api_providers中配置的服务商名称 )
price_in = 2.0 # 输入价格( 用于API调用统计, 单位: 元/ M token) ( 可选, 若无该字段, 默认值为0)
price_out = 8.0 # 输出价格( 用于API调用统计, 单位: 元/ M token) ( 可选, 若无该字段, 默认值为0 )
#force_stream_mode = true # 强制流式输出模式( 若模型不支持非流式输出, 请取消该注释, 启用强制流式输出, 若无该字段, 默认值为false)
[ [ models ] ]
model_identifier = "Pro/deepseek-ai/DeepSeek-V3"
@@ -154,82 +99,74 @@ price_out = 0
model_identifier = "BAAI/bge-m3"
name = "bge-m3"
api_provider = "SiliconFlow"
# 嵌入模型的配置示例
task_type = "embedding"
capabilities = [ "text" , "embedding" ]
# 保留向后兼容的model_flags字段( 已废弃, 建议使用capabilities)
model_flags = [ "text" , "embedding" , ]
price_in = 0
price_out = 0
[ model . utils ] # 在麦麦的一些组件中使用的模型,例如表情包模块,取名模块,关系模块,是麦麦必须的模型
model_list = [ "siliconflow-deepseek-v3" , "qwen3-8b" ]
model_list = [ "siliconflow-deepseek-v3" ] # 使用的模型列表,每个子项对应上面的模型名称(name)
temperature = 0.2 # 模型温度, 新V3建议0.1-0.3
max_tokens = 800 # 最大输出token数
[ model . utils_small ] # 在麦麦的一些组件中使用的小模型,消耗量较大,建议使用速度较快的小模型
model_name = "qwen3-8b" # 对应 model_config.toml 中的模型名称
model_list = [ "qwen3-8b" ]
temperature = 0.7
max_tokens = 800
[ model . replyer_1 ] # 首要回复模型,还用于表达器和表达方式学习
model_name = "siliconflow-deepseek-v3" # 对应 model_config.toml 中的模型名称
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.2 # 模型温度, 新V3建议0.1-0.3
max_tokens = 800
[ model . replyer_2 ] # 次要回复模型
model_name = "siliconflow-deepseek-r1" # 对应 model_config.toml 中的模型名称
temperature = 0.7 # 模型温度
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.7
max_tokens = 800
[ model . planner ] #决策:负责决定麦麦该做什么的模型
model_name = "siliconflow-deepseek-v3" # 对应 model_config.toml 中的模型名称
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.3
max_tokens = 800
[ model . emotion ] #负责麦麦的情绪变化
model_name = "siliconflow-deepseek-v3" # 对应 model_config.toml 中的模型名称
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.3
max_tokens = 800
[ model . memory ] # 记忆模型
model_name = "qwen3-30b" # 对应 model_config.toml 中的模型名称
model_list = [ "qwen3-30b" ]
temperature = 0.7
max_tokens = 800
enable_thinking = false # 是否启用思考
[ model . vlm ] # 图像识别模型
model_name = "qwen2.5-vl-72b" # 对应 model_config.toml 中的模型名称
model_list = [ "qwen2.5-vl-72b" ]
max_tokens = 800
[ model . voice ] # 语音识别模型
model_name = "sensevoice-small" # 对应 model_config.toml 中的模型名称
model_list = [ "sensevoice-small" ]
[ model . tool_use ] #工具调用模型,需要使用支持工具调用的模型
model_name = "qwen3-14b" # 对应 model_config.toml 中的模型名称
model_list = [ "qwen3-14b" ]
temperature = 0.7
max_tokens = 800
enable_thinking = false # 是否启用思考( qwen3 only)
#嵌入模型
[ model . embedding ]
model_name = "bge-m3" # 对应 model_config.toml 中的模型名称
model_list = [ "bge-m3" ]
#------------LPMM知识库模型------------
[ model . lpmm_entity_extract ] # 实体提取模型
model_name = "siliconflow-deepseek-v3" # 对应 model_config.toml 中的模型名称
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.2
max_tokens = 800
[ model . lpmm_rdf_build ] # RDF构建模型
model_name = "siliconflow-deepseek-v3" # 对应 model_config.toml 中的模型名称
model_list = [ "siliconflow-deepseek-v3" ]
temperature = 0.2
max_tokens = 800
[ model . lpmm_qa ] # 问答模型
model_name = "deepseek-r1-distill-qwen-32b" # 对应 model_config.toml 中的模型名称
model_list = [ "deepseek-r1-distill-qwen-32b" ]
temperature = 0.7
max_tokens = 800
enable_thinking = false # 是否启用思考