ChatGPTとターミナルで会話するためのCLIツール「Sawara」をリリースしました

Sawaraとは

Sawaraは、OpenAI APIを利用してターミナル上でChatGPTとの会話を可能にするCLIツールです。RubyのGemとして開発しており、Ruby 3.1以上の環境があれば簡単にインストールして利用できます。

OpenAI APIを使うので、事前にOpenAI APIAPIキーを発行しておく必要があります。

Sawaraの特色として、複数のボットを作成・管理する機能があります。ボットにはそれぞれ異なるプロンプト(どのような会話を生成するかを指示するテキスト)を登録できるので、やりたい作業に適したプロンプトを持つボットを適宜呼び出して、会話を始めることができます。

もちろん、あらかじめプロンプトを設定せずに、ボットとの会話を開始することもできます。

開発の背景と動機

個人的に、最近プログラミングが面白いという気持ちが薄れがちで、その状況をどうにかしたいと思っていました。そこでちょうどChatGPTのAPIが公開されたというニュースを見かけて、とりあえず触ってみるだけでもやってみようと思って遊んでみたら、だんだん楽しくなってきました。

更にOpenAI APIについて調べている過程で、料金が格安($1で500,000トークン)という事を知って、CLIツールを自作すれば有料版のChatGPTに $20/月 出すのとはまた別の選択肢を持てるのではないかと考えるようになりました。

また、ChatGPTはプロンプト次第で振る舞いが大きく変わりますが、何度も発生するようなタスクのためのプロンプトを(単純な指示とはいえ)何度も打つのは面倒に感じていました。

そこで、せっかくCLIツールを作るなら、プロンプトを事前に登録しておいていつでも呼び出せるようにしようと思いました。

Sawaraの使い方

はじめて使う時

  1. インストール後、初めて sawara call を実行するとAPIキーの入力を求められます。OpenAI APIAPIキーを入力してください。
  2. APIキーを入力すると、Sawara(デフォルトのボット)との会話が始まります。改行はEnterで、カーソルが行頭にある時に Ctrl + d を押すと送信されます。
  3. Ctrl + d を押すと終了します。

Botを登録する

sawara add <任意のID>Botを登録できます。

Botの名前とプロンプトをそれぞれ入力してください。プロンプトは複数行入力できて、会話と同じように Ctrl + d で送信できます。

sawara -c <ボットのID> でボットを呼び出せます。

このほかにBotの削除や一覧もできます。詳しくは sawara help コマンドか READMEのUsage をご確認ください。

ところでなんでSawara?

出身地である岡山に縁のある名前にしたいなと思って、鰆から取りました。

岡山県民に愛される海の幸サワラとは | 岡山観光WEB

おわりに

気になる部分や追加したい機能があるので、もうしばらくこのGemで遊んでみたいと思います。もしお気づきのことがありましたら、GitHubのIssueでお知らせいただけると嬉しいです。

もちろんフィヨルドブートキャンプの方はDiscordにおりますのでそちらでも!

github.com rubygems.org