【Linux】chatgpt-wrapperでGPTと会話する

6 min

こんにちは。ナミレリです。みなさん、Ubuntuのターミナルは使ってますか?
使っている方も使っていない方も、今回は大好きなターミナルでGPTと会話することができるchatgpt-wrapperを紹介します。

以前にこちらの記事でchatgpt-wrapperのブラウザベース(ブラウザセッションを利用する)で接続し利用する方法を紹介しました。この方法は簡単な設定で、かつ無料版・有料版問わず使うことができ、ブラウザでのChatGPTの接続に飽きたCLI派の私にとっては便利でした。

現在では、このブラウザベースの接続は非奨励となっています。この記事ではchatgpt-wrapperでOpenAIのAPIを利用してGPTと会話する方法を紹介します。

この記事の環境
Parallelsの母艦
ParallelsのゲストOS
  • Ubuntu23.04
Parallels Desktop 20 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。
NEW Parallels Desktop 20 for Mac

Parallels Desktop 20 for Macは、M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

14日間の無料トライアルもありますので、ぜひダウンロードして試してみてください。

事前準備

Parallels Desktop 18 for Mac上のUbuntu 23.04で構築をします。chatgpt-wrapperpipで多くのpythonライブラリをインストールすることになるので、この記事ではvenvでPython仮想環境を作ってchatgpt-wrapperをインストールします。

python3.11-venvのインストール

下のように最新のPython3.11をインストールします。


sudo apt install python3.11-venv

venv仮想環境の構築

ホームディレクトリにchatgpt-wrapperを作成します(ディレクトリ名は何でも構いません)chatgpt-wrapperを作成したらcdします。


mkdir ~/chatgpt-wrapper
cd ~/chatgpt-wrapper

作成したディレクトリでvenv仮想環境を作ります。python3 -mvenvモジュールを使い、.venvという仮想環境名で仮想環境を作ります。


python3 -m venv .venv

下のコマンドで、仮想環境をアクティブにします。


source .venv/bin/activate

これで仮想環境がアクティブになりました。


which pip
~/chatgpt-wrapper/.venv/pip
which python
~/chatgpt-wrapper/.venv/python
python -V
Python 3.11.2

この仮想環境にchatgpt-wrapperをインストールしていきます。

venv仮想環境から抜けたい場合のコマンドは、deactivateです。

chatgpt-wrapperのインストール

上で作った仮想環境にchatgpt-wrapperをインストールします。公式の通りにインストールしていきます。

pipでgithubから直接、chatgpt-wrapperの最新バージョンをインストールします。多くのPythonパッケージがインストールされます。


pip install git+https://github.com/mmabrouk/chatgpt-wrapper

以下のPythonパッケージがインストールされます。


Successfully installed
Flask-2.3.1 Jinja2-3.1.2 MarkupSafe-2.1.2 PyYAML-6.0 Werkzeug-2.3.2
aiohttp-3.8.4 aiosignal-1.3.1 async-timeout-4.0.2 attrs-23.1.0
blinker-1.6.2 certifi-2022.12.7 charset-normalizer-3.1.0
chatGPT-0.8.4 click-8.1.3 dataclasses-json-0.5.7 dnspython-2.3.0
email-validator-2.0.0.post2 et-xmlfile-1.1.0 frozenlist-1.3.3
greenlet-2.0.1 idna-3.4 itsdangerous-2.1.2 langchain-0.0.153
markdown-it-py-2.2.0 marshmallow-3.19.0 marshmallow-enum-1.5.1
mdurl-0.1.2 multidict-6.0.4 mypy-extensions-1.0.0 names-0.3.0
numexpr-2.8.4 numpy-1.24.3 openai-0.27.5 openapi-schema-pydantic-1.2.4
openpyxl-3.1.2 packaging-23.1 playwright-1.32.1 prompt-toolkit-3.0.38
pydantic-1.10.7 pydantic-computed-0.2.1 pyee-9.0.4 pygments-2.15.1
pyperclip-1.8.2 python-frontmatter-1.0.0 regex-2023.3.23 requests-2.29.0
rich-13.3.5 setuptools-65.7.0 sqlalchemy-2.0.11 tenacity-8.2.2
tiktoken-0.3.3 tqdm-4.65.0 typing-extensions-4.5.0 typing-inspect-0.8.0
urllib3-1.26.15 wcwidth-0.2.6 yarl-1.9.2

APIキーを環境変数に設定する

APIキーを環境変数に設定します。取得したAPIキーは、他の人と共有したりPythonコード(ブラウザ、アプリ等)で公開してしまうのはNGです。漏洩のリスクを軽減するために環境変数に設定しておきます。ここではOPENAI_API_KEYという環境変数に設定します。

YOUR_API_KEYの部分に実際に取得したAPIキーを置き換えてください。


export OPENAI_API_KEY="YOUR_API_KEY"

.zshrcに設定しておくことも可能ですが漏洩には十分に注意する必要があります。

APIキーはここから取得します。https://platform.openai.com/account/api-keys

chatgpt-wrapperの設定確認

APIキーを設定したら、chatgpt-wrapperの設定を確認してみましょう。chatgpt configで確認することができます。


chatgpt config

chatgpt configで設定を確認
chatgpt configで設定を確認

chatgpt-wrapperのユーザ作成

ひとまず上で確認したデフォルトの設定で使ってみます。コマンドはchatgptです。


chatgpt

