こんにちは。ナミレリです。みなさん、Ubuntuのターミナルは使ってますか?
使っている方も使っていない方も、今回は大好きなターミナルでGPTと会話することができるchatgpt-wrapperを紹介します。
以前にこちらの記事でchatgpt-wrapperのブラウザベース(ブラウザセッションを利用する)で接続し利用する方法を紹介しました。この方法は簡単な設定で、かつ無料版・有料版問わず使うことができ、ブラウザでのChatGPTの接続に飽きたCLI派の私にとっては便利でした。
現在では、このブラウザベースの接続は非奨励となっています。この記事ではchatgpt-wrapperでOpenAIのAPIを利用してGPTと会話する方法を紹介します。
- MacBook Pro 14インチ M1Max(メモリ32GB)
- macOS Ventura 13.3.1
- Parallels Desktop 18 for Mac(Parallelsの公式サイト)
- Ubuntu23.04
目次
事前準備
Parallels Desktop 18 for Mac上のUbuntu 23.04で構築をします。chatgpt-wrapperはpipで多くの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 -mでvenvモジュールを使い、.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をインストールしていきます。
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"
chatgpt-wrapperの設定確認
APIキーを設定したら、chatgpt-wrapperの設定を確認してみましょう。chatgpt configで確認することができます。
chatgpt config
chatgpt-wrapperのユーザ作成
ひとまず上で確認したデフォルトの設定で使ってみます。コマンドはchatgptです。
chatgpt
初回立ち上げ時は、下のキャプチャのようにユーザーを作成する案内が表示されます。
username:ユーザー名(必須)(一旦、chatgpt-ubuntu-testとしました)
email:メールアドレス(オプション)、なしでOKなのでそのままEnter
password:(オプション)、今回はローカルテスト環境なのでなしでそのままEnter
入力が完了すると、ユーザーが作成されログインが実行されます。
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でコマンドのヘルプを表示することができます。
chatgpt-wrapperでGPTを使う
chatgpt-wrapperを起動し、/modelコマンドでmodelをを指定します。modelは、default(turbo)、turbo、turbo-0301、gpt4、gpt4-0314、gpt4-32k、gpt4-32k-0314から指定します。
chatgpt-wrapperの全コマンド
chatgpt-wrapperの全コマンドです。気の利くコマンドがたくさんあります。
コマンド | 説明 |
---|---|
/ask | 質問をする |
/chat | チャット内容を取得する |
/config | 現在の設定を表示または編集する |
/context | ログから古いコンテキストを読み込む |
/copy | 最後の会話メッセージをクリップボードにコピーする |
/delete | 1つまたは複数の会話を削除する |
/echo | Echoコマンド、シンプルなプラグインの例 |
/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です。
最後に
最後まで読んでいただきありがとうございます。今回の【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