Install
openclaw skills install @kakahilda/ecolink-batch-searchEcoLink碳足迹数据库批量搜索。接受产品名称列表或Excel文件,批量调用EcoLink原始匹配API获取ecoinvent/CPCD/GHG因子库数据,用用户自己的LLM API做翻译/化学品分解/替代品推荐/原因判断,生成CSV或Excel结果文件。API Key由用户显式提供,API URL有域名白名单校验。当用户需要“批量搜索碳足迹”、“批量查因子”、“上传Excel查排放因子”、“批量检索ecoinvent”、“批量查CPCD”、“批量查碳足迹数据”时触发。
openclaw skills install @kakahilda/ecolink-batch-search批量调用 EcoLink 服务器原始匹配 API 搜索碳足迹数据库(ecoinvent + CPCD + GHG因子库),LLM 功能在本地执行(走用户自己的 API 余额),生成结构化结果文件。
用户输入 → Skill脚本
├─ /api/search/raw(服务器只查库,零LLM费用)
├─ 本地LLM: 翻译 + 别名 + 复合材料判断
├─ 本地LLM: 化学品分解(无直接匹配时)
├─ 本地LLM: 替代品推荐(分解也无结果时)
└─ 生成 CSV/Excel 结果文件
| 步骤 | 功能 | LLM | 对应 app.py 函数 |
|---|---|---|---|
| 1 | 材料分析:翻译 + 别名 + 复合材料判断 | 用户余额 | llm_analyze_material() |
| 2 | 数据库匹配:中文 + 英文 + 别名多路搜索 | 无(服务器) | local_search() + search_cpcd() + search_ghg_factor() |
| 2a | [--strict] 验证相关性 + 重试 | 用户余额 | llm_validate_results() |
| 2b | [--strict] 逐条过滤不相关结果 | 用户余额 | llm_filter_results() |
| 3 | 化学品分解:分子式 + 组分 + 质量比 + 反应方程式 | 用户余额 | llm_decompose_chemical() |
| 4 | 替代品推荐:同类具体产品,黑名单过滤 | 用户余额 | llm_suggest_alternatives() |
| 5 | 原因说明:每个结果附带匹配原因 | 含在步骤1中 | reason 字段 |
requests 库openpyxl 库(仅 Excel 输入/输出时需要)支持三种方式:
如用户提供文件,先读取确认列名。
安全要求:
获取方式:
https://openrouter.ai/api/v1/chat/completions(用户可指定其他官方域名)以下配置有合理默认值,除非用户明确要求修改,否则直接使用默认值:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 输出格式 | csv | csv 或 excel |
| 每库取前N条 | 3 | 每个数据库返回的结果数 |
| 请求间隔 | 0.5s | 防止服务器过载 |
| 严格模式 | 关闭 | 加 --strict 开启(费用翻倍,质量与网页端一致) |
Agent 使用用户提供的 API Key 执行脚本:
# 文本列表 + LLM
python skill/scripts/batch_search.py \
--input "钢材,水泥,PVC,R401C" \
--output results.csv \
--api-key "sk-or-用户提供的key"
# 严格模式(与网页端完全一致,含LLM验证+逐条过滤,费用约翻倍)
python skill/scripts/batch_search.py \
--input "钢材,水泥,PVC" \
--output results.csv \
--api-key "sk-or-用户提供的key" --strict
# Excel文件 + LLM
python skill/scripts/batch_search.py \
--file products.xlsx --column "产品名称" \
--output results.xlsx --format excel \
--api-key "sk-or-用户提供的key"
# 纯匹配模式(不调LLM,零费用)
python skill/scripts/batch_search.py \
--input "PVC,R401C" \
--output results.csv --no-llm
展示摘要统计 + 结果文件路径。
| 列名 | 说明 |
|---|---|
| 搜索词 | 用户输入的原始产品名称 |
| 结果类型 | direct / composite / decomposition / alternative |
| AI翻译 | LLM 翻译的英文名 |
| 数据来源 | ecoinvent / CPCD / GHG因子库 |
| 产品名称 | product_name / fuel_type(复合/分解结果带组分前缀) |
| Activity名称 | ecoinvent 专属 |
| 型号 | CPCD 专属 |
| 地理区域 | ecoinvent 专属 |
| 碳足迹/因子值 | 核心数值 |
| 单位 | 因子单位 |
| 质量评分 | 数据质量评分 |
| 功能单元 | CPCD 专属 |
| 数据年份 | CPCD 专属 |
| 匹配原因 | AI 给出的匹配/推荐原因 |
| 说明 | CPCD 专属(数据说明) |
| 专家点评 | CPCD 专属 |
| 类型 | 含义 | 触发条件 |
|---|---|---|
direct | 直接匹配 | 中文名/英文名/别名在数据库中找到匹配 |
composite | 复合材料 | LLM 判断为复合材料,拆解各组分分别搜索 |
decomposition | 化学分解 | 直接匹配无结果,LLM 分解为化学组分并搜索 |
alternative | 替代品推荐 | 分解也无结果,LLM 推荐同类具体产品 |
--no-llm 模式不调用任何 LLM API,零费用:
--strict 严格模式与网页端搜索管道完全一致,额外增加两个 LLM 步骤:
| 步骤 | 功能 | 对应 app.py 函数 |
|---|---|---|
| 验证相关性 | LLM 判断结果是否真正相关,不相关则用更好的搜索词重试 | llm_validate_results() |
| 逐条过滤 | LLM 审查每条 ecoinvent 结果,移除不相关条目 | llm_filter_results() |
费用影响:每个产品多 2-3 次 LLM 调用,费用约翻倍。
适用场景:对结果质量要求高、产品数量较少(<50个)时使用。
/api/search/raw 只做数据库查询(<1秒),零 LLM 费用