初回立ち上げ時は、下のキャプチャのようにユーザーを作成する案内が表示されます。

入力項目について

username:ユーザー名(必須)(一旦、chatgpt-ubuntu-testとしました)

email:メールアドレス(オプション)、なしでOKなのでそのままEnter

password:(オプション)、今回はローカルテスト環境なのでなしでそのままEnter

入力が完了すると、ユーザーが作成されログインが実行されます。

入力が完了すると、ユーザー(chatgpt-ubuntu-test)が作成されログインが実行されました
入力が完了すると、ユーザー(chatgpt-ubuntu-test)が作成されログインが実行されました

chatgpt-wrapperの使い方

デフォルトのモデルはgpt-3.5-turboでしたが、まずはそのまま使ってみます。

【使い方1】インタラクティブモードで使う

基本的な使い方はchatgptコマンドでインタラクティブに使う方法です。

テストとして、BSDとLinuxの歴史を聞いてみました。

【使い方2】One-shotモードで使う

One-shotモードは、chatgptコマンドに続いて聞きたいことをを入力する使い方です。連続的な会話にはならないので、あくまでワンショットで使うイメージです。

One-shotモードの使い方


chatgpt LinuxとBSDの違いを簡単に教えて。

chatgpt-wrapperのコマンド

/を入力すると、コマンドの候補が表示されます。候補のウィンドウではC-nで下に、C-pで上に移動できます。 の矢印キーでもコントロールできます。

/を入力してコマンドの候補を表示
/を入力してコマンドの候補を表示

/helpでコマンドのヘルプを表示することができます。

/helpでコマンドでヘルプを表示
/helpでコマンドでヘルプを表示

chatgpt-wrapperでGPTを使う

chatgpt-wrapperを起動し、/modelコマンドでmodelをを指定します。modelは、default(turbo)、turbo、turbo-0301、gpt4、gpt4-0314、gpt4-32k、gpt4-32k-0314から指定します。

私はまだWaitlistでGPT4のAPIが使えないので、gpt-3.5-turboを使っています。

modelをgpt4に設定
modelをgpt4に設定

gpt4のAPIのwaitlistはこちらです。

chatgpt-wrapperの全コマンド

chatgpt-wrapperの全コマンドです。気の利くコマンドがたくさんあります。

コマンド説明
/ask質問をする
/chatチャット内容を取得する
/config現在の設定を表示または編集する
/contextログから古いコンテキストを読み込む
/copy最後の会話メッセージをクリップボードにコピーする
/delete1つまたは複数の会話を削除する
/echoEchoコマンド、シンプルなプラグインの例
/editorコマンドを入力するためのエディタを開く
/exitシェルを終了する
/fileファイルからのプロンプトの送信
/history最近の会話履歴を表示する
/logファイルへのログの有効化/無効化
/login/user-loginのエイリアス
/logout/user-logouのエイリアス
/model現在のLLMモデルの表示または設定する
/model-frequency-penalty現在のモデルのfrequency_penaltyを調整する
/model-max-submission-tokens古いメッセージよりも前に送信できるトークンの最大数
/model-presence-penalty現在のモデルのpresence penaltyを調整する
/model-system-message会話に送信されるシステムメッセージを設定する
/model-temperature現在のモデルのtemperatureを調整する
/model-top-p現在のモデルのtop_pを調整する
/nav会話内の過去のポイントに移動する
/new新しい会話を開始する
/quitシェルを終了する
/read複数行の入力を開始する
/streamストリーミングモードを切り替える
/switchチャットに切り替える
/templateテンプレートを表示する
/template-copy既存のテンプレートをコピーして新しいテンプレートとして保存する
/template-delete既存のテンプレートを削除する
/template-edit新しいテンプレートを作成するか、既存のテンプレートを編集する
/template-edit-run最終的な編集のためにテンプレートを開き、それを実行する
/template-prompt-edit-runテンプレート内の各変数の値をプロンプトで入力し、値を置き換える
/template-prompt-runテンプレート変数の値をプロンプトで入力し、実行する
/template-runテンプレートを実行する
/titleタイトルを表示または設定する
/userユーザー情報を表示する
/user-deleteユーザーを削除する
/user-edit現在のユーザーの情報を編集する
/user-loginユーザーとしてログインする
/user-logout現在のユーザーをログアウトする
/user-register新しいユーザーを登録する
/usersすべてのユーザーの情報を表示する

上にある通り、終了は、/quitです。

終了は、/quitです
終了は、/quitです

最後に

最後まで読んでいただきありがとうございます。今回の【Linux】chatgpt-wrapperでGPTと会話するはいかがでしたでしょうか。

明らかに間違った回答や微妙な回答もまだまだありますが、とにかく可能性は凄いですね。AIの急速な発展と普及を実感しました。ChatGPTやStable DiffusionのようなジェネレーティブAIがますます発展しそれを扱うことのできるプロンプトエンジニアが活躍する時代はもうすぐだと思います。

ChatGPT APIがついにリリースされました。PythonでAPIにアクセスする方法を紹介しています。

ChatGPT関連の別の記事

公式ChatGPTのMac用デスクトップアプリを使う

OpenAIライブラリ1系の変更点

neovimでChatGPT

PythonでChatGPTのAPI

MacでChatGPT

MacでChatGPT

VSCodeでChatGPT

LinuxのターミナルからChatGPT

PythonでGPT-3

カテゴリー:
関連記事