참고소스 수정본

This commit is contained in:
LASTA_DEV01\lasta
2026-05-12 19:40:31 +09:00
parent 0f34a451fc
commit 2e9204243d
8708 changed files with 3259488 additions and 869 deletions

View File

@@ -0,0 +1,63 @@
"""End to end example of building a RAG pipeline backed by a Neo4j database.
Requires OPENAI_API_KEY to be in the env var.
This example illustrates:
- VectorCypherRetriever with a custom formatter function to extract relevant
context from neo4j result
- Use of a custom prompt for RAG
- Logging configuration
"""
import neo4j
from neo4j_graphrag.embeddings.openai import OpenAIEmbeddings
from neo4j_graphrag.generation import GraphRAG, RagTemplate
from neo4j_graphrag.llm import OpenAILLM
from neo4j_graphrag.retrievers import VectorCypherRetriever
URI = "neo4j://localhost:7687"
AUTH = ("neo4j", "password")
DATABASE = "neo4j"
INDEX = "moviePlotsEmbedding"
driver = neo4j.GraphDatabase.driver(
URI,
auth=AUTH,
)
embedder = OpenAIEmbeddings()
retriever = VectorCypherRetriever(
driver,
index_name=INDEX,
retrieval_query="WITH node, score RETURN node.title as title, node.plot as plot",
embedder=embedder,
neo4j_database=DATABASE,
)
llm = OpenAILLM(model_name="gpt-5", model_params={"temperature": 0})
template = RagTemplate(
template="""You are an expert at movies and actors. Your task is to
answer the user's question based on the provided context. Use only the
information within that context.
Context:
{context}
Question:
{query_text}
Answer:
"""
)
rag = GraphRAG(retriever=retriever, llm=llm, prompt_template=template)
result = rag.search(
"Tell me more about Avatar movies",
return_context=True,
)
print(result.answer)
driver.close()