Belgeleri depolama ve sorgulama

LangChain ile Retrieval Augmented Generation (RAG)

Meri Nova

Machine Learning Engineer

Neo4j veritabanını başlatma

from langchain_community.graphs import Neo4jGraph

graph = Neo4jGraph(url="bolt://localhost:7687", username="neo4j", password="...")
import os

url = os.environ["NEO4J_URI"]
user = os.environ["NEO4J_USERNAME"]
password = os.environ["NEO4J_PASSWORD"]

graph = Neo4jGraph(url=url, username=user, password=password)
1 https://neo4j.com/download/
LangChain ile Retrieval Augmented Generation (RAG)

Graf belge depolama

from langchain_experimental.graph_transformers import LLMGraphTransformer

llm = ChatOpenAI(api_key="...", temperature=0, model="gpt-4o-mini")
llm_transformer = LLMGraphTransformer(llm=llm)

graph_documents = llm_transformer.convert_to_graph_documents(documents)
LangChain ile Retrieval Augmented Generation (RAG)

Graf belge depolama

graph.add_graph_documents(
  graph_documents,

include_source=True,
baseEntityLabel=True
)
  • include_source=True: düğümleri kaynak belgelere MENTIONS kenarıyla bağlar
  • baseEntityLabel=True: her düğüme __Entity__ etiketi ekler
LangChain ile Retrieval Augmented Generation (RAG)

Düğümler ve kenarlar olarak temsil edilen graf belgeleri.

LangChain ile Retrieval Augmented Generation (RAG)

OpenAI modelleriyle ilgili düğümleri gösteren önceki görselin büyütülmüş hâli.

LangChain ile Retrieval Augmented Generation (RAG)

Veritabanı şeması

print(graph.get_schema)
Node properties:
Concept {id: STRING}
Architecture {id: STRING}
Organization {id: STRING}
Event {id: STRING}
Paper {id: STRING}

The relationships:
(:Concept)-[:DEVELOPED_BY]->(:Person)
(:Architecture)-[:BASED_ON]->(:Concept)
(:Organization)-[:PROPOSED]->(:Concept)
(:Document)-[:MENTIONS]->(:Event)
(:Paper)-[:BASED_ON]->(:Concept)
LangChain ile Retrieval Augmented Generation (RAG)

Neo4j sorgulama - Cypher sorgu dili

James adlı bir düğümden gizemli bir kişi düğümüne friends adlı bir ilişkiyi gösteren görsel.

LangChain ile Retrieval Augmented Generation (RAG)

Neo4j sorgulama - Cypher sorgu dili

cypher4.jpg

LangChain ile Retrieval Augmented Generation (RAG)

Neo4j sorgulama - Cypher sorgu dili

cypher4.jpg

LangChain ile Retrieval Augmented Generation (RAG)

Neo4j sorgulama - Cypher sorgu dili

cypher4.jpg

LangChain ile Retrieval Augmented Generation (RAG)

Neo4j sorgulama - Cypher sorgu dili

cypher4.jpg

LangChain ile Retrieval Augmented Generation (RAG)

LLM grafiğini sorgulama

results = graph.query("""
MATCH (gpt4:Model {id: "Gpt-4"})-[:DEVELOPED_BY]->(org:Organization)
RETURN org
""")

print(results)
[{'org': {'id': 'Openai'}}]
LangChain ile Retrieval Augmented Generation (RAG)

Haydi pratik yapalım!

LangChain ile Retrieval Augmented Generation (RAG)

Preparing Video For Download...