n8n-nodes-neo4j
Version:
n8n node for Neo4j with LangChain integration, supporting vector stores and graph operations
30 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNeo4jVectorStore = createNeo4jVectorStore;
exports.searchNeo4jVectorStore = searchNeo4jVectorStore;
const neo4j_vector_1 = require("@langchain/community/vectorstores/neo4j_vector");
async function createNeo4jVectorStore(embeddings, config) {
const storeConfig = {
url: config.credentials.uri,
username: config.credentials.username,
password: config.credentials.password,
database: config.credentials.database,
indexName: config.indexName || 'vector',
embeddingNodeProperty: "embedding",
textNodeProperties: ["text"],
retrievalQuery: config.retrievalQuery,
distanceMetric: config.distanceMetric || 'COSINE',
searchType: "vector",
};
return await neo4j_vector_1.Neo4jVectorStore.fromExistingIndex(embeddings, storeConfig);
}
async function searchNeo4jVectorStore(vectorStore, query, embeddings, metadataFilter = {}, k = 4) {
const queryEmbedding = await embeddings.embedQuery(query);
const results = await vectorStore.similaritySearchVectorWithScore(queryEmbedding, k, '', metadataFilter);
return results.map(([doc, score]) => ({
content: doc.pageContent,
score: score,
metadata: doc.metadata
}));
}
//# sourceMappingURL=Neo4jVectorStore.js.map