Menyimpan dan menanya dokumen

Retrieval Augmented Generation (RAG) dengan LangChain

Meri Nova

Machine Learning Engineer

Menginisialisasi basis data Neo4j

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/
Retrieval Augmented Generation (RAG) dengan LangChain

Menyimpan dokumen grafik

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)
Retrieval Augmented Generation (RAG) dengan LangChain

Menyimpan dokumen grafik

graph.add_graph_documents(
  graph_documents,

include_source=True,
baseEntityLabel=True
)
  • include_source=True: tautkan node ke dokumen sumber dengan edge MENTIONS
  • baseEntityLabel=True: tambahkan label __Entity__ ke setiap node
Retrieval Augmented Generation (RAG) dengan LangChain

Dokumen grafik direpresentasikan sebagai node dan edge.

Retrieval Augmented Generation (RAG) dengan LangChain

Versi diperbesar dari gambar sebelumnya yang menampilkan node tentang model OpenAI.

Retrieval Augmented Generation (RAG) dengan LangChain

Skema basis data

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)
Retrieval Augmented Generation (RAG) dengan LangChain

Menanya Neo4j - Bahasa Kueri Cypher

Sebuah node bernama James dengan relasi bernama friends yang menunjuk ke node person misteri.

Retrieval Augmented Generation (RAG) dengan LangChain

Menanya Neo4j - Bahasa Kueri Cypher

cypher4.jpg

Retrieval Augmented Generation (RAG) dengan LangChain

Menanya Neo4j - Bahasa Kueri Cypher

cypher4.jpg

Retrieval Augmented Generation (RAG) dengan LangChain

Menanya Neo4j - Bahasa Kueri Cypher

cypher4.jpg

Retrieval Augmented Generation (RAG) dengan LangChain

Menanya Neo4j - Bahasa Kueri Cypher

cypher4.jpg

Retrieval Augmented Generation (RAG) dengan LangChain

Menanya grafik LLM

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

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

Ayo berlatih!

Retrieval Augmented Generation (RAG) dengan LangChain

Preparing Video For Download...