👓
Gemini 1.5 APIでJSONモードでスキーマを指定する
Gemini 1.5からJSONモードがあり、スキーマも指定できるようになっているので使い方を紹介します。
プロンプトでJSONスキーマを指定しなくても、APIリクエスト時のパラメータとして指定することができます。
リクエストサンプル
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={{apikey}}
Content-Type: application/json
{
"contents": [{
"parts":[{
"text": "東京都新宿区大京町22-1 グランファースト新宿御苑3F/4F"
}],
"role": "user"
}],
"systemInstruction": {
"parts":[{
"text": "与えられた住所を、都道府県、市区町村、番地、建物名の4つに分解してください。"
}],
"role": "model"
},
"generationConfig": {
"responseMimeType": "application/json",
"responseSchema" : {
"type": "object",
"properties" :{
"都道府県" : {
"type": "string"
},
"市区町村" : {
"type": "string"
},
"番地" : {
"type": "string"
},
"建物名" : {
"type": "string"
}
}
}
}
}
generationConfig
内の responseSchema
にレスポンスで欲しい形のJSONスキーマを指定します。
初期の1.5のときには、responseSchema
はなかったはずで、プロンプト内で指定する必要がありました。
レスポンス
{
"candidates": [
{
"content": {
"parts": [
{
"text": "{\"市区町村\": \"新宿区\", \"建物名\": \"グランファースト新宿御苑\", \"番地\": \"大京町22-1\", \"都道府県\": \"東京都\"}\n"
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
...
}
APIの利用方法については、Gemini APIのメモ(REST API利用)もあわせてご覧いただければと思います。
Discussion