add mcp dataset_ids
This commit is contained in:
parent
805bd6f5d4
commit
815ad01876
@ -137,7 +137,7 @@ async def load_system_prompt_async(config) -> str:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def replace_mcp_placeholders(mcp_settings: List[Dict], dataset_dir: str, bot_id: str) -> List[Dict]:
|
def replace_mcp_placeholders(mcp_settings: List[Dict], dataset_dir: str, bot_id: str, dataset_ids: List[str]) -> List[Dict]:
|
||||||
"""
|
"""
|
||||||
替换 MCP 配置中的占位符
|
替换 MCP 配置中的占位符
|
||||||
"""
|
"""
|
||||||
@ -150,15 +150,15 @@ def replace_mcp_placeholders(mcp_settings: List[Dict], dataset_dir: str, bot_id:
|
|||||||
for key, value in obj.items():
|
for key, value in obj.items():
|
||||||
if key == 'args' and isinstance(value, list):
|
if key == 'args' and isinstance(value, list):
|
||||||
# 特别处理 args 列表
|
# 特别处理 args 列表
|
||||||
obj[key] = [item.format(dataset_dir=dataset_dir, bot_id=bot_id) if isinstance(item, str) else item
|
obj[key] = [item.format(dataset_dir=dataset_dir, bot_id=bot_id, dataset_ids=','.join(dataset_ids)) if isinstance(item, str) else item
|
||||||
for item in value]
|
for item in value]
|
||||||
elif isinstance(value, (dict, list)):
|
elif isinstance(value, (dict, list)):
|
||||||
obj[key] = replace_placeholders_in_obj(value)
|
obj[key] = replace_placeholders_in_obj(value)
|
||||||
elif isinstance(value, str):
|
elif isinstance(value, str):
|
||||||
obj[key] = value.format(dataset_dir=dataset_dir, bot_id=bot_id)
|
obj[key] = value.format(dataset_dir=dataset_dir, bot_id=bot_id, dataset_ids=','.join(dataset_ids))
|
||||||
elif isinstance(obj, list):
|
elif isinstance(obj, list):
|
||||||
return [replace_placeholders_in_obj(item) if isinstance(item, (dict, list)) else
|
return [replace_placeholders_in_obj(item) if isinstance(item, (dict, list)) else
|
||||||
item.format(dataset_dir=dataset_dir, bot_id=bot_id) if isinstance(item, str) else item
|
item.format(dataset_dir=dataset_dir, bot_id=bot_id, dataset_ids=','.join(dataset_ids)) if isinstance(item, str) else item
|
||||||
for item in obj]
|
for item in obj]
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
@ -183,6 +183,7 @@ async def load_mcp_settings_async(config) -> List[Dict]:
|
|||||||
project_dir = getattr(config, 'project_dir', None)
|
project_dir = getattr(config, 'project_dir', None)
|
||||||
mcp_settings = getattr(config, 'mcp_settings', None)
|
mcp_settings = getattr(config, 'mcp_settings', None)
|
||||||
bot_id = getattr(config, 'bot_id', '')
|
bot_id = getattr(config, 'bot_id', '')
|
||||||
|
dataset_ids = getattr(config, 'dataset_ids', [])
|
||||||
|
|
||||||
# 1. ============ 首先合并skill目录下的plugin.json配置(不使用缓存,确保改动生效)============
|
# 1. ============ 首先合并skill目录下的plugin.json配置(不使用缓存,确保改动生效)============
|
||||||
skill_mcp_settings = await merge_skill_mcp_configs(bot_id)
|
skill_mcp_settings = await merge_skill_mcp_configs(bot_id)
|
||||||
@ -265,7 +266,7 @@ async def load_mcp_settings_async(config) -> List[Dict]:
|
|||||||
# 替换 MCP 配置中的 {dataset_dir} 占位符
|
# 替换 MCP 配置中的 {dataset_dir} 占位符
|
||||||
if dataset_dir is None:
|
if dataset_dir is None:
|
||||||
dataset_dir = ""
|
dataset_dir = ""
|
||||||
merged_settings = replace_mcp_placeholders(merged_settings, dataset_dir, bot_id)
|
merged_settings = replace_mcp_placeholders(merged_settings, dataset_dir, bot_id, dataset_ids)
|
||||||
return merged_settings
|
return merged_settings
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user