ストラクチャードアウトプット
ストラクチャードアウトプットは、していした JSON フォーマットでモデルにデータをかえさせます。データちゅうしゅつ、ぶんるいラベルづけ、フォームにゅうりょくなどにむいています。
JSON Mode#
もっともシンプルなほうほうは、モデルにただしい JSON をかえすようもとめることです:
Python
コード
from openai import OpenAI
client = OpenAI(
base_url="https://as.apinoma.com/v1",
api_key="<あなたの APINOMA_API_KEY>"
)
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "system", "content": "あなたはデータ抽出アシスタントです。結果を JSON 形式で返してください。"},
{"role": "user", "content": "次のテキストから人名、会社名、役職を抽出してください:田中はアリババのシニアエンジニアです"}
],
response_format={"type": "json_object"}
)
import json
result = json.loads(response.choices[0].message.content)
print(result)
# {"name": "田中", "company": "アリババ", "title": "シニアエンジニア"}TypeScript
JSON Mode をつかうときは、system prompt に "JSON" というキーワードをふくめてください。ないと、いちぶのモデルはフォーマットようけんをむしすることがあります。
JSON Schema せいやく#
アウトプットこうぞうをよりせいかくにコントロールし、フィールドめいとタイプをきたいどおりにします:
コード
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "user", "content": "次のユーザーレビューの感情を分析してください:この製品は素晴らしく、とても使いやすいです!"}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "sentiment_analysis",
"schema": {
"type": "object",
"properties": {
"sentiment": {
"type": "string",
"enum": ["positive", "negative", "neutral"],
"description": "感情の傾向"
},
"confidence": {
"type": "number",
"description": "信頼度 0-1"
},
"keywords": {
"type": "array",
"items": {"type": "string"},
"description": "主要な感情語"
}
},
"required": ["sentiment", "confidence", "keywords"],
"additionalProperties": False
}
}
}
)アウトプット:
ユースケース#
データちゅうしゅつ
コード
# 非構造化テキストから構造化データを抽出する
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{
"role": "user",
"content": """次の注文情報を抽出してください:
顧客の佐藤さんは2025年1月15日にMacBook Proを3台注文しました。
単価は18999円、配送先は東京都新宿区xxx通り123号です"""
}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "order_info",
"schema": {
"type": "object",
"properties": {
"customer": {"type": "string"},
"date": {"type": "string"},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"quantity": {"type": "integer"},
"unit_price": {"type": "number"}
}
}
},
"address": {"type": "string"}
},
"required": ["customer", "date", "items", "address"]
}
}
}
)ぶんるいラベルづけ
たいおうモデル#
モデル
JSON Mode
JSON Schema
`openai/gpt-4o`
✅
✅
`openai/gpt-4o-mini`
✅
✅
`anthropic/claude-sonnet-4.6`
✅
—
`google/gemini-pro-compatible-flash-lite-preview`
✅
✅
JSON Schema にたいおうしていないモデルでも、system prompt にきたいする JSON フォーマットをくわしくかけば、にたこうかをえられます。
さいしゅうこうしん: 2026 ねん 6 がつ 23 にち