UNPKG

n8n-nodes-gigachat

Version:

A user-friendly GigaChat AI (Sber) nodes for n8n

202 lines 9.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GigaChat = void 0; const Disclaimers_1 = require("../../shared/Disclaimers"); const utils_1 = require("./utils"); const ChatWithModel_1 = require("../../shared/methods/ChatWithModel"); class GigaChat { constructor() { this.description = { displayName: 'GigaChat AI', name: 'gigaChat', icon: 'file:../../gigachat.svg', group: ['transform'], version: 1, description: 'Chat with GigaChat AI models with full memory persistence and tool support', defaults: { name: 'GigaChat', }, codex: { categories: ['AI', 'Chat'], subcategories: { AI: ['Chains', 'Root Nodes'], Chat: ['Conversational Agents'], }, resources: { primaryDocumentation: [ { url: 'https://developers.sber.ru/docs/ru/gigachat/api/overview', }, ], }, }, inputs: [ 'main', { type: 'ai_memory', displayName: 'Memory', required: false, maxConnections: 1, }, { type: 'ai_tool', displayName: 'Tools', required: false, maxConnections: Infinity, }, ], outputs: ['main'], outputNames: [''], credentials: [ { name: 'gigaChatApi', required: true, }, ], requestDefaults: { baseURL: '={{ $credentials.baseUrl || "https://gigachat.devices.sberbank.ru/api/v1" }}', skipSslCertificateValidation: true, }, properties: [ ...Disclaimers_1.disclaimerBlocks, { displayName: 'Model', name: 'modelId', type: 'options', description: 'Название и версия модели, которая сгенерирует ответ', typeOptions: { loadOptionsMethod: 'getGigaChatModels', }, default: 'GigaChat', }, { displayName: 'Промпт (польз. сообщение)', name: 'prompt', type: 'string', required: true, default: '', placeholder: 'Напишите ваш промпт здесь...', typeOptions: { rows: 3, }, }, { displayName: 'Настройки', name: 'options', type: 'collection', default: {}, placeholder: 'Добавить настройку', options: [ { displayName: 'Способ вызова функций', name: 'functionCall', type: 'options', default: 'auto', description: 'Как модель должна вести себя с функциями', options: [ { name: 'Авто', value: 'auto', description: 'Модель сама решает когда вызывать функции', }, { name: 'Никогда', value: 'none', description: 'Модель не будет вызывать функции', }, ], }, { displayName: 'Макс. итераций вызова функций', name: 'maxIterations', type: 'number', default: 5, description: 'Сколько максимально инструментов может вызвать GigaChat прежде, чем мы будем считать это бесконечным циклом', typeOptions: { minValue: 1, }, }, { displayName: 'Макс. токенов', name: 'maxTokensToSample', type: 'number', default: 1024, description: 'Как много можно генерировать токенов модели', typeOptions: { minValue: 1, }, }, { displayName: 'Repetition Penalty', name: 'repetitionPenalty', type: 'number', default: 1.0, description: 'Количество повторений слов. Значение 1.0 — нейтральное значение.', typeOptions: { minValue: 0.1, maxValue: 2, numberPrecision: 1, }, }, { displayName: 'Системное сообщение (Промпт)', name: 'systemMessage', type: 'string', default: '', description: 'Системное сообщение. Пишите сюда роль и инструкции ассистента.', typeOptions: { rows: 3, }, }, { displayName: 'Температура', name: 'temperature', type: 'number', default: 0.7, description: 'Чем выше значение, тем более случайным будет ответ модели (0-2)', typeOptions: { minValue: 0, maxValue: 2, numberPrecision: 1, }, }, { displayName: 'Top P', name: 'topP', type: 'number', default: 0.9, description: 'Задает вероятностную массу токенов, которые должна учитывать модель', typeOptions: { minValue: 0, maxValue: 1, numberPrecision: 2, }, }, ], }, { displayName: 'Упростить ответ модели', name: 'simplifyOutput', type: 'boolean', default: false, description: 'Вернуть либо только текст ответа, либо оставить ещё больше информации о запросе', }, { displayName: 'Убрать Markdown', name: 'removeMarkdown', type: 'boolean', default: false, description: 'Либо оставить запрос форматированным, либо попытаться убрать всё форматирование (markdown)', }, ], }; this.methods = { loadOptions: { getGigaChatModels: utils_1.chatLoadGigaChatModels, }, }; this.execute = ChatWithModel_1.gigaChatWithModel; } } exports.GigaChat = GigaChat; //# sourceMappingURL=GigaChat.node.js.map