ÎncepețiÎncepe gratuit

Solicitarea unei ieșiri structurate

La crearea grafurilor lexicale, ai extras numele personajului și replicile din text folosind un separator de text, însă această abordare duce adesea la pierderea contextului în jurul punctelor de separare. De exemplu, indicațiile scenice din text pot fi folosite pentru a determina cui i se adresează personajul în acel moment.

Vei folosi clasa Character în interiorul unei noi clase Line pentru a descrie replica rostită, împreună cu vorbitorul și o listă de personaje cărora li se adresează replica. Vei crea, de asemenea, o clasă container LineOutput pentru a extrage mai multe astfel de replici simultan.

Variabila prompt, care conține instrucțiunile de extracție, a fost deja definită pentru tine, împreună cu o instanță LLM denumită llm.

Acest exercițiu face parte din cursul

Graph RAG cu LangChain și Neo4j

Vezi cursul

Instrucțiuni pentru exercițiu

  • Actualizează clasa LineOutput pentru a solicita o listă de obiecte Line.
  • Definește un LLM care generează ieșiri structurate folosind clasa LineOutput.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul