はじめに
以前の記事でgoogle documentの記事(Gemini API を使用して構造化された出力を生成する)をMIT App Inventoで実装しました.その結果,MIT App Inventorにて生成AIを利用するときにjson schemaを利用することでAIの解答をより求めるものへと近づけられることがわかりました.
ここでは,MIT App InventorでAIからの解答をテキストと数値に分けて出力します.マジ便利!
作成するアプリ
MIT App Inventorからchat Botにアクセスし,ファンタジーに出てきそうなキャラクタのプロフィールを4人考えてもらう.
プロフィールの出力項目
- 名前
- 年齢
- 種族
- 特技
- 詳細
年齢のみ数値で出力してもらう.そのほかはテキスト,
デザイナー画面
機能 | 内容 |
---|---|
Button_ai | クリックしたらgeminiに質問 |
Button_reset | Labelをきれいにする |
Label1 | geminiからの返答 |
Web1 | Geminiへのアクセス |
ブロック画面
変数
GeminiへのURL
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=
APIKey
when Button_ai .Click
Geminiへの質問文
ファンタジー系の物語に出てくるキャラクターのプロフィールを考えてください.
以下の出力項目をすべて考えてください.
出力項目は次の5項目です.
名前,年齢,種族,特技,詳細
種族には魔法使いや騎士,エルフがいます.
特技には種族に関連したものを上げてください.たとえば職業が魔法使いならば,氷魔法が得意や回復魔法が得意など上げてください.
詳細には物語内でどのような立ち回りをするのか詳細に記述してください.
キャラクターは4人考えてください.
dictionaryの中で,equired,STRING,INTEGERについて
"required":["特技", "年齢", "種族", "詳細", "名前"]
"$comment": "requiredは必須項目"
"properties": {
"名前": {
"type":"STRING"
"$comment": "テキストで出力してほしいときはSTRING"
},
"年齢": {
"type":"INTEGER",
"$comment": "整数で出力してほしいときはINTEGER"
"description":"ファンタジーなので人間の常識で考える必要はありません."
"$comment": "descriptionは説明"
when Web1. GotText
実行結果
おわりに
整数のみを出力できるのはアプリ開発の幅が格段に広がります!!!他の条件も追加できるか調べたいですね...