From 74fa95c9993608be443871a2436b8af9af9b2d74 Mon Sep 17 00:00:00 2001 From: UnCLAS-Prommer Date: Wed, 30 Jul 2025 18:17:55 +0800 Subject: [PATCH] =?UTF-8?q?template=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/api_ada_configs.py | 7 +- template/bot_config_template.toml | 1 - template/lpmm_config_template.toml | 60 ------------ template/model_config_template.toml | 147 ++++++++-------------------- 4 files changed, 44 insertions(+), 171 deletions(-) delete mode 100644 template/lpmm_config_template.toml diff --git a/src/config/api_ada_configs.py b/src/config/api_ada_configs.py index 819872c1e..ff8359738 100644 --- a/src/config/api_ada_configs.py +++ b/src/config/api_ada_configs.py @@ -54,11 +54,8 @@ class ModelInfo(ConfigBase): force_stream_mode: bool = field(default=False) """是否强制使用流式输出模式""" - has_thinking: bool = field(default=False) - """是否有思考参数""" - - enable_thinking: bool = field(default=False) - """是否启用思考""" + extra_params: dict = field(default_factory=dict) + """额外参数(用于API调用时的额外配置)""" @dataclass diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index de154491c..fae41f828 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -216,7 +216,6 @@ library_log_levels = { "aiohttp" = "WARNING"} # 设置特定库的日志级别 [debug] show_prompt = false # 是否显示prompt - [maim_message] auth_token = [] # 认证令牌,用于API验证,为空则不启用验证 # 以下项目若要使用需要打开use_custom,并单独配置maim_message的服务器 diff --git a/template/lpmm_config_template.toml b/template/lpmm_config_template.toml deleted file mode 100644 index 5bf24732a..000000000 --- a/template/lpmm_config_template.toml +++ /dev/null @@ -1,60 +0,0 @@ -[lpmm] -version = "0.1.0" - -# LLM API 服务提供商,可配置多个 -[[llm_providers]] -name = "localhost" -base_url = "http://127.0.0.1:8888/v1/" -api_key = "lm_studio" - -[[llm_providers]] -name = "siliconflow" -base_url = "https://api.siliconflow.cn/v1/" -api_key = "" - -[entity_extract.llm] -# 设置用于实体提取的LLM模型 -provider = "siliconflow" # 服务提供商 -model = "deepseek-ai/DeepSeek-V3" # 模型名称 - -[rdf_build.llm] -# 设置用于RDF构建的LLM模型 -provider = "siliconflow" # 服务提供商 -model = "deepseek-ai/DeepSeek-V3" # 模型名称 - -[embedding] -# 设置用于文本嵌入的Embedding模型 -provider = "siliconflow" # 服务提供商 -model = "Pro/BAAI/bge-m3" # 模型名称 -dimension = 1024 # 嵌入维度 - -[rag.params] -# RAG参数配置 -synonym_search_top_k = 10 # 同义词搜索TopK -synonym_threshold = 0.8 # 同义词阈值(相似度高于此阈值的词语会被认为是同义词) - -[qa.llm] -# 设置用于QA的LLM模型 -provider = "siliconflow" # 服务提供商 -model = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" # 模型名称 - -[info_extraction] -workers = 3 # 实体提取同时执行线程数,非Pro模型不要设置超过5 - -[qa.params] -# QA参数配置 -relation_search_top_k = 10 # 关系搜索TopK -relation_threshold = 0.5 # 关系阈值(相似度高于此阈值的关系会被认为是相关的关系) -paragraph_search_top_k = 1000 # 段落搜索TopK(不能过小,可能影响搜索结果) -paragraph_node_weight = 0.05 # 段落节点权重(在图搜索&PPR计算中的权重,当搜索仅使用DPR时,此参数不起作用) -ent_filter_top_k = 10 # 实体过滤TopK -ppr_damping = 0.8 # PPR阻尼系数 -res_top_k = 3 # 最终提供的文段TopK - -[persistence] -# 持久化配置(存储中间数据,防止重复计算) -data_root_path = "data" # 数据根目录 -imported_data_path = "data/imported_lpmm_data" # 转换为json的raw文件数据路径 -openie_data_path = "data/openie" # OpenIE数据路径 -embedding_data_dir = "data/embedding" # 嵌入数据目录 -rag_data_dir = "data/rag" # RAG数据目录 diff --git a/template/model_config_template.toml b/template/model_config_template.toml index ff392b054..f1b276349 100644 --- a/template/model_config_template.toml +++ b/template/model_config_template.toml @@ -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" +base_url = "https://api.deepseek.cn/v1" # API服务商的BaseURL +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"] -temperature = 0.2 # 模型温度,新V3建议0.1-0.3 -max_tokens = 800 # 最大输出token数 +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 中的模型名称 -temperature = 0.2 # 模型温度,新V3建议0.1-0.3 +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 # 是否启用思考 \ No newline at end of file