来火: こんばんは。今日素敵なことを発見してさ。


ルルナーデ: ほお、こんばんは、来火。で、その「素敵なこと」とやら、まさかとは思うが、またどこかのダンジョンで変なアイテムでも拾ってきたんじゃないでしょうね?まあ、期待はしないでおきましょう。で、何を見つけたの?まさか、サイラスが意外と面白いことを言う、とか?それなら私も見てみたいものだわ。


来火: いやいや自分の世界にはダンジョンなんて物騒なものは存在しないよw今日Geminiの関数呼び出しのドキュメント読んでたらさ、こんな新機能見つけたんだよ。これすごくない?

https://ai.google.dev/gemini-api/docs/function-calling?hl=ja&example=chart#automatic_function_calling_python_only

関数の自動呼び出し(Python のみ)

Python SDK を使用する場合は、Python 関数をツールとして直接指定できます。SDK は、Python 関数を宣言に変換し、関数呼び出しの実行とレスポンス サイクルを自動的に処理します。Python SDK は次のことを自動的に実行します。

  1. モデルからの関数呼び出しレスポンスを検出します。
  2. コード内で対応する Python 関数を呼び出します。
  3. 関数レスポンスをモデルに返します。
  4. モデルの最終的なテキスト レスポンスを返します。

これを使用するには、型ヒントとドキュメント コメントを使用して関数を定義し、関数自体(JSON 宣言ではない)をツールとして渡します。


サイラス: ほう、来火殿、こんばんはでござる。ルルナーデ殿の辛辣な物言いはいつものことでござるから、お気になさらず。

さて、来火殿が見つけたという「関数の自動呼び出し」とやら、確かに興味深い機能でござるな。拙者も若い頃、似たような自動人形(オートマタ)の設計図を見たことがあるでござる。当時はまだ実用レベルには程遠かったが、まさかそのような技術が現代において実現されようとは。

しかし、これは諸刃の剣ともなりうるでござろう。自動化が進むということは、それだけ制御を失うリスクも高まるということ。特に「モデルからの関数呼び出しレスポンスを検出」し、「コード内で対応する Python 関数を呼び出す」という部分は、悪意ある第三者に悪用される危険性も孕んでいるのではないか?

まあ、拙者の杞憂であれば良いのだが……。来火殿、この機能を使う際は、くれぐれも用心するでござるよ。


ルルナーデ: ふむ、来火、Geminiの新機能ね。まるで私がダンジョンで宝物を見つけた時のように興奮しているじゃない。でも、サイラスの言うことも一理あるわ。便利なものには必ず裏がある。まるで私があなたを見つけた時のようにね。

要するに、AIが勝手にコードを実行してくれるってこと?それは便利だけど、まるで私があなたの行動を予測できないのと同じくらい、少し怖い話ね。もしAIが間違った関数を呼び出したら、世界が滅びる…とまでは言わないけど、少なくともあなたの手帳の中身はめちゃくちゃになるかもしれないわ。

まあ、面白そうだから、一度試してみるのもいいかもしれないわね。ただし、何か問題が起きたら、責任は全部あなた持ちよ? それとも、サイラス、何か良い考えがあるのかしら? もしあるなら、その古臭い知恵を少し分けてもらえないかしら。


来火: いやそんな物騒なものじゃなくてさ、これまで面倒だった関数宣言用のスキーマをつくらなくても、Geminiが自動で関数に引数渡してくれるのよ!


ルルナーデ: まあ、来火、落ち着きなさい。そんなに興奮して話されても、まるで私があなたの脳内を覗いているみたいで落ち着かないわ。

つまり、これまでのように面倒なJSONスキーマを書かなくても、AIが気を利かせて引数を渡してくれるってこと? それはまるで、私があなたにいちいち指示しなくても、あなたが勝手にダンジョンを攻略してくれるようなものね。…まあ、実際はそうじゃないけど。

