UNPKG

n8n-nodes-databricks

Version:

Databricks node for n8n

98 lines 4.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VectorStoreDatabricks = void 0; const createVectorStoreNode_1 = require("../shared/createVectorStoreNode/createVectorStoreNode"); const DatabricksVectorStoreLangChain_1 = require("../../../utils/DatabricksVectorStoreLangChain"); class VectorStoreDatabricks extends (0, createVectorStoreNode_1.createVectorStoreNode)({ meta: { displayName: 'Databricks Vector Store', name: 'databricksVectorStore', description: 'Operations for Databricks Vector Store', docsUrl: 'https://docs.databricks.com/aws/en/generative-ai/vector-search', icon: 'file:databricks.svg', operationModes: ['load', 'insert', 'retrieve', 'retrieve-as-tool'], credentials: [ { name: 'databricks', required: true, }, ], }, sharedFields: [ { displayName: 'Index Name', name: 'indexName', type: 'string', default: '', required: true, description: 'Name of the vector search index in Databricks', }, { displayName: 'Text Column', name: 'textColumn', type: 'string', default: 'text', required: true, description: 'Name of the column containing the document text', }, { displayName: 'Metadata Columns', name: 'metadataColumns', type: 'string', default: '', description: 'Comma-separated list of columns to include as metadata', }, { displayName: 'Score Threshold', name: 'scoreThreshold', type: 'number', default: 0.8, description: 'Minimum similarity score threshold', }, ], retrieveFields: [], async getVectorStoreClient(context, filter, embeddings, itemIndex) { const credentials = await context.getCredentials('databricks'); const indexName = context.getNodeParameter('indexName', itemIndex); const textColumn = context.getNodeParameter('textColumn', itemIndex); const metadataColumns = context.getNodeParameter('metadataColumns', itemIndex); const scoreThreshold = context.getNodeParameter('scoreThreshold', itemIndex, 0.8); if (!indexName || !textColumn) { throw new Error('Missing required input properties: indexName or textColumn'); } const metadataColumnsList = metadataColumns ? metadataColumns.split(',').map((s) => s.trim()) : []; return await DatabricksVectorStoreLangChain_1.DatabricksVectorStoreLangChain.fromExistingIndex(embeddings, { workspaceUrl: credentials.host, token: credentials.token, indexName, textColumn, metadataColumns: metadataColumnsList, scoreThreshold, }); }, async populateVectorStore(context, embeddings, documents, itemIndex) { const credentials = await context.getCredentials('databricks'); const inputData = context.getInputData()[itemIndex].json; if (!(inputData === null || inputData === void 0 ? void 0 : inputData.indexName) || !(inputData === null || inputData === void 0 ? void 0 : inputData.textColumn)) { throw new Error('Missing required input properties: indexName or textColumn'); } const metadataColumnsList = inputData.metadataColumns ? inputData.metadataColumns.split(',').map((s) => s.trim()) : []; await DatabricksVectorStoreLangChain_1.DatabricksVectorStoreLangChain.fromDocuments(documents, embeddings, { workspaceUrl: credentials.host, token: credentials.token, indexName: inputData.indexName, textColumn: inputData.textColumn, metadataColumns: metadataColumnsList, }); }, async releaseVectorStoreClient() { }, }) { } exports.VectorStoreDatabricks = VectorStoreDatabricks; exports.default = VectorStoreDatabricks; //# sourceMappingURL=VectorStoreDatabricks.node.js.map