ПочатиПочніть безкоштовно

Запит структурованого виводу

Під час створення лексичних графів ви виділяли імʼя персонажа та репліки з тексту за допомогою розбивача тексту, але такий підхід часто призводить до втрати контексту на межах фрагментів. Наприклад, ремарки в тексті можна використати, щоб визначити, до кого саме персонаж звертається в цей момент.

Ви використаєте клас Character всередині нового класу Line, щоб описати вимовлену репліку разом із мовцем і списком персонажів, до яких звернена ця репліка. Ви також створите обгортку LineOutput, щоб витягувати одразу кілька таких реплік.

Змінну prompt із інструкціями для витягання вже визначено для вас, так само як і екземпляр LLM під назвою llm.

Ця вправа є частиною курсу

Graph RAG з LangChain і Neo4j

Переглянути курс

Інструкції до вправи

  • Оновіть клас LineOutput, щоб запитувати список обʼєктів Line.
  • Визначте LLM, який генеруватиме структурований вивід за допомогою класу LineOutput.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код