mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-07-06 16:11:56 +08:00
finsh mcp api
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import yaml
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
# 基础路径
|
||||
base_path = "/Users/liujian/work/golang/src/github.com/APIParkLab/APIPark/ai-provider/model-runtime/model-providers"
|
||||
|
||||
# 遍历所有供应商目录
|
||||
for provider_dir in os.listdir(base_path):
|
||||
provider_path = os.path.join(base_path, provider_dir)
|
||||
|
||||
# 检查是否是目录
|
||||
if not os.path.isdir(provider_path):
|
||||
continue
|
||||
|
||||
# 检查llm目录是否存在
|
||||
llm_path = os.path.join(provider_path, "llm")
|
||||
if not os.path.isdir(llm_path):
|
||||
continue
|
||||
|
||||
# 收集参数名和模板
|
||||
param_names = {}
|
||||
|
||||
# 遍历llm目录下的所有yaml文件
|
||||
for yaml_file in os.listdir(llm_path):
|
||||
if not yaml_file.endswith(('.yaml', '.yml')):
|
||||
continue
|
||||
|
||||
yaml_path = os.path.join(llm_path, yaml_file)
|
||||
|
||||
try:
|
||||
# 读取yaml文件
|
||||
with open(yaml_path, 'r', encoding='utf-8') as f:
|
||||
data = yaml.safe_load(f)
|
||||
|
||||
# 提取parameter_rules中的name和use_template值
|
||||
if data and 'parameter_rules' in data:
|
||||
for param in data['parameter_rules']:
|
||||
if 'name' in param:
|
||||
name = param['name']
|
||||
# 获取use_template值,如果不存在则为空字符串
|
||||
template = param.get('use_template', '')
|
||||
|
||||
# 如果参数名不在字典中或者当前模板不为空
|
||||
if name not in param_names or (template and not param_names[name]):
|
||||
param_names[name] = template
|
||||
except Exception as e:
|
||||
print(f"处理 {yaml_path} 时出错: {e}")
|
||||
|
||||
# 将参数名和模板保存为JSON
|
||||
if param_names:
|
||||
output_file = os.path.join(provider_path, "parameter_names.json")
|
||||
with open(output_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(param_names, f, indent=2, ensure_ascii=False)
|
||||
|
||||
print(f"已为 {provider_dir} 提取 {len(param_names)} 个唯一参数")
|
||||
Reference in New Issue
Block a user