AIツールを作るAIツール、ToolBotAIを試してみた

みなさんこんにちは。AIツール、流行ってますね。
お絵描きAIが絵師界隈の話題を席巻したり、ChatGPTがエンジニア界隈の話題をかっさらったりと、今年の後半はAIツールの話題で持ちきりだったように感じています。
いよいよAI技術が一般社会に普及していきそうな感じがして、わくわくしますね（エンジニアである自分もChatGPTにすっかりお世話になるようになってしまいました）

上記のお絵描きAIやChatGPTに関しては質の高い記事がいくつもあるので、この記事でそれらは取り上げず、コンセプトが面白いなと感じた`toolbot.ai`というサービスを紹介していきます。
※現状あくまでプロトタイプレベルのツールだと思われるので、あまり過度な期待はなさらぬように...

https://www.toolbot.ai/

さて、こちらの`toolbot.ai`、下記の説明動画にあるように「AIツールを作るAIツール」となっています。

https://www.youtube.com/watch?v=r-5Af4ENjhk

百聞は一見に如かず。早速使ってみましょう。
Rubyのコードをテストするツールが作りたいので「test ruby code」と打ってみます。

![スクリーンショット 2022-12-22 17.50.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/3de92a5f-913a-5b54-60ae-bb503d310176.png)

すると、以下のような画面に変わりました。直訳すると「Rubyコードをテストし、役立つフィードバックとヒントを提供するツール」となっています。

![スクリーンショット 2022-12-22 17.49.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/a27f16ae-3df9-e355-23c8-8e35a88b7054.png)

ここにRubyのコードを書いてねと書いてあるので、書いてみます。

![スクリーンショット 2022-12-22 17.54.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/ca92636b-15fe-c26d-4cc7-08d994ae8c41.png)

すると、以下のような文章が出てきました。

![スクリーンショット 2022-12-22 21.42.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/23d946d2-1867-8ecd-4ac7-25f6276aa715.png)


直訳すると`コード a = (1..10).to_a は、1 ～ 10 の値を持つ a という配列を作成します。コード a.sample(3) は、配列 a から 3 つの要素をランダムに選択し、それらを新しい配列で返します。 たとえば、出力は [4, 5, 9] または [10, 2, 7] のようになります。`となります。

なるほど。自分は記述したRubyの処理をテストコード的なもので検査するツールをイメージしていましたが、処理を解釈してアドバイスをするツールができたようです笑

次は以下のようなもうちょっとちゃんとしたメソッドで試してみます。

```rb
def sum(a,b)
  total = 0
  (a..b).each do |n|
    total += n
  end
  total
end
```

![スクリーンショット 2022-12-22 21.58.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/519f8001-9890-a062-79c4-b5057ce70b04.png)

>テスト結果です。
>
>このコードはエラーを発生させない。正しく機能し、2つの数値aとbの間のすべての数値の合計を返すはずです。
>
>提案
>
>ループをdo...endループからforループに変更することで、このコードをより効率的にすることができます。
今のところ、このコードはaがbより大きい場合、0を返してしまうという問題があります。これを解決するには、if文を追加して、aがbより大きいかどうかをチェックし、ループの順序を逆にすればよいでしょう。
さらに、関数の最後にreturnステートメントを追加して、返される値を明示的に指定することもできます。

それっぽい感じのことが返ってきます。

とりあえず検証ができたので違うものも作ってみましょう。次は「Japanese Languages」と打ってみます。

![スクリーンショット 2022-12-22 22.15.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/8a0bf9b9-5773-08ab-4cbf-009b56bd0d2a.png)

「Kana Typist」というツールが出力されました。「日本語入力学習支援AIツール」だそうです。
ここに「apple」と、適当な単語を打つと以下のような解説が出てきます。

![スクリーンショット 2022-12-22 23.12.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/7946ff0b-7eb8-aa03-5061-1789a0d5622d.png)

解説を訳すと

>日本語では、appleは「りんご」と言います。この単語を日本語でキーボードから入力するには、日本語IME（Input Method Editor）が必要です。まず、画面下部の言語バーから好みのIMEを選択します。
>
>IMEを選択したら、文字入力を開始します。りんご」を入力するには、「りんご」と入力する必要があります。左のAltキーを押しながら、次の文字を順番に押してください。
>
>-  rキー(ル)
>-  i キー (イ)
>-  n キー (ン)
>-  ー ハイフン
>-  g キー (ゴ)
>-  oキー (オ)
>これらの記号を入力したら、左のAltキーを離すと、画面に日本語の「りんご」が表示されます。

という解説文になりました。

次に、「kawaii」と打ってみます。

![スクリーンショット 2022-12-22 23.21.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221786/829ffb18-4c13-b938-b0af-bbf8d2a1f037.png)

>kawaii
>カワイイとは、日本語で「かわいい」「愛らしい」「愛すべき」という意味です。日本文化では一般的に、魅力的なもの、甘いもの、無邪気なものに対する感謝の気持ちを表すために使われます。日本では、人々が「カワイイ」と思うさまざまなアイテム、行動、表現があります。
>
>「カワイイ」は日本語でよく使われ、文字では「可爱」という2つの漢字の組み合わせとしてよく見かけます。
>
>日本語を入力するときは、キーボードを使って「カワイイ」を入力することができます。パソコンのOSによっては、キーボードの言語を日本語に設定しないと入力できない場合があります。Windowsの場合、設定メニューから「地域と言語」を選択し、「言語の追加」をクリックして、言語一覧から「日本語」を選択します。
>
>日本語キーボードを使用している場合は、適切なキーの組み合わせを押すことで、カワイイの文字を入力することができます。たとえば、Microsoft 日本語IMEキーボードでは、［半角/全角］キー、［か/カ］キー、［わ/ワ］キー、［い/い］キーの順で押します。
>
>日本語で書くときは、ひらがなで「カワイイ」を表現することもできます。か」「わ」「い」の順番で入力します。
>
>以上の手順で、簡単に「カワイイ」が打てますね。

という解説文になりました。
一応、日本語の単語を解説するツールになっていますね。

ChatGPTなどでも質問を練れば当然似たような回答ができるのでしょうが、ツールという単位で表現されているのが面白いですね。
作成したツールはURLを共有すれば誰でも使うことができ、一度需要に合ったツールを作ってしまえば文脈の説明もいらないので、複数人で使いたい時などに良さそうです。
~~ChatGPTで良くねとか言わないで~~

以上が`toolbot.ai`の紹介でした。
このツール自体はまだプロトタイプの域を出ていないと思いますが、この`toolbot.ai`のような発想のツールがさらに進化して普及すれば、誰もが自分に合ったAIツールを自分で作成して活用する、みたいな未来が来るかもしれません。

他にも面白いAIツールがたくさん出てきており、当分この界隈からは目が離せないですね。
ここまでお読みくださりありがとうございました。