今回は、MacのターミナルでChatGPTを扱うことができる「aichat」を使っていく。
正直別にいつものようにブラウザから使えば全然いいんだけど、文頭に「ターミナルで」という言葉がつくと何故かロマンを感じてしまう。
あの黒い画面でAIを扱えるということにワクワクしてしまうのだ。
Homebrewを使ってaichatをインストールする
aichatはHomebrewを使うことでインストールができるので、ターミナルで以下のコマンドを入力する。
brew install aichat
試しにaichat --version
と打ち込み、バージョンが表示させてみる。
表示されたので、正常にインストールされてるっぽい。
起動と初期設定
aichatは、最初に起動すると自動的に初期設定を開始してくれる。
その際にopenAIのAPI Keyの入力が必要になるので、APIを取得してない場合は以下から取得する必要がある。
とりあえずなんか話しかけてみる
設定が完了したので、とりあえず「こんにちは。ターミナルとかコマンドプロンプトってなんかロマンあっていいですよね。」とでも言ってみる。
通常の会話は、ターミナルで「aichat」と打ちパッケージを起動すると自動で始まる。
❯ aichat
Welcome to aichat 0.12.0
Type ".help" for more information.
> こんにちは。ターミナルとかコマンドプロンプトってなんかロマンあっていいですよね。
傍目から見ると、ターミナルやコマンドプロンプトが表示する黒い画面に流れる白いテキストは、ある種のロマンや神秘性を感じさせますよね。
一点一点指示を出して、コンピューターがその通りに動くという感覚は、まるで魔法使いや映画のようなハッカーのようです。また、GUI(グラフィカルユーザインターフェース)に比べてコマンドラインインターフェースは表 面的に見えないコンピュータの深層部分に触れている感じがして、本質的な部分を理解し制御しているようで面白いです。
さらに、それぞれのコマンドの背後にあるストーリーや設計哲学、UnixやLinuxの歴史などを知ると、それらに対する感じ方もグッと深まります。プログラミングやコンピューターサイエンスへの理解も深まります。
また、一度覚えてしまえば自動化したり、一連の操作をスクリプト化したりして、作業効率を大幅に上げることができます。
もちろん、コマンド一つで大事なファイルを消してしまったり、システムを壊してしまう危険もありますので、コマンドを使う際の注意も必要ですが。
すんごいノリノリで返事してくれた。
aichatの使用方法
aichatを起動し、会話モードの状態で「.help」と入力するとヘルプが表示される。ヘルプは英語なので、一応日本語で各コマンドと内容をまとめておく。
コマンド | 内容 |
.help | ヘルプメッセージを表示する |
.info | システム情報を表示する |
.model | LLMモデル(GPT3.5、GPT4など)を切り替える |
.role | ロールを使用する |
.info role | ロールの情報を表示する |
.exit | 現在のロールから離脱する |
.session | コンテキスト対応チャットセッションの開始(前の文脈を記憶した会話) |
.info session | セッションの情報を表示する |
.exit session | 現在のセッションを終了する |
.file | メッセージにファイルを添付し送信する |
.set | 設定パラメータを変更する |
.copy | 最後の返信をクリップボードにコピーする |
.exit | aichatを終了する |
ファイル送信にも対応してた
面白いなーと思ったのが、しっかりとファイルの送信にも対応しているっぽいところだ。ちょっと試してみよう。
以下のコードが書かれたファイルを作成し、読み込ませてみる。
function checkOddOrEven(num) {
if(num % 2 === 0) {
console.log("偶数だよ");
}else{
console.log("奇数だよ");
}
}
.fileを使った命令は、以下のようにすればいいらしい。
.file /Users/ユーザー/fizzbuzz.js -- このファイルはどんなファイルですか?
結果はいかに・・・。
> .file /Users/ユーザー/fizzbuzz.js -- このファイルはどんなファイルですか?
このファイルはjavascriptのソースコードの一部です。関数 `checkoddoreven` が定義されており、引数として渡された数値が偶数か奇数かを判断し、結果をコンソールに出力します。
偶数の場合は "偶数だよ" と出力し、奇数の場合は "奇数だよ" と出力します。この判定は、数値を 2 で割った余りが 0 かどうか(つまり、2の倍数かどうか)で行っています。
おぉ・・・。(感動)
ちなみに、画像を送信すると応答の際にエラーが発生した。
invalid content type. image_url is only supported by certain models.(image_urlは特定のモデルでのみサポートされています。)とのこと。
modelの最高が現在gpt-4なので、今はまだ画像自体サポートしてないのかな・・・?
うまく使えば作業の効率化できるかも
いざ使ってみると、思った以上に便利でびっくりした。
.roleを設定して使用することで設定されているプロンプトをいつでも使うことができるため、これも使いこなせば作業がかなり捗るようになるかもしれない。
何よりロマンがある。やっぱりターミナルっていいな。