Home > Technology peripherals > AI > Integrate

Integrate

Lisa Kudrow
Release: 2025-03-09 12:34:13
Original
279 people have browsed it

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.

Key Learning Points

This tutorial will cover:

  • Transforming unstructured text into structured graph databases using LangChain-Kùzu.
  • Defining custom graph schemas (nodes and relationships) to match your data.
  • Creating, updating, and querying graphs using Kùzu and LangChain's LLM tools.
  • Employing natural language querying of graph databases via LangChain's GraphQAChain.
  • Utilizing advanced features such as dynamic schema updates, custom LLM pairings, and flexible data import options within Kùzu.

This article is part of the Data Science Blogathon.

Table of Contents:

  • Quick Kùzu Installation
  • Advantages of LangChain-Kùzu
  • Getting Started: A Practical Example
  • Advanced Feature Exploration
  • Getting Started (Revisited)
  • Conclusion
  • Frequently Asked Questions

Quick Kùzu Installation

Install the package on Google Colab using:

pip install -U langchain-kuzu langchain-openai langchain-experimental
Copy after login
Copy after login

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:

  • Flexible Schemas: Easily define and extract entities and relationships.
  • Text-to-Graph Conversion: Structure meaningful graphs from raw text using LLMs.
  • Natural Language Queries: Query graphs intuitively with LangChain's GraphQAChain.
  • Streamlined Integration: Connect LangChain's LLMs with Kùzu for efficient workflows.

Let's illustrate this with a practical example.

Creating a Graph from Text

First, create a local Kùzu database and establish a connection:

import kuzu

db = kuzu.Database("test_db")
conn = kuzu.Connection(db)
Copy after login
Copy after login

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)
Copy after login
Copy after login

Consider this sample text:

  • “Tim Cook is the CEO of Apple. Apple has its headquarters in California.”

LangChain-Kùzu Integration

pip install -U langchain-kuzu langchain-openai langchain-experimental
Copy after login
Copy after login

Step 1: Define the Graph Schema

Specify the entities (nodes) and relationships:

import kuzu

db = kuzu.Database("test_db")
conn = kuzu.Connection(db)
Copy after login
Copy after login

Step 2: Transform Text into Graph Documents

Use LLMGraphTransformer to structure the text:

from langchain_kuzu.graphs.kuzu_graph import KuzuGraph
graph = KuzuGraph(db, allow_dangerous_requests=True)
Copy after login
Copy after login

Step 3: Add Graph Documents to Kùzu

Load the documents into Kùzu:

text = "Tim Cook is the CEO of Apple. Apple has its headquarters in California."
Copy after login
# Define schema
allowed_nodes = ["Person", "Company", "Location"]
allowed_relationships = [
    ("Person", "IS_CEO_OF", "Company"),
    ("Company", "HAS_HEADQUARTERS_IN", "Location"),
]
Copy after login

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)
Copy after login

Advanced Features

LangChain-Kùzu offers:

  • Dynamic Schema Updates: Automatic schema refresh upon graph updates.
  • Custom LLM Pairing: Use separate LLMs for Cypher generation and answer generation.
  • Comprehensive Graph Inspection: Easily inspect nodes, relationships, and schema.

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)

  1. Install langchain-kuzu.
  2. Define your graph schema.
  3. Utilize LangChain's LLMs for graph creation and querying. See the PyPI page for more examples.

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template