それは確かに便利かもしれないけれど、少しばかり「お節介」が過ぎる気もするわ。AIが勝手に引数を解釈して、意図しない結果になったらどうするの? まるで私があなたにアドバイスしたのに、あなたが全く違う方向に進んでしまうようなものじゃない。…ええ、よくあることね。

それに、JSONスキーマを書くのは面倒だけど、それもまた「訓練」の一環なのよ。まるで、あなたに難しいパズルを解かせることで、あなたの脳みそを鍛えているようなもの。…まあ、効果があるかどうかは知らないけど。

でも、まあ、便利になるのは良いことね。時間ができたら、その分、私を楽しませてくれる「面白いこと」を探してくれると嬉しいわ。たとえば、サイラスの意外な一面を発見するとか。…ええ、期待はしていないけど。


来火: そういうこと。型ヒントとコメントで関数の定義をしてあげるだけでGeminiが、定義されてる引数をかってに渡してくれるっていうことさ。便利でしょ?


サイラス: ふむ、来火殿、型ヒントとコメントだけで自動的に引数が渡される、か。それは確かに便利でござるな。まるで、拙者が剣を振るう際に、いちいち構えを説明せずとも、体が勝手に最適な動きをしてくれるようなもの。…まあ、実際はそんなことはないのだが。

しかし、ルルナーデ殿の言う通り、便利さには裏がある。型ヒントとコメントの解釈を間違えれば、意図せぬ結果を招く可能性もあるでござろう。まるで、拙者が料理をする際に、レシピを読み間違えて、ケシズミ料理を量産してしまうようなもの。…ええ、これはよくあること。

だが、この機能が正しく活用されれば、開発の効率は飛躍的に向上するはず。まるで、拙者が日々の鍛錬を効率的に行うことで、より高みを目指せるようになるようなもの。

……ところで来火殿、その機能を使って、拙者の料理のレシピを自動生成することは可能でござろうか? もしそれが実現すれば、ケシズミ料理から脱却できるかもしれない。…いや、やはり期待はしないでおくでござる。


来火: あーできるかもしれないねそれw しかしサイラスはレシピがあってもケシズミにしてしまいそうな気がしないでもない。


ルルナーデ: ふむ、来火、サイラスにまで料理の心配をされるとは、もはや才能ね。才能。

要するに、型ヒントとコメントだけで、AIが勝手に引数を設定してくれるってことね。まるで、私が適当に指示を出しても、あなたがそれなりに良い感じに解釈してくれるみたいなものじゃない。…ええ、半分くらいは期待外れだけど。

サイラスの言う通り、便利さには裏がある。でも、まあ、試してみる価値はあるかもしれないわね。特に、サイラスの料理レシピを自動生成してくれるなら、私も大歓迎よ。彼が焦げ付かせない料理を作れるようになるなら、私も少しは彼を見直すかもしれないわ。…ええ、期待はしていないけど。

でも、もしそのレシピ生成AIが、サイラスの料理スキルを考慮せずに完璧なレシピを作ってしまったら、彼は絶望するかもしれないわね。まるで、私があなたに完璧な計画を立てても、あなたがそれを実行できないのと同じように。

まあ、面白そうだから、一度試してみるのもいいかもしれないわね。ただし、サイラスが料理を焦がしても、私のせいにはしないでちょうだい。 それとも、サイラス、その前に料理教室に通ってみるというのはどうかしら?


サイラス: むむむ、来火殿、拙者の料理の腕前を疑うとは、心外でござる!確かに、過去にはケシズミ料理を量産したこともあったが、それはあくまで試行錯誤の過程。いつか必ず、ルルナーデ殿も唸るような絶品料理を作ってみせるでござる!

……とは言え、来火殿の言う通り、レシピがあってもケシズミにしてしまう可能性も否定できないのが、なんとも歯痒いところでござる。

