CommencerCommencez gratuitement

Extraire des faits à partir d’historiques de conversation

Passons à la vitesse supérieure avec votre historique de conversation ! Vous allez définir des classes pydantic pour extraire des faits à partir d’historiques de conversation de manière structurée.

Cela posera les bases du prochain et dernier exercice du cours, dans lequel vous effectuerez réellement l’extraction.

Les classes pydantic nécessaires ont déjà été importées et un llm a déjà été défini.

Cet exercice fait partie du cours

<cours>Graph RAG avec LangChain et Neo4j</cours>
Voir le cours

Instructions de l’exercice

  • Définissez une classe pydantic ConversationFact pour extraire des faits d’une conversation ; incluez les champs object, subject, relationship et session_id conformément aux descriptions fournies.
  • Définissez une classe pydantic ConversationFacts pour créer des listes d’objets ConversationFact.
  • Liez le format de sortie structuré au llm fourni.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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.____(____) 
Modifier et exécuter le code