少数の例を提供する(few-shot)
構造化出力はデータの返し方を指定しますが、何を返すべきかについては解釈の余地が多く残ります。
Field クラスを使うと、適切な抽出のイメージをLLMに与えるための例値を指定できます。これは構造化出力に対する few-shot プロンプトの一例です。
ここでは Character クラスを拡張し、登場人物を一意に識別するための id フィールドを追加します。モデルが参照できるよう、"romeo-montague" と "lady-capulet" の2つの例を提供したいとします。
この演習はコースの一部です
Graph RAG with LangChain and Neo4j
演習の手順
idプロパティに対して例値を指定するためのキーワードを記述してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
class Character(BaseModel):
id: str = Field(
description="A unique identifer consisting of the Character's given name and their family name in slug case.",
# Provide example values of an ID
____=["romeo-montague", "lady-capulet"]
)
name: str = Field(description="The name of the character")
chain = prompt | llm.with_structured_output(Character)
chain.invoke({"text": """JULIET.
O Romeo, Romeo, wherefore art thou Romeo? Deny thy father and refuse thy name. Or if thou wilt not, be but sworn my love, And I’ll no longer be a Capulet."""})