LoslegenKostenlos starten

Einen strukturierten Output anfordern

Beim Erstellen lexikalischer Graphen hast du den Charakternamen und die Zeilen mithilfe eines Text-Splitters aus dem Text extrahiert. Dieser Ansatz führt jedoch oft dazu, dass Kontext an den Schnittstellen verloren geht. Zum Beispiel können Regieanweisungen im Text dabei helfen zu bestimmen, mit wem die Figur gerade spricht.

Du wirst die Klasse Character innerhalb einer neuen Klasse Line verwenden, um die gesprochene Zeile zu beschreiben – zusammen mit der sprechenden Figur und einer Liste von Figuren, an die sich die Zeile richtet. Außerdem erstellst du eine Wrapper-Klasse LineOutput, um mehrere dieser Zeilen auf einmal zu extrahieren.

Die Variable prompt, die Extraktionsanweisungen enthält, wurde bereits für dich definiert, ebenso wie eine LLM-Instanz als llm.

Diese Übung ist Teil des Kurses

<Kurs>Graph RAG mit LangChain und Neo4j</Kurs>
Kurs ansehen

Übungsanweisungen

  • Aktualisiere die Klasse LineOutput, um eine Liste von Line-Objekten anzufordern.
  • Definiere ein LLM, das mithilfe der Klasse LineOutput strukturierte Outputs erzeugt.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

class Line(BaseModel):
    text: str = Field(..., description="The text of the line")
    spoken_by: Character = Field(..., description="The character who speaks the line")
    spoken_to: Optional[list[Character]] = Field(None, description="The character who the line is spoken to")

class LineOutput(BaseModel):
    # Request more than one line from the text
    lines: ____[Line] = Field(..., description="The lines from the text")

# Return an instance of LineOutput
structured_llm = llm.____(____)

for line in structured_llm.invoke(prompt.format_messages(text=text)):
	print(line)
Code bearbeiten und ausführen