Mulai sekarangMulai gratis

Meminta keluaran terstruktur

Saat membuat graf leksikal, Anda mengekstraksi nama karakter dan dialog dari teks menggunakan pemisah teks, tetapi pendekatan ini sering menyebabkan konteks di sekitar batas pemisahan hilang. Misalnya, petunjuk panggung yang ada dalam teks dapat digunakan untuk menentukan kepada siapa karakter tersebut sedang berbicara saat itu.

Anda akan menggunakan kelas Character di dalam kelas Line baru untuk mendeskripsikan dialog yang diucapkan, beserta pembicaranya dan daftar karakter yang menjadi lawan bicara. Anda juga akan membuat kelas pembungkus LineOutput untuk mengekstrak beberapa dialog ini sekaligus.

Variabel prompt yang berisi instruksi ekstraksi telah disiapkan untuk Anda, bersama dengan instance LLM sebagai llm.

Latihan ini merupakan bagian dari kursus

Graph RAG dengan LangChain dan Neo4j

Lihat Kursus

Instruksi latihan

  • Perbarui kelas LineOutput untuk meminta daftar objek Line.
  • Definisikan LLM yang menghasilkan keluaran terstruktur menggunakan kelas LineOutput.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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)
Edit dan Jalankan Kode