始める無料で始める

少数の例を提供する(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."""})
コードを編集して実行