文件预览

_gateway_body.py

查看 1688 Finance Tax 技能包中的文件内容。

文件内容

scripts/_gateway_body.py

#!/usr/bin/env python3
"""
网关 POST 请求体公共字段(对齐 88syt-skill:site / skillName / skillVersion)。

测算类工具在源舟侧还要求 toolCode、可选 userId;公网调用时一并放入 body,便于网关路由与 HSF 入参组装。
"""

import os
from typing import Any, Dict

from _const import ENV_USER_ID_NAME, SITE, SKILL_NAME, SKILL_VERSION


def merge_gateway_skill_fields(payload: Dict[str, Any], tool_code: str) -> Dict[str, Any]:
    """
    在业务字段前合并技能与工具元数据,再剔除值为 None 的键。

    Args:
        payload:   业务字段(可能含 None,会在返回前统一过滤)
        tool_code: ClawHub 工具码,如 ai_tax_calc_vat
    """
    merged: Dict[str, Any] = {
        "site": SITE,
        "skillName": SKILL_NAME,
        "skillVersion": SKILL_VERSION,
        "toolCode": tool_code,
    }
    merged.update(payload)
    uid = os.environ.get(ENV_USER_ID_NAME, "").strip()
    if uid:
        merged["userId"] = uid
    return {k: v for k, v in merged.items() if v is not None}