UNPKG

@n8n/n8n-nodes-langchain

Version:

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

98 lines 3.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RetrieverMultiQuery = void 0; const multi_query_1 = require("@langchain/classic/retrievers/multi_query"); const n8n_workflow_1 = require("n8n-workflow"); const ai_utilities_1 = require("@n8n/ai-utilities"); class RetrieverMultiQuery { constructor() { this.description = { displayName: 'MultiQuery Retriever', name: 'retrieverMultiQuery', icon: 'node:multiquery-retriever', iconColor: 'black', group: ['transform'], version: 1, description: 'Automates prompt tuning, generates diverse queries and expands document pool for enhanced retrieval.', defaults: { name: 'MultiQuery Retriever', }, codex: { categories: ['AI'], subcategories: { AI: ['Retrievers'], }, resources: { primaryDocumentation: [ { url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/', }, ], }, }, inputs: [ { displayName: 'Model', maxConnections: 1, type: n8n_workflow_1.NodeConnectionTypes.AiLanguageModel, required: true, }, { displayName: 'Retriever', maxConnections: 1, type: n8n_workflow_1.NodeConnectionTypes.AiRetriever, required: true, }, ], outputs: [ { displayName: 'Retriever', maxConnections: 1, type: n8n_workflow_1.NodeConnectionTypes.AiRetriever, }, ], builderHint: { inputs: { ai_languageModel: { required: true }, ai_retriever: { required: true }, }, }, properties: [ { displayName: 'Options', name: 'options', placeholder: 'Add Option', description: 'Additional options to add', type: 'collection', default: {}, options: [ { displayName: 'Query Count', name: 'queryCount', default: 3, typeOptions: { minValue: 1 }, description: 'Number of different versions of the given question to generate', type: 'number', }, ], }, ], }; } async supplyData(itemIndex) { this.logger.debug('Supplying data for MultiQuery Retriever'); const options = this.getNodeParameter('options', itemIndex, {}); const model = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiLanguageModel, itemIndex)); const baseRetriever = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiRetriever, itemIndex)); const retriever = multi_query_1.MultiQueryRetriever.fromLLM({ llm: model, retriever: baseRetriever, ...options, }); return { response: (0, ai_utilities_1.logWrapper)(retriever, this), }; } } exports.RetrieverMultiQuery = RetrieverMultiQuery; //# sourceMappingURL=RetrieverMultiQuery.node.js.map