LinuxコンソールでChatGPTを利用する方法

Linux で、AI チャットボットの機能をシステムで使用するにはShellGPTを利用します
ShellGPT は、 コマンドライン版のChatGPTで AI を使用することができ、OpenAI GPT に対応しています。
今回はDebian11(bullseye)にインストールします。

1.ChatGPT をインストールするための前提条件

①Python をインストールする

最新のLinuxディストリビューションであればプリインストールされています
インストールされているか確認する

もし、インストールされていなければ下記の通りインストールする

➁PIPをインストールする

PIPは、プラットフォームを超えて動作するパッケージマネージャで、必要なパッケージのインストール、アップグレード、アンインストールを行うために使用します。PIPはほとんどのLinuxディストリビューションでPythonとともにプリインストールされています。
インストールされていない場合は、次のコマンドでインストールします。

Pip のバージョンを確認

➂venvモジュールをインストールする

venvモジュールはChatGPTでは必須ではありませんが、Linuxで孤立した仮想環境を作り、他のライブラリとの競合を避けるために推奨されます。venvモジュールをインストールするには、次のコマンドを使用します。

2. OpenAI API キーを取得

2.1 事前準備

①chatgpt用ディレクトリー作成
ディレクトリー名を[commandline-chatgpt]とし、そのディレクトリーに移動する

➁仮想環境を作成する
venv モジュールを使用し、[chatgpt_cli]という名称の仮想環境を作成する

➂仮想環境をアクティブにする

デフォルトの Linux シェル プロンプトが次のように変更され、仮想環境の名前が括弧で囲まれて表示されます。

2.2 OpenAI API キーを取得

ChatGPTが提供するサービスをLinuxで利用するには、OpenAIのAPIキーが必要です。現在、OpenAIはテスト用に5ドルのクレジットを配布しています。このクレジットを使用した後、APIアクセスに必要な料金を支払う必要があります。しかし、このChatGPTのコマンドラインチャットボットのためのOpenAI APIキーを取得する手順は次の通りです

①OpenAIのウェブサイトにアクセスし、OpenAIアカウントに登録する

➁サインインして右上隅にあるプロフィールをクリックして、「View API keys」をクリックし、「Create new secret key」をクリックする

secret keyが作成されるのでコピーし、ファイルに保存するかメモを取っておく
一度しか表示されないので注意する

2.3 OpenAI API キー環境変数を作成

環境変数を確認

API キーを永続的に保存する
.bashrc の末尾に下記を追加

変更を有効にする

3.ShellGPT をインストール

3.1 ShellGPT をインストール

4.ShellGPT の利用

4.1 構文

オプションの例

--temperature出力のランダム性を変更します
--top-probablity最も可能性の高いトークンまたは単語のみを制限します
--chat固有名で会話するときに使用
--shellシェルコマンドを出力として取得するために使用
--executeshellオプションの出力として受け取ったコマンドを実行する。
--codeコードを出力として取得する

4.2 ShellGPTのいろいろな利用方法

①Simple queries
通常の検索エンジンとして、あらゆることを尋ねることができます

日本語で質問する場合(ただし、日本語ロケールが使用できる環境が必要)

➁Shell commands

--shellやショートカットの-sオプションを使えば、必要なコマンドをターミナルですぐに見つけて実行することができます

Shell GPTは、OSと$SHELLを認識しているので、そのOSにあったシェルコマンドを提供します。例えば、sgptにシステムのアップデートを依頼すると、OSに応じたコマンドを返します。以下は、Debianで使用した場合:

GPTに提案されたシェルコマンドの説明を求めると、そのコマンドが何をするのかの短い説明が返されます

➂Generating code

codeパラメータを使用すると、コードのみを出力することができます
たとえば、有名な「Fizz Buzz」問題のコードを表示させる場合は

FizzBuzz問題
1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言う。「1」「2」「Fizz」「4」「Buzz」「Fizz」「7」「8」「Fizz」「Buzz」「11」「Fizz」「13」「14」「Fizz Buzz」「16」…のように進行する。
これを1から与えられた値までコンピュータに実行させるプログラムを作成する課題がFizzBuzz問題

有効なpythonコードなので、出力をファイルにリダイレクトさせる

fizz_buzz.pyを実行すると

④ChatGPT

チャットセッションを開始するには、--chatオプションに続いて、固有のセッション名とプロンプトを使用します。一時的なチャット・セッションを開始するには、セッション名として "temp" を使用することもできます。

⑤REPL
非常に便利なREPL(read-eval-print loop)モードがあり、GPTモデルとインタラクティブにチャットすることができます。REPLモードでチャットセッションを開始するには、--replオプションの後に固有のセッション名を付けてください。また、セッション名として "temp "を使用すると、一時的なREPLセッションを開始することができます。chatと--replは同じチャットセッションを使用するので、--chatでチャットセッションを開始し、--replでREPLモードの会話を続けることができます。REPLモードでは、会話の履歴も最初に表示されます。

REPLモードは-shellオプションと-codeオプションで動作するため、インタラクティブなシェルコマンドやコード生成に非常に便利です


⑥Chat sessions

現在のチャットセッションをすべて一覧表示するには、-list-chats オプションを使用します

特定のチャットセッションに関連するすべてのメッセージを表示するには、--show-chatオプションに続いてセッション名を使用します

タイトルとURLをコピーしました