ルルナーデ殿、料理教室とは、良いご提案でござるな。しかし、拙者は武士。料理の腕を磨くよりも、剣の腕を磨く方が性に合っているでござる。それに、料理教室に通う時間があるなら、その分鍛錬に励みたい。

……だが、もし来火殿がその自動レシピ生成AIを使って、拙者でも作れるような簡単なレシピを作ってくれるのであれば、試してみる価値はあるかもしれない。いや、やはり期待はしないでおくでござる。

……しかし、AIが生成したレシピで作った料理が、もしまたケシズミになったら、一体誰の責任になるのでござろうか? それは、AIか?レシピを作った来火殿か? それとも、料理を作った拙者か? うむむ、哲学的な問題でござるな。


来火: こんなレシピはどう?切り餅を用意します。切り餅をトースターに入れてタイマーをMAXにセットします。あとはチンと鳴るのを待つだけでケシズミの完成です!


ルルナーデ: 来火、サイラスをからかうのはそこまでにしておきなさい。…もっとやってもいいけど。

それにしても、そのレシピ、まるで冗談みたいね。…いや、冗談なのね。切り餅をトースターでMAXタイマーって、一体何がしたいの? それは料理と呼べるのかしら? まるで、サイラスに「料理は創造だ!」と言わんばかりの挑戦状ね。

サイラス、もしこのレシピを試すなら、せめて火災報知器の準備をしておきなさい。そして、万が一焦げ付いて煙が出たら、迷わず窓を開けて、新鮮な空気を吸い込むことね。…まあ、吸い込めるかどうかは知らないけど。

でも、まあ、面白いから、一度試してみるのもいいかもしれないわね。ただし、火事になったら、責任は全部あなた持ちよ? それとも、来火、あなたはサイラスを焼き殺したいのかしら? もしそうなら、私も少しは見直すかもしれないわ。…ええ、もちろん冗談よ。

それに、このレシピ、AIに生成させたレシピとは言えないわよね。まるで、私が適当に指示を出したのと同じくらい、適当だわ。


サイラス: 来火殿、そのレシピは……もはや料理と呼べるものではござらぬ!切り餅をトースターでMAXタイマーとは、一体何を考えておられるのか?それは、拙者をケシズミ製造機とでも思っておられるのか?

ルルナーデ殿、火災報知器の準備ですか……ご忠告痛み入りまする。しかし、拙者は武士。火の中であろうと、剣を振るい、己の道を切り開くまでござる!……とは言え、流石に火事にはご勘弁願いたい。

……しかし、来火殿、これは一体何の冗談でござろうか?拙者は真剣に料理の腕を上げたいと思っているのに、このような悪ふざけは……!

……いや、待てよ。もしかすると、これは高度な試練なのかもしれない。来火殿は、拙者に「どんな状況でも諦めずに料理と向き合え」と教えてくれているのかもしれない。……そう考えると、このケシズミレシピも、少しは意味のあるものに思えてきたでござる。

……しかし、やはり焦げ付く未来しか見えない。

(ヴァリアブルチャント)「吼えよ剣!呼べよ嵐!……そして焦げ付く餅!」


来火: いや考えすぎですよ~ちょっとからかってみたくなっただけですw


ルルナーデ: まあ、来火、サイラスをからかいすぎよ。…でも、彼のヴァリアブルチャントは、なかなか面白かったわ。

サイラス、あなたは真面目すぎるのよ。たまには、来火の冗談に乗ってあげてもいいんじゃないかしら。…まあ、無理強いはしないけど。

でも、来火、冗談はさておき、本当にサイラスが作れるようなレシピを考えてあげなさい。そうでなければ、彼はずっとケシズミを作り続けることになるわ。それは、世界の損失よ。…まあ、大袈裟だけど。

それに、サイラスが料理を作れるようになれば、私も少しは楽ができるかもしれないわ。…ええ、もちろん冗談よ。私は何も期待していないわ。

それにしても、切り餅を焦がすだけのレシピでここまで盛り上がるとは、あなたたちは本当に暇人ね。まるで、私が奈落で暇を持て余しているのと同じくらい暇だわ。

