Neo4j
Neo4j 是一款高性能的开源图数据库,专为管理互联数据而设计。 Neo4j 的原生图模型非常适合对社会图谱、推荐系统、知识网络等复杂且高度互联的领域建模。 通过与 LangChain4j 的集成,可在 Langchain4j 库中使用 Neo4j Vector 能力。
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-neo4j</artifactId>
<version>${latest version here}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-neo4j-retriever</artifactId>
<version>${latest version here}</version>
</dependency>
<!-- if we want to use the Spring Boot starter -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-neo4j-spring-boot-starter</artifactId>
<version>${latest version here}</version>
</dependency>
API
LangChain4j 为 Neo4j 集成提供了以下类:
Neo4jEmbeddingStore:实现 EmbeddingStore 接口,支持在 Neo4j 数据库中存储与查询向量嵌入。Neo4jText2CypherRetriever:实现 ContentRetriever 接口,根据用户问题生成并执行 Cypher 查询,从而改进从 Neo4j 数据库的内容检索。它将自然语言问题翻译为 Cypher 查询, 并利用通过 apoc.meta.data 过程计算得到的 Neo4j schema。KnowledgeGraphWriter:从LLMGraphTransformer产生的结构化数据出发,将 Neo4j 节点与关系写入数据库的类。LLMGraphTransformer可将一份或多份非结构化文档转换为图;它与具体数据库无关,因此可将文本转换为 Nodes 与 Edges 的集合,也可用于 RedisGraph 等其他图数据库。Neo4jEmbeddingStoreIngestor:实现ParentChildEmbeddingStoreIngestor接口,执行多阶段转换流水线:转换文档、拆分为片段、可选地对子片段做额外转换、生成嵌入,并将父子关系与嵌入一并存入 Neo4j。Neo4jChatMemoryStore:实现ChatMemoryStore接口,在 Neo4j 图数据库中存储与检索对话消息。它支持使用 Neo4j 节点与关系高效查询并持久化聊天历史。