Đồ thị miền

Graph RAG với LangChain và Neo4j

Adam Cowley

Manager, Developer Education at Neo4j

Đồ thị miền

Sơ đồ đồ thị tri thức: bên trái là đồ thị từ vựng với sách, chương và trang; bên phải là người và công ty trong sách cùng các tham chiếu từ nguồn khác như Wikipedia

Graph RAG với LangChain và Neo4j

Từ đồ thị từ vựng đến đồ thị miền

Lời bài hát Don't Stop Believing của Journey

Graph RAG với LangChain và Neo4j

Từ đồ thị từ vựng đến đồ thị miền

Lời bài hát Don't Stop Believing của Journey với "Small Town Boy" được tô sáng là một người

Graph RAG với LangChain và Neo4j

Từ đồ thị từ vựng đến đồ thị miền

Lời bài hát Don't Stop Believing của Journey với "South Detroit" được tô sáng là một địa điểm

Graph RAG với LangChain và Neo4j

Từ đồ thị từ vựng đến đồ thị miền

Lời bài hát Don't Stop Believing của Journey với "Born" được tô sáng như một quan hệ giữa nút người "Small Town Boy" và địa điểm "South Detroit"

Graph RAG với LangChain và Neo4j

Từ đồ thị từ vựng đến đồ thị miền

Lời bài hát Don't Stop Believing của Journey với "Raised" được tô sáng như một quan hệ giữa nút người "Small Town Boy" và địa điểm "South Detroit"

Graph RAG với LangChain và Neo4j

Ví dụ đồ thị miền

Ví dụ mô hình đồ thị miền: một người làm việc tại một công ty, ở một địa chỉ. Người đó có thẻ tín dụng, thẻ này có đơn hàng tại một công ty cùng địa điểm

Graph RAG với LangChain và Neo4j

Đầu ra có cấu trúc

from pydantic import BaseModel, Field

from typing import Optional
class Character(BaseModel): """A character from the play."""
id: str = Field(description="A unique identifier for the character in slug-case",
examples=["montague-romeo", "tybalt"])
name: str = Field(description="The full name of the character", examples=["Romeo", "Tybalt"])
family: Optional[str] = Field(description="The name of the family they belong to", examples=["Montague", "Capulet"])
class CharacterOutput(BaseModel): characters: list[Character] = Field(description="A list of characters")
Graph RAG với LangChain và Neo4j

Sử dụng đầu ra có cấu trúc

from langchain.chat_models import init_chat_model
llm = init_chat_model("gpt-4o-mini", model_provider="openai", api_key="...")


# Với đầu ra có cấu trúc character_model = llm.with_structured_output(CharacterOutput)
# Dùng trong một chuỗi chain = extraction_prompt | character_model
# Xử lý phản hồi output = chain.invoke(...)
CharacterOutput(characters=[Character, Character, Character...])
Graph RAG với LangChain và Neo4j

Lưu thực thể

nodes = [

Node(
type="Character",
id=character.id,
properties={"name": character.name, "family": character.family}
)
for character in output.characters
]
# Tạo GraphDocument graph_document = GraphDocument(nodes=nodes, relationships=[])
# Lưu vào đồ thị graph.add_graph_documents([graph_document])
Graph RAG với LangChain và Neo4j

Vamos praticar!

Graph RAG với LangChain và Neo4j

Preparing Video For Download...