UNPKG

@n8n/n8n-nodes-langchain

Version:

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

79 lines 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RetrieverContextualCompression = void 0; const contextual_compression_1 = require("@langchain/classic/retrievers/contextual_compression"); const chain_extract_1 = require("@langchain/classic/retrievers/document_compressors/chain_extract"); const n8n_workflow_1 = require("n8n-workflow"); const ai_utilities_1 = require("@n8n/ai-utilities"); class RetrieverContextualCompression { constructor() { this.description = { displayName: 'Contextual Compression Retriever', name: 'retrieverContextualCompression', icon: 'node:contextual-compression-retriever', iconColor: 'black', group: ['transform'], version: 1, description: 'Enhances document similarity search by contextual compression.', defaults: { name: 'Contextual Compression Retriever', }, codex: { categories: ['AI'], subcategories: { AI: ['Retrievers'], }, resources: { primaryDocumentation: [ { url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/', }, ], }, }, 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: [], }; } async supplyData(itemIndex) { this.logger.debug('Supplying data for Contextual Compression Retriever'); const model = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiLanguageModel, itemIndex)); const baseRetriever = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiRetriever, itemIndex)); const baseCompressor = chain_extract_1.LLMChainExtractor.fromLLM(model); const retriever = new contextual_compression_1.ContextualCompressionRetriever({ baseCompressor, baseRetriever, }); return { response: (0, ai_utilities_1.logWrapper)(retriever, this), }; } } exports.RetrieverContextualCompression = RetrieverContextualCompression; //# sourceMappingURL=RetrieverContextualCompression.node.js.map