
5
できます。なお、
with_structured_output
メソッドは、
Pydantic
のデータモデルを引数に取
ります。
以降、本項では、単純なデータモデルと入れ子になったデータモデルを指定する例をそれぞ
れ順番に示します。
単純なデータモデル
最初の例として、天体の情報をLLM に問い合わせ、その結果をデータモデルの形式で受け
取るプログラムをリスト 5.2.6 に示します。
リスト5.2.6
from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
from typing import Literal
class CelestialBody(BaseModel):
name: str = Field(description="天体の名前(漢字表記)")
radius: float = Field(description="天体の半径(km)")
mass: float = Field(description="天体の質量(kg)")
type: Literal["恒星", "惑星", "衛星"] = Field(description="天体の種類")
llm = ChatOpenAI()
llm_with_structured_output = llm.with_structured_output(CelestialBody) ...