LangChain और Neo4j के साथ Graph RAG
Adam Cowley
Manager, Developer Education at Neo4j
Neo4j में काम करना कैसा है?

Neo4j में काम करना कैसा है?

Neo4j में काम करना कैसा है?

text प्रॉपर्टी से नोड embeddings बनाएँ
text प्रॉपर्टी से नोड embeddings बनाएँ
from langchain_neo4j import Neo4jVector
Neo4jVector.from_documents(): Documents से नोड्स और अंडरलाइंग इंडेक्स बनाता हैNeo4jVector.from_existing_graph(): मौजूदा लेबल और प्रॉपर्टी कॉम्बिनेशंस पर इंडेक्स बनाता है
res = graph.query("""MATCH (s:Scene)WHERE NOT {(s)-[:HAS_LINE]->()}RETURN s.id AS id, s.text AS text""")for scene in res: # Create chunks from scene['text']
text को "\n\n" से स्प्लिट करेंEnter Sampson and Gregory armed with swords..SAMPSON.Gregory, on my word...GREGORY. No, for then we should...SAMPSON. I mean, if we be in choler, we'll draw...
# Split text into lines lines = [ line.strip() for line in text.split("\n\n")if "\n" in line]for line in lines: parts = line.split("\n")character = parts[0]text = "\n".join(parts[1:])
# ...Continuing loop over scenes line_node = Node(type="Line", id=f"{scene.id}-line-{i}", properties={}) character_node = Node(type="Character", id=character, properties={})# (:Scene)-[:HAS_LINE]->(:Line) graph_document.relationships.append( Relationship(source=scene, target=line_node, type="HAS_LINE"))# (:Line)-[:SPOKEN_BY]->(:Character) graph_document.relationships.append(Relationship( source=line_node, target=characters[character], type="SPOKEN_BY"))
from langchain.embeddings import init_embeddings
store = Neo4jVector.from_existing_graph(init_embeddings("openai:text-embedding-3-small"),url=NEO4J_URI, username=NEO4J_USERNAME, password=NEO4J_PASSWORD,node_label="Line",text_node_properties=["text"],embedding_node_property="embedding",index_name="lines",)
# Create retriever retriever = store.as_retriever()# Invoke manually retriever.invoke("What does Romeo think of Juliet?") # [ Document, Document, ... ]
LangChain और Neo4j के साथ Graph RAG