BaşlayınÜcretsiz başlayın

Yapılandırılmış bir çıktı isteme

Lexical graph'lar oluştururken, metinden karakter adını ve replikleri bir metin ayırıcıyla çıkarmıştın; ancak bu yaklaşım genellikle bölme sınırlarında bağlam kaybına yol açar. Örneğin, metinde yer alan sahne yönergeleri, karakterin o anda kiminle konuştuğunu belirlemek için kullanılabilir.

Konuşulan repliği, konuşmacıyı ve repliğin yöneltildiği karakterlerin listesini tanımlamak için, yeni bir Line sınıfının içinde Character sınıfını kullanacaksın. Ayrıca, bu repliklerden birden fazlasını aynı anda çıkarmak için bir sarmalayıcı LineOutput sınıfı oluşturacaksın.

Çıkarmaya yönelik talimatları içeren prompt değişkeni ve llm olarak bir LLM örneği senin için tanımlandı.

Bu egzersiz, kursun bir parçasıdır

LangChain ve Neo4j ile Graph RAG

Kursa Göz Atın

Egzersiz talimatları

  • LineOutput sınıfını, Line nesnelerinden oluşan bir liste isteyecek şekilde güncelle.
  • LineOutput sınıfını kullanarak yapılandırılmış çıktılar üreten bir LLM tanımla.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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)
Kodu Düzenle ve Çalıştır