UNPKG

n8n-nodes-nim

Version:
105 lines 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Nim = void 0; const openai_1 = require("openai"); class Nim { constructor() { this.description = { displayName: 'NVIDIA NIM', name: 'nim', icon: { light: 'file:nvidia-nim-dark.svg', dark: 'file:nvidia-nim-light.svg' }, group: ['transform'], version: 1, description: 'NVIDIA NIM APIs', defaults: { name: 'NVIDIA NIM', }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'nimApi', required: true, }, ], properties: [ { displayName: 'Model', name: 'model', type: 'string', required: true, default: 'meta/llama-3.1-70b-instruct', description: 'Specify model endpoint', noDataExpression: false, }, { displayName: 'System', name: 'systemContent', type: 'string', required: true, default: 'You are a helpful assistant.', placeholder: 'You are a helpful assistant.', description: 'Specify system content', noDataExpression: false, }, { displayName: 'User', name: 'userContent', type: 'string', required: true, default: '', placeholder: 'Hello', description: 'Specify user content', noDataExpression: false, }, { displayName: 'Temperature', name: 'temperature', type: 'number', required: true, typeOptions: { maxValue: 1, minValue: 0, numberPrecision: 1, }, default: 0.3, description: 'Specify a temperature', noDataExpression: true, } ], }; } async execute() { const returnData = []; const credentials = await this.getCredentials('nimApi'); const apiKey = credentials.apiKey; const baseURL = credentials.url; const model = this.getNodeParameter('model', 0); const temperature = this.getNodeParameter('temperature', 0); const userContent = this.getNodeParameter('userContent', 0); const openai = new openai_1.OpenAI({ apiKey, baseURL, }); let messages = []; if (!model.includes('deepseek')) { const systemContent = this.getNodeParameter('systemContent', 0); messages.push({ "role": "system", "content": systemContent }); } messages.push({ "role": "user", "content": userContent }); const responseData = await openai.chat.completions.create({ model, messages: messages.map(msg => ({ role: msg.role, content: msg.content })), temperature, top_p: 0.7, max_tokens: 2048, }); returnData.push(responseData); return [this.helpers.returnJsonArray(returnData)]; } } exports.Nim = Nim; //# sourceMappingURL=Nim.node.js.map