Das neue langchain-kuzu-Integrationspaket ist jetzt auf PyPI verfügbar! Dieses Paket verbindet die leistungsstarken Funktionen von LangChain mit der Spitzentechnologie von Kùzu Graphdatenbankwas eine nahtlose Umwandlung von unstrukturiertem Textual content in strukturierte Diagramme ermöglicht. Unabhängig davon, ob Sie Datenwissenschaftler, Entwickler oder KI-Fanatic sind, vereinfacht diese Integration komplexe Aufgaben wie Entitätsextraktion, Diagrammerstellung usw natürliche Sprache abfragen. Lassen Sie uns untersuchen, was dieses Paket zu einem Sport-Changer für Ihre Daten-Workflows macht.
Lernziele
- Verstehen Sie die Möglichkeiten der LangChain-Kùzu-Integration zur Umwandlung von unstrukturiertem Textual content in strukturierte Diagrammdatenbanken.
- Erfahren Sie, wie Sie Diagrammschemata, einschließlich Knoten und Beziehungen, definieren, die auf Ihre spezifischen Datenanforderungen zugeschnitten sind.
- Beherrschen Sie den Prozess des Erstellens, Aktualisierens und Abfragens von Diagrammen mit den LLM-gesteuerten Instruments von Kùzu und LangChain.
- Entdecken Sie die Abfrage von Diagrammdatenbanken in natürlicher Sprache mit GraphQACain von LangChain für intuitive Dateneinblicke.
- Entdecken Sie erweiterte Funktionen wie dynamische Schemaaktualisierungen, benutzerdefiniertes LLM-Pairing und versatile Datenimportoptionen in Kùzu.
Dieser Artikel wurde im Rahmen der veröffentlicht Information Science-Blogathon.
Schnelle Set up von Kuzu
Um zu beginnen, installieren Sie einfach das Paket auf Google Colab:
pip set up -U langchain-kuzu langchain-openai langchain-experimental
Diese Set up umfasst Abhängigkeiten für LangChain und Kùzu sowie Unterstützung für LLMs wie die GPT-Modelle von OpenAI. Wenn Sie andere LLM-Anbieter bevorzugen, können Sie deren jeweilige von LangChain unterstützte Python-Pakete installieren.
Warum sollten Sie sich für LangChain-Kùzu für Ihre Projekte entscheiden?
Wenn Sie mit unstrukturierten Textdaten arbeiten und diagrammbasierte Darstellungen erstellen möchten, ist dieses Paket genau das Richtige für Sie.
Zu den Hauptmerkmalen gehören:
- Anpassbare Schemata: Definieren und extrahieren Sie mühelos spezifische Entitäten und Beziehungen aus Textdaten.
- Textual content-zu-Grafik-Transformation: Nutzen Sie die Leistungsfähigkeit von LLMs, um aussagekräftige Diagramme aus Rohtext zu strukturieren.
- Abfragen in natürlicher Sprache: Fragen Sie Diagramme intuitiv in natürlicher Sprache ab, unterstützt von GraphQACain von LangChain.
- Nahtlose Integration: Verbinden Sie die LLM-Funktionen von LangChain schnell mit Kùzu für einen einheitlichen Workflow.
Lassen Sie uns ein praktisches Beispiel durchgehen, um diese Integration in Aktion zu sehen.
Erstellen eines Diagramms aus unstrukturiertem Textual content
Erstellen Sie zunächst eine Kùzu-Datenbank auf Ihrem lokalen Pc und stellen Sie eine Verbindung zu dieser her:
import kuzu
db = kuzu.Database("test_db")
conn = kuzu.Connection(db)
Erste Schritte mit LangChain-Kùzu
Kùzus Integration mit LangChain erleichtert das Erstellen und Aktualisieren von Diagrammen aus unstrukturiertem Textual content sowie das Abfragen von Diagrammen über eine Text2Cypher-Pipeline, die die Leistungsfähigkeit der LLM-Ketten von LangChain nutzt. Zunächst erstellen wir ein KuzuGraph-Objekt, das das oben erstellte Datenbankobjekt in Kombination mit dem KuzuGraph-Konstruktor verwendet.
from langchain_kuzu.graphs.kuzu_graph import KuzuGraph
graph = KuzuGraph(db, allow_dangerous_requests=True)
Stellen Sie sich vor, wir möchten den folgenden Textual content in ein Diagramm umwandeln:
- „Tim Cook dinner ist der CEO von Apple. Apple hat seinen Hauptsitz in Kalifornien.“
textual content = "Tim Cook dinner is the CEO of Apple. Apple has its headquarters in California."
Schritt 1: Definieren Sie das Diagrammschema
Definieren Sie zunächst die Arten von Entitäten (Knoten) und Beziehungen, die Sie einbeziehen möchten.
# Outline schema
allowed_nodes = ("Particular person", "Firm", "Location")
allowed_relationships = (
("Particular person", "IS_CEO_OF", "Firm"),
("Firm", "HAS_HEADQUARTERS_IN", "Location"),
)
Schritt 2: Textual content in Diagrammdokumente umwandeln
Verwenden Sie die LLMGraphTransformer-Klasse, um den Textual content in strukturierte Diagrammdokumente zu verarbeiten:
from langchain_core.paperwork import Doc
from langchain_experimental.graph_transformers import LLMGraphTransformer
from langchain_openai import ChatOpenAI
# Outline the LLMGraphTransformer
llm_transformer = LLMGraphTransformer(
llm=ChatOpenAI(mannequin="gpt-4o-mini", temperature=0, api_key='OPENAI_API_KEY'), # noqa: F821
allowed_nodes=allowed_nodes,
allowed_relationships=allowed_relationships,
)
paperwork = (Doc(page_content=textual content))
graph_documents = llm_transformer.convert_to_graph_documents(paperwork)
Schritt 3: Diagrammdokumente zu Kùzu hinzufügen
Laden Sie die Diagrammdokumente zur weiteren Verwendung in Kùzu:
from langchain_kuzu.graphs.kuzu_graph import KuzuGraph
graph = KuzuGraph(db)
graph.add_graph_documents(graph_documents, include_source=True, allow_dangerous_requests= True)
graph_documents(:2)
Hinweis: Setzen Sie in der KuzuGraph-Methode den Parameter „allow_dangerous_requests“ auf True, wenn Sie eine Fehlermeldung erhalten.
Ausgabe:
(GraphDocument(nodes=(Node(id='Tim Cook dinner', kind="Particular person", properties={}),
Node(id='Apple', kind="Firm", properties={}), Node(id='California',
kind="Location", properties={})), relationships=(Relationship(supply=Node(id='Tim
Cook dinner', kind="Particular person", properties={}), goal=Node(id='Apple', kind="Firm",
properties={}), kind="IS_CEO_OF", properties={}),
Relationship(supply=Node(id='Apple', kind="Firm", properties={}),
goal=Node(id='California', kind="Location", properties={}),
kind="HAS_HEADQUARTERS_IN", properties={})), supply=Doc(metadata={},
page_content="Tim Cook dinner is the CEO of Apple. Apple has its headquarters in
California.")))
Abfragen des Diagramms
Mit dem KuzuQAChainkönnen Sie das Diagramm in natürlicher Sprache abfragen:
# Add the graph doc to the graph
graph.add_graph_documents(
graph_documents,
include_source=True,
)
from langchain_kuzu.chains.graph_qa.kuzu import KuzuQAChain
# Create the KuzuQAChain with verbosity enabled to see the generated Cypher queries
chain = KuzuQAChain.from_llm(
llm=ChatOpenAI(mannequin="gpt-4o-mini", temperature=0.3, api_key='OPENAI_API_KEY'), # noqa: F821
graph=graph,
verbose=True,
allow_dangerous_requests=True,
)
chain.invoke("The place is Apple headquartered?")
Ausgabe:
> Getting into new KuzuQAChain chain...
Generated Cypher:
MATCH (c:Firm {id: 'Apple'})-(:HAS_HEADQUARTERS_IN)->(l:Location) RETURN l
Full Context:
({'l': {'_id': {'offset': 0, 'desk': 1}, '_label': 'Location', 'id': 'California', 'kind': 'entity'}})
> Completed chain.
{'question': 'The place is Apple headquartered?',
'end result': 'Apple is headquartered in California.'}
Erweiterte Funktionen freischalten
Die LangChain-Kùzu-Integration bietet mehrere erweiterte Funktionen zur Verbesserung Ihrer Arbeitsabläufe:
- Dynamische Schemaaktualisierungen: Schemata automatisch aktualisieren, wenn das Diagramm aktualisiert wird.
- Benutzerdefinierte LLM-Kopplung: Verwenden Sie separate LLMs für die Generierung von Cypher und Antworten, um die Leistung zu optimieren.
- Umfassende Diagramminspektion: Untersuchen Sie Knoten, Beziehungen und Schemata ganz einfach mit intuitiven Befehlen.
Kùzu ist eine leistungsstarke, einbettbare Graphdatenbank, die für moderne Anwendungen entwickelt wurde. Zu den wichtigsten Highlights gehören:
- Unterstützung für Cypher-Abfragen: Eigenschaftsdiagramme deklarativ mit Cypher abfragen.
- Eingebettete Architektur: In-Prozess ausführen, ohne dass eine Servereinrichtung erforderlich ist.
- Flexibler Datenimport: Verarbeiten Sie Daten aus verschiedenen Formaten wie CSV, JSON und relationalen Datenbanken.
Entdecken Sie mehr im Kùzu-Dokumentation.
Erste Schritte mit LangChain-Kùzu
Um Ihre Reise zu beginnen:
- Installieren Sie das Paket: Beginnen Sie mit pip set up langchain-kuzu.
- Definieren Sie Ihr Diagrammschema: Passen Sie es an Ihre spezifischen Bedürfnisse an.
- Nutzen Sie LLMs: Nutzen Sie die Instruments von LangChain, um Diagramme mühelos zu erstellen und abzufragen.
Besuchen Sie die PyPI-Seite Ausführlichere Beispiele und Aktualisierungen finden Sie hier. Vergessen Sie nicht, unser Repository auf GitHub zu markieren und Ihr Suggestions zu teilen – Ihr Enter treibt unseren Fortschritt voran!
Abschluss
Die langchain-kuzu-Integration definiert neu, wie Sie mit unstrukturierten Daten interagieren. Ganz gleich, ob es darum geht, Textual content in strukturierte Diagramme umzuwandeln oder diese Diagramme mit natürlicher Sprache abzufragen, dieses Paket eröffnet leistungsstarke Möglichkeiten für KI-gesteuerte Dateneinblicke. Probieren Sie es noch heute aus und entdecken Sie eine intuitivere Möglichkeit, mit Diagrammdaten zu arbeiten!
Wichtige Erkenntnisse
- Die LangChain-Kùzu-Integration vereinfacht die mühelose Umwandlung von unstrukturiertem Textual content in strukturierte Diagrammdatenbanken.
- Definieren Sie anpassbare Diagrammschemata, um aussagekräftige Entitäten und Beziehungen zu extrahieren, die auf Ihre Daten zugeschnitten sind.
- Nutzen Sie die LLMs von LangChain für intuitive Abfragen in natürlicher Sprache und die Konvertierung von Textual content in Diagramme.
- Kùzu bietet dynamische Schemaaktualisierungen, nahtlose Integration und Unterstützung für Cypher-Abfragen für verbesserte Arbeitsabläufe.
- Diese Integration ermöglicht es KI-Enthusiasten, Entwicklern und Datenwissenschaftlern, aus Diagrammdaten aussagekräftige Erkenntnisse zu gewinnen.
Häufig gestellte Fragen
A. Führen Sie einfach den Befehl pip set up langchain-kuzu aus. Stellen Sie sicher, dass Python 3.7 oder höher auf Ihrem System installiert ist.
A. Das Paket unterstützt die GPT-Modelle von OpenAI und kann auf andere von LangChain unterstützte LLM-Anbieter erweitert werden.
A. Ja, Sie können Ihr eigenes Schema definieren, indem Sie die Knoten und Beziehungen angeben, die Sie aus dem Textual content extrahieren möchten.
A. Das Schema wird automatisch aktualisiert, wenn Sie die Kette aufrufen. Sie können die Methode „refresh_schema()“ jedoch manuell für das KuzuGraph-Objekt aufrufen.
A. Absolut! Sie können separate LLMs für diese Aufgaben konfigurieren, indem Sie die Parameter cypher_llm und qa_llm im KuzuQACain-Objekt angeben.
A. Kùzu unterstützt Daten aus CSV, JSON und relationalen Datenbanken und ist dadurch äußerst vielseitig.
Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.