UNPKG

n8n-nodes-langsmith-prompt

Version:

n8n node to use LangSmith prompt templates with variable substitution

43 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchPromptTemplateByName = fetchPromptTemplateByName; exports.invokePromptRaw = invokePromptRaw; async function fetchPromptTemplateByName(promptName, apiKey) { var _a, _b; const url = `https://api.smith.langchain.com/commits/-/${encodeURIComponent(promptName)}/latest`; try { const res = await httpGetJson(url, apiKey); return ((_b = (_a = res === null || res === void 0 ? void 0 : res.manifest) === null || _a === void 0 ? void 0 : _a.kwargs) === null || _b === void 0 ? void 0 : _b.template) || null; } catch (error) { console.error('Error fetching prompt template:', error); return null; } } function invokePromptRaw(promptTemplate, params) { let result = promptTemplate; for (const [key, value] of Object.entries(params)) { const regex = new RegExp(`\\{\\s*"?${key}"?\\s*\\}`, 'g'); result = result.replace(regex, value); } return result; } async function httpGetJson(url, apiKey) { try { const response = await fetch(url, { method: 'GET', headers: { 'x-api-key': apiKey, 'Accept': 'application/json', }, }); if (!response.ok) { throw new Error(`HTTP error ${response.status}: ${response.statusText}`); } return await response.json(); } catch (error) { throw new Error(`Failed to fetch data: ${error instanceof Error ? error.message : String(error)}`); } } //# sourceMappingURL=LangSmithHelper.js.map