Etki alanı grafikleri

LangChain ve Neo4j ile Graph RAG

Adam Cowley

Manager, Developer Education at Neo4j

Etki alanı grafikleri

Bir bilgi grafiği diyagramı: solda kitap, bölümler ve sayfalarla sözcüksel grafik; sağda kitaptaki kişiler ve şirketler ile Wikipedia dahil diğer kaynaklardan atıflar

LangChain ve Neo4j ile Graph RAG

Sözcüksel graflardan etki alanı graflarına

Journey'nin Don't Stop Believin' şarkı sözleri

LangChain ve Neo4j ile Graph RAG

Sözcüksel graflardan etki alanı graflarına

Journey'nin Don't Stop Believin' şarkı sözleri; "Small Town Boy" kişi olarak vurgulanmış

LangChain ve Neo4j ile Graph RAG

Sözcüksel graflardan etki alanı graflarına

Journey'nin Don't Stop Believin' şarkı sözleri; "South Detroit" konum olarak vurgulanmış

LangChain ve Neo4j ile Graph RAG

Sözcüksel graflardan etki alanı graflarına

Journey'nin Don't Stop Believin' şarkı sözleri; "Born" ifadesi, "Small Town Boy" kişi düğümü ile "South Detroit" konum düğümü arasındaki ilişki olarak vurgulanmış

LangChain ve Neo4j ile Graph RAG

Sözcüksel graflardan etki alanı graflarına

Journey'nin Don't Stop Believin' şarkı sözleri; "Raised" ifadesi, "Small Town Boy" kişi düğümü ile "South Detroit" konum düğümü arasındaki ilişki olarak vurgulanmış

LangChain ve Neo4j ile Graph RAG

Etki alanı grafiği örneği

Bir etki alanı grafik modeli örneği: bir kişi bir şirkette çalışır, bir adreste bulunur. Kişi bir kredi kartına sahiptir; bu kartla aynı konumdaki bir şirkete sipariş verilmiştir

LangChain ve Neo4j ile Graph RAG

Yapılandırılmış çıktılar

from pydantic import BaseModel, Field

from typing import Optional
class Character(BaseModel): """Oyundaki bir karakter."""
id: str = Field(description="Karakter için slug biçiminde benzersiz tanımlayıcı",
examples=["montague-romeo", "tybalt"])
name: str = Field(description="Karakterin tam adı", examples=["Romeo", "Tybalt"])
family: Optional[str] = Field(description="Ait olduğu ailenin adı", examples=["Montague", "Capulet"])
class CharacterOutput(BaseModel): characters: list[Character] = Field(description="Karakter listesi")
LangChain ve Neo4j ile Graph RAG

Yapılandırılmış çıktıları kullanma

from langchain.chat_models import init_chat_model
llm = init_chat_model("gpt-4o-mini", model_provider="openai", api_key="...")


# Yapılandırılmış çıktı ile character_model = llm.with_structured_output(CharacterOutput)
# Zincirde kullanın chain = extraction_prompt | character_model
# Yanıtı işleyin output = chain.invoke(...)
CharacterOutput(characters=[Character, Character, Character...])
LangChain ve Neo4j ile Graph RAG

Varlıkları kaydetme

nodes = [

Node(
type="Character",
id=character.id,
properties={"name": character.name, "family": character.family}
)
for character in output.characters
]
# Bir GraphDocument oluşturun graph_document = GraphDocument(nodes=nodes, relationships=[])
# Grafa kaydedin graph.add_graph_documents([graph_document])
LangChain ve Neo4j ile Graph RAG

Hadi pratik yapalım!

LangChain ve Neo4j ile Graph RAG

Preparing Video For Download...