Feiten extraheren uit gespreksgeschiedenis
Tijd om je gespreksgeschiedenis te upgraden! Je gaat pydantic-classes definiëren om feiten op een gestructureerde manier uit gespreksgeschiedenissen te halen.
Dit vormt de basis voor de volgende en laatste oefening van de cursus, waarin je de extractie daadwerkelijk gaat uitvoeren.
De benodigde pydantic-classes zijn al geïmporteerd en er is al een llm gedefinieerd.
Deze oefening maakt deel uit van de cursus
Graph RAG met LangChain en Neo4j
Oefeninstructies
- Definieer een
pydantic-ConversationFact-class om feiten uit een gesprek te extraheren; neem veldenobject,subject,relationshipensession_idop die overeenkomen met de gegeven beschrijvingen. - Definieer een
pydantic-ConversationFacts-class om lijsten vanConversationFact-objecten te maken. - Koppel het gestructureerde outputformaat aan de meegeleverde
llm.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Define the ConversationFact with the correct fields
class ____(____):
"""
A class that holds the facts from a conversation in a format of object, subject, predicate.
For example, if the conversation includes the fact that the user likes ice creamthe facts would be:
- object: "Adam"
- subject: "ice cream"
- relationship: "LIKES"
The class also includes a session ID to identify the conversation.
"""
____: str = Field(description="The session ID of the conversation.")
____: str = Field(description="The object of the fact. For example, 'Adam' ")
____: str = Field(description="The subject of the fact. For example, 'Ice cream'")
____: str = Field(description="The relationship between the object and the subject. This should be a single word verb in upper case. For example, 'LIKES' or 'OWNS'")
# Define a ConversationFacts class for creating lists of ConversationFact objects
class ____(____):
"""A class that holds a list of ConversationFact objects."""
facts: list[____] = Field(description="A list of ConversationFact objects.")
# Bind the output to the llm provided
llm_with_output = llm.____(____)