Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/atharvakarval-dev_meritmap-humaniser-pipeline.json
T

1 line
25 KiB
JSON

{"repo": "atharvakarval-dev/meritmap-humaniser-pipeline", "files": {"humanize-text-main/config/config.example.toml": {"93e1f2941fd6345d6b69ca29936bbb8859667bbb": {"t": 1785745379.196942, "n": 1191, "h": "52f9172bbca434b2", "c": "# Humanize-Text v1.5.1 Configuration\n\n[general]\n# Target language for final output\ntarget_language = \"en\"\n# Log level: debug, info, warning, error\nlog_level = \"info\"\n\n[api_keys]\n# DeepSeek API key (required when llm.provider = \"deepseek\")\ndeepseek_api_key = \"\"\n# OpenRouter API key (required when llm.provider = \"openrouter\")\nopenrouter_api_key = \"\"\n# Niutrans API key (required for Step 4: 二轮翻译)\nniutrans_api_key = \"\"\n\n[llm]\n# LLM provider: \"deepseek\" | \"openrouter\"\nprovider = \"deepseek\"\n# Override API base URL (empty = provider default)\nbase_url = \"\"\n# Model slug (empty = provider default)\nmodel = \"\"\n# Temperature for LLM rewriting (1.3 recommended)\ntemperature = 1.3\n# OpenRouter optional site attribution (for openrouter.ai rankings)\nhttp_referer = \"\"\napp_title = \"\"\n\n[pipeline]\n# model / temperature kept for backward compat; [llm] takes precedence\nmodel = \"deepseek-chat\"\ntemperature = 1.3\n# Intermediate language for the cross-engine translation hop (Step 3 → Step 4).\n# Finnish (\"fi\") is the default — agglutinative morphology forces deep\n# restructuring before reconstruction to the target language.\n# Other tested options: \"de\" (German), \"ko\" (Korean)\nintermediate_lang = \"fi\"\n"}, "a16a6f4b1e31090d9ebe8cf9e5018a897472788f": {"t": 1785750862.8260329, "n": 1191, "h": "52f9172bbca434b2", "c": "# Humanize-Text v1.5.1 Configuration\n\n[general]\n# Target language for final output\ntarget_language = \"en\"\n# Log level: debug, info, warning, error\nlog_level = \"info\"\n\n[api_keys]\n# DeepSeek API key (required when llm.provider = \"deepseek\")\ndeepseek_api_key = \"\"\n# OpenRouter API key (required when llm.provider = \"openrouter\")\nopenrouter_api_key = \"\"\n# Niutrans API key (required for Step 4: 二轮翻译)\nniutrans_api_key = \"\"\n\n[llm]\n# LLM provider: \"deepseek\" | \"openrouter\"\nprovider = \"deepseek\"\n# Override API base URL (empty = provider default)\nbase_url = \"\"\n# Model slug (empty = provider default)\nmodel = \"\"\n# Temperature for LLM rewriting (1.3 recommended)\ntemperature = 1.3\n# OpenRouter optional site attribution (for openrouter.ai rankings)\nhttp_referer = \"\"\napp_title = \"\"\n\n[pipeline]\n# model / temperature kept for backward compat; [llm] takes precedence\nmodel = \"deepseek-chat\"\ntemperature = 1.3\n# Intermediate language for the cross-engine translation hop (Step 3 → Step 4).\n# Finnish (\"fi\") is the default — agglutinative morphology forces deep\n# restructuring before reconstruction to the target language.\n# Other tested options: \"de\" (German), \"ko\" (Korean)\nintermediate_lang = \"fi\"\n"}}, "humanize-text-main/src/standard/llm_client.py": {"93e1f2941fd6345d6b69ca29936bbb8859667bbb": {"t": 1785745430.9126644, "n": 3971, "h": "7a83253efa5aa280", "c": "\"\"\"OpenAI-compatible LLM client with multi-provider config resolution.\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nfrom typing import Any\n\nimport httpx\n\nPROVIDER_DEFAULTS: dict[str, dict[str, str]] = {\n \"deepseek\": {\n \"base_url\": \"https://api.deepseek.com\",\n \"model\": \"deepseek-chat\",\n \"api_key_field\": \"deepseek_api_key\",\n \"display_name\": \"DeepSeek\",\n },\n \"openrouter\": {\n \"base_url\": \"https://openrouter.ai/api/v1\",\n \"model\": \"deepseek/deepseek-chat\",\n \"api_key_field\": \"openrouter_api_key\",\n \"display_name\": \"OpenRouter\",\n },\n}\n\nDEFAULT_PROVIDER = \"deepseek\"\n\n\ndef normalize_chat_completions_url(base_url: str) -> str:\n \"\"\"Ensure base_url points at the chat completions endpoint.\"\"\"\n base = base_url.rstrip(\"/\")\n if base.endswith(\"/chat/completions\"):\n return base\n return f\"{base}/chat/completions\"\n\n\ndef resolve_llm_config(config: dict) -> dict[str, Any]:\n \"\"\"Merge TOML config and environment variables into resolved LLM settings.\"\"\"\n llm_cfg = config.get(\"llm\", {})\n pipeline_cfg = config.get(\"pipeline\", {})\n api_keys = config.get(\"api_keys\", {})\n\n provider = llm_cfg.get(\"provider\") or DEFAULT_PROVIDER\n if env_provider := os.environ.get(\"LLM_PROVIDER\"):\n provider = env_provider\n\n if provider not in PROVIDER_DEFAULTS:\n raise ValueError(\n f\"Unsupported LLM provider: {provider!r}. \"\n f\"Supported: {', '.join(PROVIDER_DEFAULTS)}\"\n )\n\n defaults = PROVIDER_DEFAULTS[provider]\n\n base_url = llm_cfg.get(\"base_url\") or defaults[\"base_url\"]\n if env_base_url := os.environ.get(\"LLM_BASE_URL\"):\n base_url = env_base_url\n\n model = llm_cfg.get(\"model\") or pipeline_cfg.get(\"model\") or defaults[\"model\"]\n if env_model := os.environ.get(\"LLM_MODEL\"):\n model = env_model\n\n temperature = llm_cfg.get(\"temperature\", pipeline_cfg.get(\"temperature\", 1.3))\n\n api_key_field = defaults[\"api_key_field\"]\n api_key = api_keys.get(api_key_field, \"\")\n\n if env_api_key := os.environ.get(\"LLM_API_KEY\"):\n api_key = env_api_key\n elif provider == \"openrouter\" and (or_key := os.environ.get(\"OPENROUTER_API_KEY\")):\n api_key = or_key\n elif provider == \"deepseek\" and (ds_key := os.environ.get(\"DEEPSEEK_API_KEY\")):\n api_key = ds_key\n\n if not api_key:\n raise ValueError(\n f\"Missing API key for provider {provider!r}. \"\n f\"Set api_keys.{api_key_field} in config or LLM_API_KEY env var.\"\n )\n\n extra_headers: dict[str, str] = {}\n if http_referer := llm_cfg.get(\"http_referer\"):\n extra_headers[\"HTTP-Referer\"] = http_referer\n if app_title := llm_cfg.get(\"app_title\"):\n extra_headers[\"X-Title\"] = app_title\n\n return {\n \"provider\": provider,\n \"display_name\": defaults[\"display_name\"],\n \"base_url\": base_url,\n \"model\": model,\n \"temperature\": temperature,\n \"api_key\": api_key,\n \"extra_headers\": extra_headers or None,\n }\n\n\ndef chat_completions(\n messages: list[dict],\n *,\n api_key: str,\n base_url: str,\n model: str,\n temperature: float = 1.3,\n top_p: float | None = None,\n timeout: int = 120,\n extra_headers: dict | None = None,\n) -> str:\n \"\"\"Call an OpenAI-compatible /chat/completions endpoint.\"\"\"\n if not api_key:\n raise ValueError(\"API key is required for LLM chat completions.\")\n\n url = normalize_chat_completions_url(base_url)\n headers = {\"Authorization\": f\"Bearer {api_key}\"}\n if extra_headers:\n headers.update(extra_headers)\n\n payload: dict[str, Any] = {\n \"model\": model,\n \"messages\": messages,\n \"temperature\": temperature,\n }\n if top_p is not None:\n payload[\"top_p\"] = top_p\n\n response = httpx.post(url, headers=headers, json=payload, timeout=timeout)\n response.raise_for_status()\n return response.json()[\"choices\"][0][\"message\"][\"content\"].strip()\n"}, "a16a6f4b1e31090d9ebe8cf9e5018a897472788f": {"t": 1785750862.1950514, "n": 3971, "h": "7a83253efa5aa280", "c": "\"\"\"OpenAI-compatible LLM client with multi-provider config resolution.\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nfrom typing import Any\n\nimport httpx\n\nPROVIDER_DEFAULTS: dict[str, dict[str, str]] = {\n \"deepseek\": {\n \"base_url\": \"https://api.deepseek.com\",\n \"model\": \"deepseek-chat\",\n \"api_key_field\": \"deepseek_api_key\",\n \"display_name\": \"DeepSeek\",\n },\n \"openrouter\": {\n \"base_url\": \"https://openrouter.ai/api/v1\",\n \"model\": \"deepseek/deepseek-chat\",\n \"api_key_field\": \"openrouter_api_key\",\n \"display_name\": \"OpenRouter\",\n },\n}\n\nDEFAULT_PROVIDER = \"deepseek\"\n\n\ndef normalize_chat_completions_url(base_url: str) -> str:\n \"\"\"Ensure base_url points at the chat completions endpoint.\"\"\"\n base = base_url.rstrip(\"/\")\n if base.endswith(\"/chat/completions\"):\n return base\n return f\"{base}/chat/completions\"\n\n\ndef resolve_llm_config(config: dict) -> dict[str, Any]:\n \"\"\"Merge TOML config and environment variables into resolved LLM settings.\"\"\"\n llm_cfg = config.get(\"llm\", {})\n pipeline_cfg = config.get(\"pipeline\", {})\n api_keys = config.get(\"api_keys\", {})\n\n provider = llm_cfg.get(\"provider\") or DEFAULT_PROVIDER\n if env_provider := os.environ.get(\"LLM_PROVIDER\"):\n provider = env_provider\n\n if provider not in PROVIDER_DEFAULTS:\n raise ValueError(\n f\"Unsupported LLM provider: {provider!r}. \"\n f\"Supported: {', '.join(PROVIDER_DEFAULTS)}\"\n )\n\n defaults = PROVIDER_DEFAULTS[provider]\n\n base_url = llm_cfg.get(\"base_url\") or defaults[\"base_url\"]\n if env_base_url := os.environ.get(\"LLM_BASE_URL\"):\n base_url = env_base_url\n\n model = llm_cfg.get(\"model\") or pipeline_cfg.get(\"model\") or defaults[\"model\"]\n if env_model := os.environ.get(\"LLM_MODEL\"):\n model = env_model\n\n temperature = llm_cfg.get(\"temperature\", pipeline_cfg.get(\"temperature\", 1.3))\n\n api_key_field = defaults[\"api_key_field\"]\n api_key = api_keys.get(api_key_field, \"\")\n\n if env_api_key := os.environ.get(\"LLM_API_KEY\"):\n api_key = env_api_key\n elif provider == \"openrouter\" and (or_key := os.environ.get(\"OPENROUTER_API_KEY\")):\n api_key = or_key\n elif provider == \"deepseek\" and (ds_key := os.environ.get(\"DEEPSEEK_API_KEY\")):\n api_key = ds_key\n\n if not api_key:\n raise ValueError(\n f\"Missing API key for provider {provider!r}. \"\n f\"Set api_keys.{api_key_field} in config or LLM_API_KEY env var.\"\n )\n\n extra_headers: dict[str, str] = {}\n if http_referer := llm_cfg.get(\"http_referer\"):\n extra_headers[\"HTTP-Referer\"] = http_referer\n if app_title := llm_cfg.get(\"app_title\"):\n extra_headers[\"X-Title\"] = app_title\n\n return {\n \"provider\": provider,\n \"display_name\": defaults[\"display_name\"],\n \"base_url\": base_url,\n \"model\": model,\n \"temperature\": temperature,\n \"api_key\": api_key,\n \"extra_headers\": extra_headers or None,\n }\n\n\ndef chat_completions(\n messages: list[dict],\n *,\n api_key: str,\n base_url: str,\n model: str,\n temperature: float = 1.3,\n top_p: float | None = None,\n timeout: int = 120,\n extra_headers: dict | None = None,\n) -> str:\n \"\"\"Call an OpenAI-compatible /chat/completions endpoint.\"\"\"\n if not api_key:\n raise ValueError(\"API key is required for LLM chat completions.\")\n\n url = normalize_chat_completions_url(base_url)\n headers = {\"Authorization\": f\"Bearer {api_key}\"}\n if extra_headers:\n headers.update(extra_headers)\n\n payload: dict[str, Any] = {\n \"model\": model,\n \"messages\": messages,\n \"temperature\": temperature,\n }\n if top_p is not None:\n payload[\"top_p\"] = top_p\n\n response = httpx.post(url, headers=headers, json=payload, timeout=timeout)\n response.raise_for_status()\n return response.json()[\"choices\"][0][\"message\"][\"content\"].strip()\n"}}, "humanize-text-main/n8n/humanize_standard.json": {"93e1f2941fd6345d6b69ca29936bbb8859667bbb": {"t": 1785746277.3304758, "n": 5932, "h": "94a264918d2a3e27", "c": "{\n \"name\": \"AI Humanize - Standard Pipeline v1.5\",\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"start\",\n \"name\": \"Start\",\n \"type\": \"n8n-nodes-base.manualTrigger\",\n \"position\": [240, 300],\n \"typeVersion\": 1\n },\n {\n \"parameters\": {\n \"values\": {\n \"string\": [\n {\n \"name\": \"text\",\n \"value\": \"={{$json.text || 'Your AI-generated text here'}}\"\n }\n ]\n }\n },\n \"id\": \"input\",\n \"name\": \"Input Text\",\n \"type\": \"n8n-nodes-base.set\",\n \"position\": [440, 300],\n \"typeVersion\": 2\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.deepseek.com/chat/completions\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpHeaderAuth\",\n \"sendHeaders\": true,\n \"headerParameters\": {\n \"parameters\": [\n {\n \"name\": \"Content-Type\",\n \"value\": \"application/json\"\n }\n ]\n },\n \"sendBody\": true,\n \"contentType\": \"raw\",\n \"rawContentType\": \"application/json\",\n \"body\": \"={{ JSON.stringify({ \\\"model\\\": \\\"deepseek-chat\\\", \\\"temperature\\\": 1.3, \\\"messages\\\": [ { \\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"你是一个专业的文案改写专家,精通多语言本地化。\\\" }, { \\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"翻译为中文,去掉 AI 味道,拟人化改写,只输出结果:\\\\n\\\" + $json.text } ] }) }}\"\n },\n \"id\": \"step1\",\n \"name\": \"Step 1: Chinese Rewrite (DeepSeek)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [660, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.deepseek.com/chat/completions\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpHeaderAuth\",\n \"sendHeaders\": true,\n \"headerParameters\": {\n \"parameters\": [\n {\n \"name\": \"Content-Type\",\n \"value\": \"application/json\"\n }\n ]\n },\n \"sendBody\": true,\n \"contentType\": \"raw\",\n \"rawContentType\": \"application/json\",\n \"body\": \"={{ JSON.stringify({ \\\"model\\\": \\\"deepseek-chat\\\", \\\"temperature\\\": 1.3, \\\"messages\\\": [ { \\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"你是一个专业的文案改写专家,精通多语言本地化。\\\" }, { \\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"翻译为日语,去掉 AI 味道,拟人化改写,只输出结果:\\\\n\\\" + $json.choices[0].message.content } ] }) }}\"\n },\n \"id\": \"step2\",\n \"name\": \"Step 2: Japanese Rewrite (DeepSeek)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [880, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://translate.googleapis.com/translate_a/single\",\n \"sendQuery\": true,\n \"queryParameters\": {\n \"parameters\": [\n { \"name\": \"client\", \"value\": \"gtx\" },\n { \"name\": \"sl\", \"value\": \"ja\" },\n { \"name\": \"tl\", \"value\": \"de\" },\n { \"name\": \"dt\", \"value\": \"t\" },\n { \"name\": \"q\", \"value\": \"={{ $json.choices[0].message.content }}\" }\n ]\n }\n },\n \"id\": \"step3\",\n \"name\": \"Step 3: Japanese → German (Google)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1100, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.niutrans.com/NiuTransServer/translation\",\n \"sendBody\": true,\n \"contentType\": \"json\",\n \"bodyParameters\": {\n \"parameters\": [\n { \"name\": \"from\", \"value\": \"de\" },\n { \"name\": \"to\", \"value\": \"es\" },\n { \"name\": \"apikey\", \"value\": \"YOUR_NIUTRANS_KEY\" },\n { \"name\": \"src_text\", \"value\": \"={{ $json[0].map(s => s[0]).join('') }}\" }\n ]\n }\n },\n \"id\": \"step4\",\n \"name\": \"Step 4: German → Spanish (Niutrans)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1320, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.niutrans.com/NiuTransServer/translation\",\n \"sendBody\": true,\n \"contentType\": \"json\",\n \"bodyParameters\": {\n \"parameters\": [\n { \"name\": \"from\", \"value\": \"es\" },\n { \"name\": \"to\", \"value\": \"en\" },\n { \"name\": \"apikey\", \"value\": \"YOUR_NIUTRANS_KEY\" },\n { \"name\": \"src_text\", \"value\": \"={{ $json.tgt_text }}\" }\n ]\n }\n },\n \"id\": \"step5\",\n \"name\": \"Step 5: Spanish → English (Niutrans)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1540, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"values\": {\n \"string\": [\n {\n \"name\": \"humanized_text\",\n \"value\": \"={{ $json.tgt_text }}\"\n }\n ]\n }\n },\n \"id\": \"output\",\n \"name\": \"Output\",\n \"type\": \"n8n-nodes-base.set\",\n \"position\": [1760, 300],\n \"typeVersion\": 2\n }\n ],\n \"connections\": {\n \"Start\": { \"main\": [[{ \"node\": \"Input Text\", \"type\": \"main\", \"index\": 0 }]] },\n \"Input Text\": { \"main\": [[{ \"node\": \"Step 1: Chinese Rewrite (DeepSeek)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 1: Chinese Rewrite (DeepSeek)\": { \"main\": [[{ \"node\": \"Step 2: Japanese Rewrite (DeepSeek)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 2: Japanese Rewrite (DeepSeek)\": { \"main\": [[{ \"node\": \"Step 3: Japanese → German (Google)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 3: Japanese → German (Google)\": { \"main\": [[{ \"node\": \"Step 4: German → Spanish (Niutrans)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 4: German → Spanish (Niutrans)\": { \"main\": [[{ \"node\": \"Step 5: Spanish → English (Niutrans)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 5: Spanish → English (Niutrans)\": { \"main\": [[{ \"node\": \"Output\", \"type\": \"main\", \"index\": 0 }]] }\n },\n \"settings\": { \"executionOrder\": \"v1\" }\n}\n"}, "a16a6f4b1e31090d9ebe8cf9e5018a897472788f": {"t": 1785750862.2369118, "n": 5932, "h": "94a264918d2a3e27", "c": "{\n \"name\": \"AI Humanize - Standard Pipeline v1.5\",\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"start\",\n \"name\": \"Start\",\n \"type\": \"n8n-nodes-base.manualTrigger\",\n \"position\": [240, 300],\n \"typeVersion\": 1\n },\n {\n \"parameters\": {\n \"values\": {\n \"string\": [\n {\n \"name\": \"text\",\n \"value\": \"={{$json.text || 'Your AI-generated text here'}}\"\n }\n ]\n }\n },\n \"id\": \"input\",\n \"name\": \"Input Text\",\n \"type\": \"n8n-nodes-base.set\",\n \"position\": [440, 300],\n \"typeVersion\": 2\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.deepseek.com/chat/completions\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpHeaderAuth\",\n \"sendHeaders\": true,\n \"headerParameters\": {\n \"parameters\": [\n {\n \"name\": \"Content-Type\",\n \"value\": \"application/json\"\n }\n ]\n },\n \"sendBody\": true,\n \"contentType\": \"raw\",\n \"rawContentType\": \"application/json\",\n \"body\": \"={{ JSON.stringify({ \\\"model\\\": \\\"deepseek-chat\\\", \\\"temperature\\\": 1.3, \\\"messages\\\": [ { \\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"你是一个专业的文案改写专家,精通多语言本地化。\\\" }, { \\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"翻译为中文,去掉 AI 味道,拟人化改写,只输出结果:\\\\n\\\" + $json.text } ] }) }}\"\n },\n \"id\": \"step1\",\n \"name\": \"Step 1: Chinese Rewrite (DeepSeek)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [660, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.deepseek.com/chat/completions\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpHeaderAuth\",\n \"sendHeaders\": true,\n \"headerParameters\": {\n \"parameters\": [\n {\n \"name\": \"Content-Type\",\n \"value\": \"application/json\"\n }\n ]\n },\n \"sendBody\": true,\n \"contentType\": \"raw\",\n \"rawContentType\": \"application/json\",\n \"body\": \"={{ JSON.stringify({ \\\"model\\\": \\\"deepseek-chat\\\", \\\"temperature\\\": 1.3, \\\"messages\\\": [ { \\\"role\\\": \\\"system\\\", \\\"content\\\": \\\"你是一个专业的文案改写专家,精通多语言本地化。\\\" }, { \\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"翻译为日语,去掉 AI 味道,拟人化改写,只输出结果:\\\\n\\\" + $json.choices[0].message.content } ] }) }}\"\n },\n \"id\": \"step2\",\n \"name\": \"Step 2: Japanese Rewrite (DeepSeek)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [880, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://translate.googleapis.com/translate_a/single\",\n \"sendQuery\": true,\n \"queryParameters\": {\n \"parameters\": [\n { \"name\": \"client\", \"value\": \"gtx\" },\n { \"name\": \"sl\", \"value\": \"ja\" },\n { \"name\": \"tl\", \"value\": \"de\" },\n { \"name\": \"dt\", \"value\": \"t\" },\n { \"name\": \"q\", \"value\": \"={{ $json.choices[0].message.content }}\" }\n ]\n }\n },\n \"id\": \"step3\",\n \"name\": \"Step 3: Japanese → German (Google)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1100, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.niutrans.com/NiuTransServer/translation\",\n \"sendBody\": true,\n \"contentType\": \"json\",\n \"bodyParameters\": {\n \"parameters\": [\n { \"name\": \"from\", \"value\": \"de\" },\n { \"name\": \"to\", \"value\": \"es\" },\n { \"name\": \"apikey\", \"value\": \"YOUR_NIUTRANS_KEY\" },\n { \"name\": \"src_text\", \"value\": \"={{ $json[0].map(s => s[0]).join('') }}\" }\n ]\n }\n },\n \"id\": \"step4\",\n \"name\": \"Step 4: German → Spanish (Niutrans)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1320, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"method\": \"POST\",\n \"url\": \"https://api.niutrans.com/NiuTransServer/translation\",\n \"sendBody\": true,\n \"contentType\": \"json\",\n \"bodyParameters\": {\n \"parameters\": [\n { \"name\": \"from\", \"value\": \"es\" },\n { \"name\": \"to\", \"value\": \"en\" },\n { \"name\": \"apikey\", \"value\": \"YOUR_NIUTRANS_KEY\" },\n { \"name\": \"src_text\", \"value\": \"={{ $json.tgt_text }}\" }\n ]\n }\n },\n \"id\": \"step5\",\n \"name\": \"Step 5: Spanish → English (Niutrans)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"position\": [1540, 300],\n \"typeVersion\": 4\n },\n {\n \"parameters\": {\n \"values\": {\n \"string\": [\n {\n \"name\": \"humanized_text\",\n \"value\": \"={{ $json.tgt_text }}\"\n }\n ]\n }\n },\n \"id\": \"output\",\n \"name\": \"Output\",\n \"type\": \"n8n-nodes-base.set\",\n \"position\": [1760, 300],\n \"typeVersion\": 2\n }\n ],\n \"connections\": {\n \"Start\": { \"main\": [[{ \"node\": \"Input Text\", \"type\": \"main\", \"index\": 0 }]] },\n \"Input Text\": { \"main\": [[{ \"node\": \"Step 1: Chinese Rewrite (DeepSeek)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 1: Chinese Rewrite (DeepSeek)\": { \"main\": [[{ \"node\": \"Step 2: Japanese Rewrite (DeepSeek)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 2: Japanese Rewrite (DeepSeek)\": { \"main\": [[{ \"node\": \"Step 3: Japanese → German (Google)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 3: Japanese → German (Google)\": { \"main\": [[{ \"node\": \"Step 4: German → Spanish (Niutrans)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 4: German → Spanish (Niutrans)\": { \"main\": [[{ \"node\": \"Step 5: Spanish → English (Niutrans)\", \"type\": \"main\", \"index\": 0 }]] },\n \"Step 5: Spanish → English (Niutrans)\": { \"main\": [[{ \"node\": \"Output\", \"type\": \"main\", \"index\": 0 }]] }\n },\n \"settings\": { \"executionOrder\": \"v1\" }\n}\n"}}}}