Home >Technology peripherals >AI >Integrate
The LangChain-Kùzu integration package, now available on PyPI, seamlessly connects LangChain's capabilities with Kùzu's graph database. This powerful combination simplifies the transformation of unstructured text into structured graphs, benefiting data scientists, developers, and AI enthusiasts alike. Let's explore its key features and functionalities.
This tutorial will cover:
This article is part of the Data Science Blogathon.
Table of Contents:
Quick Kùzu Installation
Install the package on Google Colab using:
pip install -U langchain-kuzu langchain-openai langchain-experimental
This includes LangChain, Kùzu, and OpenAI GPT model support. Other LLMs can be integrated via their respective LangChain-compatible packages.
Why Choose LangChain-Kùzu?
Ideal for working with unstructured text and creating graph representations, this package offers:
Let's illustrate this with a practical example.
First, create a local Kùzu database and establish a connection:
import kuzu db = kuzu.Database("test_db") conn = kuzu.Connection(db)
Getting Started with LangChain-Kùzu
LangChain-Kùzu simplifies graph creation and updating from unstructured text, and querying via a Text2Cypher pipeline using LangChain's LLM chains. Begin by creating a KuzuGraph
object:
from langchain_kuzu.graphs.kuzu_graph import KuzuGraph graph = KuzuGraph(db, allow_dangerous_requests=True)
Consider this sample text:
pip install -U langchain-kuzu langchain-openai langchain-experimental
Specify the entities (nodes) and relationships:
import kuzu db = kuzu.Database("test_db") conn = kuzu.Connection(db)
Use LLMGraphTransformer
to structure the text:
from langchain_kuzu.graphs.kuzu_graph import KuzuGraph graph = KuzuGraph(db, allow_dangerous_requests=True)
Load the documents into Kùzu:
text = "Tim Cook is the CEO of Apple. Apple has its headquarters in California."
# Define schema allowed_nodes = ["Person", "Company", "Location"] allowed_relationships = [ ("Person", "IS_CEO_OF", "Company"), ("Company", "HAS_HEADQUARTERS_IN", "Location"), ]
Note: Set allow_dangerous_requests=True
in KuzuGraph
if encountering errors.
Querying the Graph
Use KuzuQAChain
for natural language queries:
from langchain_core.documents import Document from langchain_experimental.graph_transformers import LLMGraphTransformer from langchain_openai import ChatOpenAI # Define the LLMGraphTransformer llm_transformer = LLMGraphTransformer( llm=ChatOpenAI(model="gpt-4o-mini", temperature=0, api_key='OPENAI_API_KEY'), # noqa: F821 allowed_nodes=allowed_nodes, allowed_relationships=allowed_relationships, ) documents = [Document(page_content=text)] graph_documents = llm_transformer.convert_to_graph_documents(documents)
Advanced Features
LangChain-Kùzu offers:
Kùzu's key features include Cypher query support, embedded architecture, and flexible data import options. Refer to the Kùzu documentation for details.
Getting Started (Revisited)
langchain-kuzu
.Conclusion
The LangChain-Kùzu integration streamlines unstructured data processing, enabling efficient text-to-graph transformation and natural language querying. This empowers users to derive valuable insights from graph data.
Frequently Asked Questions
Q1: How to install langchain-kuzu
? A: Use pip install langchain-kuzu
. Requires Python 3.7 .
Q2: Supported LLMs? A: OpenAI's GPT models, and others via LangChain support.
Q3: Custom schemas? A: Yes, define your nodes and relationships.
Q4: Schema not updating? A: The schema updates automatically; manually call refresh_schema()
if needed.
Q5: Separate LLMs for Cypher and answer generation? A: Yes, use cypher_llm
and qa_llm
in KuzuQAChain
.
Q6: Supported data import formats? A: CSV, JSON, and relational databases.
(Note: Images are not included as the prompt specified maintaining the original image format and location. The image placeholders remain as they were in the input.)
The above is the detailed content of Integrate. For more information, please follow other related articles on the PHP Chinese website!