Tạo chuỗi Graph RAG

Retrieval Augmented Generation (RAG) với LangChain

Meri Nova

Machine Learning Engineer

Xây dựng kiến trúc Graph RAG

Một cơ sở dữ liệu đồ thị.

Retrieval Augmented Generation (RAG) với LangChain

Xây dựng kiến trúc Graph RAG

Tài liệu được chuyển thành tài liệu đồ thị và lưu trong cơ sở dữ liệu đồ thị.

Retrieval Augmented Generation (RAG) với LangChain

Xây dựng kiến trúc Graph RAG

Một truy vấn Cypher được dùng để truy xuất tài liệu đồ thị từ cơ sở dữ liệu. Cũng hiển thị đầu vào người dùng và phản hồi ngôn ngữ tự nhiên.

Retrieval Augmented Generation (RAG) với LangChain

Xây dựng kiến trúc Graph RAG

Bộ chuyển đổi từ ngôn ngữ tự nhiên sang Cypher biến đầu vào ngôn ngữ tự nhiên thành truy vấn Cypher và chuyển các tài liệu đồ thị truy xuất được về ngôn ngữ tự nhiên.

Retrieval Augmented Generation (RAG) với LangChain

Từ đầu vào người dùng đến truy vấn Cypher

Một đồ thị đơn giản gồm ba nút và ba quan hệ. Hai nút là người và một nút là địa điểm mà James đã ghé thăm.

Retrieval Augmented Generation (RAG) với LangChain

Từ đầu vào người dùng đến truy vấn Cypher

Đầu vào người dùng hỏi "Where has James visited?".

Retrieval Augmented Generation (RAG) với LangChain

Từ đầu vào người dùng đến truy vấn Cypher

Truy vấn Cypher được tạo dựa trên sơ đồ đồ thị và đầu vào người dùng.

Retrieval Augmented Generation (RAG) với LangChain

GraphCypherQAChain

Kiến trúc Graph RAG để dịch đầu vào người dùng sang truy vấn Cypher và trả về phản hồi ngôn ngữ tự nhiên.

Retrieval Augmented Generation (RAG) với LangChain

GraphCypherQAChain

Kiến trúc Graph RAG với chuỗi generate cypher và chuỗi summarize results được làm nổi bật.

Retrieval Augmented Generation (RAG) với LangChain

Làm mới schema

graph.refresh_schema()
print(graph.get_schema)
Node properties:
Document {title: STRING, id: STRING, text: STRING, summary: STRING, source: STRING}
Concept {id: STRING}
Organization {id: STRING}
Relationship properties:

The relationships:
(:Document)-[:MENTIONS]->(:Organization)
(:Concept)-[:DEVELOPED_BY]->(:Person)
Retrieval Augmented Generation (RAG) với LangChain

Truy vấn đồ thị

from langchain_community.chains.graph_qa.cypher import GraphCypherQAChain

chain = GraphCypherQAChain.from_llm( llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True )
result = chain.invoke({"query": "What is the most accurate model?"})
1 https://api.python.langchain.com/en/latest/chains/langchain_community.chains.graph_qa.cypher. GraphCypherQAChain.html
Retrieval Augmented Generation (RAG) với LangChain

Truy vấn đồ thị

print(f"Final answer: {result['result']}")
> Entering new GraphCypherQAChain chain...
Generated Cypher:
MATCH (m:Model)
RETURN m
ORDER BY m.accuracy DESC
LIMIT 1;
Full Context:
[{'m': {'id': 'Artificial Neural Networks'}}]

> Finished chain.


Final answer: Artificial Neural Networks

DNT_CURLLY_TAG_2

Retrieval Augmented Generation (RAG) với LangChain

Tùy biến

chain = GraphCypherQAChain.from_llm(
    llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True
)
  • qa_prompt: Mẫu nhắc cho tạo kết quả
  • cypher_prompt: Mẫu nhắc cho tạo Cypher
  • cypher_llm: LLM để tạo Cypher
  • qa_llm: LLM để tạo kết quả
Retrieval Augmented Generation (RAG) với LangChain

Cùng luyện tập nào!

Retrieval Augmented Generation (RAG) với LangChain

Preparing Video For Download...