Från vektorer till grafer

Retrieval Augmented Generation (RAG) med LangChain

Meri Nova

Machine Learning Engineer

Begränsningar med vektor-RAG

Det typiska RAG-arbetsflödet med vektorlager.

En bubbla med texten "teman och relationer".

Retrieval Augmented Generation (RAG) med LangChain

Begränsningar med vektor-RAG

Det typiska RAG-arbetsflödet med vektorlager.

En bubbla med texten "skalbarhet".

Retrieval Augmented Generation (RAG) med LangChain

Begränsningar med vektor-RAG

Det typiska RAG-arbetsflödet med vektorlager.

En bubbla med texten "integrering av olika datakällor".

Retrieval Augmented Generation (RAG) med LangChain

Grafdatabaser

En graf som visar kopplingar mellan personer, platser och intressen.

Retrieval Augmented Generation (RAG) med LangChain

Grafdatabaser – noder

En graf som visar kopplingar mellan personer, platser och intressen.

Retrieval Augmented Generation (RAG) med LangChain

Grafdatabaser – kanter

En graf som visar kopplingar mellan personer, platser och intressen.

Retrieval Augmented Generation (RAG) med LangChain

Neo4j-grafdatabaser

 

Neo4j-logotypen.

LangChain-logotypen.

Retrieval Augmented Generation (RAG) med LangChain

Från grafik till grafer...

En graf som visar kopplingar mellan personer, platser och intressen.

Retrieval Augmented Generation (RAG) med LangChain

Från grafik till grafer...

barcelona_graph.jpg

Retrieval Augmented Generation (RAG) med LangChain

Från grafik till grafer...

barcelona_graph.jpg

Retrieval Augmented Generation (RAG) med LangChain

Läsa in och dela upp Wikipedia-sidor

from langchain_community.document_loaders import WikipediaLoader
from langchain_text_splitters import TokenTextSplitter

raw_documents = WikipediaLoader(query="large language model").load()

text_splitter = TokenTextSplitter(chunk_size=100, chunk_overlap=20) documents = text_splitter.split_documents(raw_documents[:3]) print(documents[0])
page_content='A large language model (LLM) is a computational model capable of...' 
metadata={'title': 'Large language model',
          'summary': "A large language model (LLM) is...",
          'source': 'https://en.wikipedia.org/wiki/Large_language_model'}
Retrieval Augmented Generation (RAG) med LangChain

Från text till grafer!

from langchain_openai import ChatOpenAI

from langchain_experimental.graph_transformers import LLMGraphTransformer
llm = ChatOpenAI(api_key="...", temperature=0, model_name="gpt-4o-mini")
llm_transformer = LLMGraphTransformer(llm=llm)
graph_documents = llm_transformer.convert_to_graph_documents(documents) print(graph_documents)
Retrieval Augmented Generation (RAG) med LangChain

Från text till grafer!

[GraphDocument(
    nodes=[
        Node(id='Llm', type='Computational model'),
        Node(id='Language Generation', type='Concept'),
        Node(id='Natural Language Processing Tasks', type='Concept'),
        Node(id='Llama Family', type='Computational model'),
        Node(id='Ibm', type='Organization'),
        ..., Node(id='Bert', type='Computational model')],
    relationships=[
        Relationship(source=Node(id='Llm', type='Computational model'),
                     target=Node(id='Language Generation', type='Concept'),
                     type='CAPABLE_OF'),
        ...])]
Retrieval Augmented Generation (RAG) med LangChain

Nu kör vi en övning!

Retrieval Augmented Generation (RAG) med LangChain

Preparing Video For Download...