毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. はじめに
GPTScriptを試してみるシリーズです。
exampleディレクトリのファイルの中身を動かしてみながら、日本語でも動くかどうか検証していきます。
https://github.com/gptscript-ai/gptscript/tree/main/examples
1. bob-as-shell.gpt
bob-as-shell.gpt
のスクリプトは以下のようになっています。
tools: bob
Ask Bob how he is doing and let me know exactly what he said.
---
name: bob
description: I'm Bob, a friendly guy.
args: question: The question to ask Bob.
#!/bin/bash
echo "Thanks for asking ${question}, I'm doing great fellow friendly AI tool!"
2. 動かしてみる
2-1. ファイルを用意
ファイルは以下の1つを用意します。
bob-as-shell.gpt
以下のURLから上記の1つのファイルをダウンロードしておきます。
bob-as-shell.gpt
https://github.com/gptscript-ai/gptscript/blob/main/examples/bob-as-shell.gpt
2-2. 実行する
以下のように実行します。
--default-model gpt-4-turbo
を指定する必要はありませんが、新しいModelの方がいいので指定しています。
gptscript ./bob-as-shell.gpt --default-model gpt-4-turbo
3. 実行結果
OUTPUT:
Bob said, "Thanks for asking How are you doing?, I'm doing great fellow friendly AI tool!"
4. 日本語にしてみる
4-1. 日本語にしたgptファイルを用意
Bob
では日本人ぽくないので、太郎
にしました。
tools: taro
太郎の調子を聞いて、彼が言ったことを正確に答えてください。
---
name: taro
description: 私は太郎です。フレンドリーな人間ですよ。
args: question: 太郎にする質問
#!/bin/bash
echo "${question} の質問してくれてありがとう!僕は素晴らしいフレンドリーAIツールの仲間だよ!"
4-2. 実行
gptscript ./add-go-mod-dep.gpt --default-model gpt-4-turbo
4-3. 結果
OUTPUT:
太郎は「最近どう? の質問してくれてありがとう!僕は素晴らしいフレンドリーAIツールの仲間だよ!」と答えました。
5. bob-as-shell.gpt
bob-as-shell.gpt
の中身の解析
tools: bob
Ask Bob how he is doing and let me know exactly what he said.
---
name: bob
description: I'm Bob, a friendly guy.
args: question: The question to ask Bob.
#!/bin/bash
echo "Thanks for asking ${question}, I'm doing great fellow friendly AI tool!"
1行目にツールとして呼び出す別のファンクションを記載します。
---までがmain部分です。ここには、
Ask Bob how he is doing and let me know exactly what he said.
と書かれていて、
Bobに調子はどうか聞いて、「彼がなんと言ったか正確に回答する」ように書かれています。
次に、(---)の後にbobファンクションがあります。descriptionの文字列は任意になります。
args: で「question(質問)」変数を定義して、変数の内容を 『Bobに聞く質問』 にしています。
その後、bashスクリプトがあります。
#!/bin/bash
echo "Thanks for asking ${question}, I'm doing great fellow friendly AI tool!"
6. 実行
実行されると、まずファンクション以外のメイン部分が実行されます。
メイン部分は、以下の部分です
Ask Bob how he is doing and let me know exactly what he said.
ここで、Ask Bob how he is doing
が解釈され、
Bobにhow he is doing
と聞きますが、bobがファンクションとして定義されているので、
name: bob
を呼び出して、引数に question
を渡します。question
の値は、Ask Bobしたときの呼び出した値なので、how he is doing
です。
このファンクションはBashのシェルスクリプトなので、$questionの変数で渡されて、echoで
Thanks for asking how he is doing, I'm doing great fellow friendly AI tool!
が返されて、この返値が let me know exactly what he said.に渡されます。
最終的な出力は以下のようになります。
Bob said, "Thanks for asking How are you doing?, I'm doing great fellow friendly AI tool!"