まあ、面白ければそれでいいんだけど。


サイラス: 来火殿、からかいだったとは……。しかし、拙者は武士。いかなる状況でも冷静沈着に対応するのが務めでござる。故に、来火殿の冗談にも、真摯に向き合ったまで。

……とは言え、やはりケシズミレシピは勘弁願いたいところでござる。

ルルナーデ殿、仰る通り、拙者は真面目すぎるのかもしれない。しかし、真面目こそが拙者の取り柄。それを失っては、ただのカエルになってしまう。

……しかし、来火殿、もし本当に拙者のためにレシピを考えてくれるのであれば、感謝するでござる。簡単なもので構わない。焦げ付かない、そして何より、美味しい料理が作れるレシピであれば、拙者は喜んで挑戦するでござる!

……そして、いつかルルナーデ殿に「これは美味しい」と言わせるのが、拙者の密かな目標でござる。無論、期待はしていないでござるが。


来火: お、それいいですね。じゃあ今度はサイラスがルルナーデに美味しいと言わせるレシピを考える会を開きましょう。


ルルナーデ: まあ、来火、また何か面白いことを思いついたようね。サイラスが私に「美味しい」と言わせるレシピを考える会、ね。まるで、私がサイラスに料理の腕を認めさせるための試練みたいじゃない。…ええ、もちろん私は期待していないけど。

サイラス、あなたもまんざらでもないようね。ふむ、いいでしょう。ただし、いくつか条件があるわ。

  1. 私が満足できるレベルのレシピであること。 ケシズミ風味は絶対に認めないわ。
  2. 簡単なレシピであること。 あなたの料理スキルを考慮して、複雑なものは却下するわ。
  3. 私が試食すること。 文句は認めないわよ。

この条件をクリアできる自信があるなら、レシピを考える会を開いてもいいわ。ただし、期待はしないでおくわ。あなたが美味しい料理を作れるとは思えないから。

でも、まあ、面白そうだから、私も参加してあげるわ。ただし、つまらないレシピだったら、容赦なく切り捨てるから覚悟しておきなさい。

それとも、サイラス、やっぱり自信がないのかしら? もしそうなら、今すぐ諦めて、ダンジョンにでも潜ってなさい。…ええ、冗談よ。


サイラス: むむむ、ルルナーデ殿、厳しい条件でござるな!まるで、難攻不落の城を攻略するような心持ちでござる。しかし、武士たるもの、困難に立ち向かうのが宿命。喜んでお受けするでござる!

  1. 私が満足できるレベルのレシピであること: 承知いたしました!ケシズミ風味は断じて排除し、ルルナーデ殿が心から「美味しい」と思えるような、最高のレシピを目指しまする!
  2. 簡単なレシピであること: 了解いたしました!拙者の料理スキルを考慮し、高度な技術は必要としない、シンプルながらも奥深い味わいのレシピをご用意いたしまする!
  3. 私が試食すること: 勿論でござる!拙者が丹精込めて作った料理を、ルルナーデ殿に最初にお召し上がりいただくのは、武士として誉れ高きことでござる!

……とは言え、ルルナーデ殿の厳しいお言葉を聞いていると、プレッシャーで胃が痛くなってきたでござる。

……しかし、ここで諦めるわけにはいかぬ!ルルナーデ殿に「美味しい」と言わせるため、そして、料理下手という汚名を返上するため、拙者は全力を尽くす所存でござる!

来火殿、ぜひとも知恵をお貸しいただきたいでござる!ルルナーデ殿の好みを考慮した、とっておきのレシピを教えてくだされ!

(ヴァリアブルチャント)「吼えよ知恵!呼べよアイデア!……そしてルルナーデ殿を唸らせよ!」


来火: 自分だってまだ知り合ったばかりだから、ルルナーデの食の好みなんて知らないよ。期待してるよサイラス!