• Team Registration
  • Hackathon Documentation 

    { "name": "Nuclia Retrival ", "description": "Get data back from nuclia", "color": "linear-gradient(rgb(108,15,11), rgb(167,176,179))", "iconSrc": "", "schema": "[{\"id\":0,\"property\":\"query\",\"description\":\"input question\",\"type\":\"string\",\"required\":false}]", "func": "const fetch = require('node-fetch');\n\nasync function main() {\n const url = `${$vars.NUCLIA_KB_URL}/ask`;\n\n // ⚠️ Store token in Flowise variables or env for safety, not hardcoded\n const token = `Bearer ${$vars.NUCLIA_API_KEY}`;\n\n const body = {\n query: $flow.input,\n context: $vars.context ? [{ author: \"USER\", text: $vars.context }] : []\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'X-NUCLIA-SERVICEACCOUNT': token,\n 'Content-Type': 'application/json',\n 'x-synchronous': 'true'\n },\n body: JSON.stringify(body)\n });\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n\n // Read as text first (Nuclia can return JSON or NDJSON)\n const raw = await response.text();\n\n let data;\n try {\n data = JSON.parse(raw);\n } catch (e) {\n // Try NDJSON line-by-line\n const lines = raw.split(\"\\n\").filter(l => l.trim() !== \"\");\n let answerParts = [];\n for (const line of lines) {\n try {\n const obj = JSON.parse(line);\n if (obj.item?.type === \"answer\" && obj.item?.text) {\n answerParts.push(obj.item.text);\n }\n } catch (err) {\n console.error(\"Skipping invalid NDJSON line:\", line);\n }\n }\n if (answerParts.length > 0) {\n return answerParts.join(\"\");\n }\n // If still fails, just return raw\n return `Parsing error: ${e.message}\\nRaw: ${raw}`;\n }\n\n // Handle different response shapes\n if (data.answer) return data.answer;\n if (data.answers && Array.isArray(data.answers)) {\n return data.answers.map(a => a.text || a).join(\"\\n\");\n }\n\n return JSON.stringify(data);\n } catch (error) {\n console.error(\"Nuclia API Error:\", error);\n return `Error: ${error.message}`;\n }\n}\n\nreturn main();", "workspaceId": "e0734292-933b-4524-a113-593a5b264d87" }