Structured आउटपुट का अनुरोध करना
Lexical ग्राफ बनाते समय, आपने टेक्स्ट स्प्लिटर का उपयोग करके टेक्स्ट से कैरेक्टर का नाम और उनकी पंक्तियाँ निकाली थीं, लेकिन इस तरीके में अक्सर स्प्लिट बॉउंड्री के आसपास का संदर्भ खो जाता है. उदाहरण के लिए, टेक्स्ट में मौजूद स्टेज डायरेक्शंस से यह पता लगाया जा सकता है कि उस समय कैरेक्टर किससे बात कर रहा है.
आप बोले गए डायलॉग का वर्णन करने के लिए Line नाम की नई क्लास के अंदर Character क्लास का उपयोग करेंगे, जिसमें स्पीकर और उन कैरेक्टर्स की सूची होगी जिनसे वह लाइन कही जा रही है. आप एक रैपर LineOutput क्लास भी बनाएँगे ताकि एक साथ कई लाइनों को निकाला जा सके.
एक्सट्रैक्शन निर्देशों वाला prompt वैरिएबल आपके लिए निर्धारित है, साथ ही llm नाम से एक LLM इंस्टेंस भी दिया गया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
LangChain और Neo4j के साथ Graph RAG
अभ्यास निर्देश
LineOutputक्लास को अपडेट करें ताकि वहLineऑब्जेक्ट्स की सूची का अनुरोध करे.LineOutputक्लास का उपयोग करके structured आउटपुट जनरेट करने वाला LLM परिभाषित करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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)