
Openai ChatGpt、Azure Openai Service、Perplexity AIおよびLlamaとテストし、互換性があります!
CHATGPT CLIは、ストリーミング機能と広範な構成オプションを備えたOpenAIおよびAzureを介したChatGPTモデルとのシームレスな対話のための強力なコマンドラインインターフェイスを提供します。

context-window設定で調整できます。-lまたは--list-modelsフラグを使用して、利用可能なモデルのリストにアクセスします。--list-threadsフラグを使用してアクティブスレッドのリストを表示します。config.yamlファイル、環境変数を介して設定を指定できる階層化された構成システムをサポートします。迅速な調整のために、さまざまな--set-<value>フラグが提供されます。現在の設定を確認するには、 --configまたは-cフラグを使用します。バージョン1.7.1の--promptフラグを備えたプロンプトファイルのサポートを導入できることを嬉しく思います!この機能を使用すると、ファイルから直接会話のためのリッチで詳細なコンテキストを提供できます。
--promptフラグを使用します--promptフラグを使用すると、ChatGPTの会話の初期コンテキストまたは指示を含むファイルを指定できます。これは、さまざまな会話で再利用したい詳細な指示やコンテキストがある場合に特に便利です。
--promptフラグを使用するには、このようにプロンプトファイルのパスを渡します。
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " prompt.mdの内容は読み取り、会話の初期コンテキストとして使用されますが、直接提供するクエリは、対処する特定の質問またはタスクとして機能します。
git diffコマンドの出力をプロンプトとして使用できる楽しい例を次に示します。
git diff | chatgpt --prompt ../prompts/write_pull-request.mdこの例では、 write_pull-request.mdプロンプトファイルのコンテンツを使用して、 git diffのDIFFデータに基づいてモデルの応答をガイドします。
さまざまな使用可能なプロンプトについては、この素晴らしいプロンプトリポジトリをご覧ください。これらは、あなた自身のカスタムプロンプトの素晴らしい出発点またはインスピレーションとして機能します!
homebrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliコンパイルせずにすばやく簡単にインストールするために、オペレーティングシステムとアーキテクチャ用に事前に構築されたバイナリを直接ダウンロードできます。
curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-386 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/このリンクからバイナリをダウンロードして、パスに追加します。
システムの適切なコマンドを選択します。これにより、バイナリをダウンロードし、実行可能にし、/usr/local/binディレクトリ(またはWindows上の%パス%)に移動して、簡単にアクセスできます。
OPENAI_API_KEY環境変数をChatgpt Secretキーに設定します。環境変数を設定するには、シェルプロファイル(〜/.bashrc、〜/.zshrc、または〜/.bash_profileなど)に次の行を追加できます。
export OPENAI_API_KEY= " your_api_key "CLIコール全体で履歴追跡を可能にするには、コマンドを使用して〜/.Chatgpt-Cliディレクトリを作成します。
mkdir -p ~ /.chatgpt-cliこのディレクトリが設置されると、CLIは、コンバージングする各「スレッド」のメッセージ履歴を自動的に管理します。履歴はスライディングウィンドウのように動作し、構成可能なトークンの最大値までコンテキストを維持します。これにより、会話のコンテキストを維持することと最適なパフォーマンスを達成することとのバランスが保証されます。
デフォルトでは、特定のスレッドがユーザーによって提供されていない場合、CLIはデフォルトのスレッドを使用し、歴史を~/.chatgpt-cli/history/default.jsonに保存します。このドキュメントの構成セクションでthreadパラメーターを構成する方法の詳細を確認できます。
試してみてください:
chatgpt what is the capital of the Netherlandsインタラクティブモードを開始するには、 -iまたは--interactiveフラグを使用します。
chatgpt --interactive CLIが各セッションの新しいスレッドを自動的に作成したい場合は、 auto_create_new_thread構成変数がtrueに設定されていることを確認してください。これにより、インタラクティブセッションごとに一意のスレッド識別子が作成されます。
パイプ機能を使用するには、コンテキストを含むテキストファイルを作成します。たとえば、次のコンテンツでContext.txtという名前のファイルを作成します。
Kya is a playful dog who loves swimming and playing fetch.次に、パイプ機能を使用して、このコンテキストを提供してchatgptにします。
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "利用可能なすべてのモデルをリストするには、-lまたは - リストモデルフラグを使用します。
chatgpt --list-modelsその他のオプションについては、次のことを参照してください。
chatgpt --helpCHATGPT CLIは、フラグ、環境変数、config.yamlファイル、およびデフォルト値に割り当てられた異なるレベルの優先順位を持つ4層構成戦略を採用しています。
| 変数 | 説明 | デフォルト |
|---|---|---|
name | 環境変数のプレフィックスはオーバーライドします。 | 「Openai」 |
thread | 現在のチャットスレッドの名前。それぞれの一意のスレッド名には、独自のコンテキストがあります。 | 'デフォルト' |
omit_history | Trueの場合、チャット履歴はGPTモデルのコンテキストを提供するために使用されません。 | 間違い |
command_prompt | インタラクティブモードのコマンドプロンプト。単一引用する必要があります。 | '[%dateTime] [q%counter]' |
output_prompt | インタラクティブモードの出力プロンプト。単一引用する必要があります。 | '' |
auto_create_new_thread | trueに設定されている場合、各インタラクティブセッションに対して一意の識別子(例: int_a1b2 )を備えた新しいスレッドが作成されます。 falseの場合、CLIはthreadパラメーターで指定されたスレッドを使用します。 | false |
track_token_usage | trueに設定されている場合、各クエリがクエリモードになった後、トークンの合計使用量を表示し、API使用量を監視するのに役立ちます。 | false |
debug | Trueに設定した場合、API呼び出し中に生のリクエストと応答データを印刷し、デバッグに役立ちます。 | false |
skip_tls_verify | Trueに設定した場合、TLS証明書の確認をスキップして、安全でないHTTPS要求を許可します。 | false |
multiline | Trueに設定されている場合、インタラクティブセッションでマルチライン入力モードを有効にします。 | false |
| 変数 | 説明 | デフォルト |
|---|---|---|
api_key | APIキー。 | (セキュリティのためになし) |
model | アプリケーションで使用されるGPTモデル。 | 「GPT-3.5-TURBO」 |
max_tokens | 単一のAPI呼び出しで使用できるトークンの最大数。 | 4096 |
context_window | 会話のどれだけを一度に記憶できるメモリの制限。 | 8192 |
role | システムの役割 | 「あなたは親切なアシスタントです。」 |
temperature | 使用するサンプリング温度、0〜2。値が高いほど、出力がよりランダムになります。値が低いと、より焦点を絞り、決定論的になります。 | 1.0 |
frequency_penalty | -2.0〜2.0の数。正の値は、これまでのテキスト内の既存の頻度に基づいて新しいトークンを罰します。 | 0.0 |
top_p | 核サンプリングと呼ばれる温度のサンプリングに代わるもので、モデルはTOP_P確率質量のトークンの結果を考慮します。 | 1.0 |
presence_penalty | -2.0〜2.0の数。正の値は、これまでのテキストに表示されるかどうかに基づいて、新しいトークンを罰します。 | 0.0 |
seed | 決定論的サンプリング(ベータ)のシードを設定します。同じシードとパラメーターを使用した繰り返しのリクエストは、同じ結果を返すことを目的としています。 | 0 |
url | Openai APIのベースURL。 | 'https://api.openai.com' |
completions_path | 完了のためのAPIエンドポイント。 | '/v1/chat/completions' |
models_path | モデル情報にアクセスするためのAPIエンドポイント。 | '/v1/モデル' |
auth_header | APIリクエストでの承認に使用されるヘッダー。 | 「認可」 |
auth_token_prefix | auth_headerのトークンの前に追加されるプレフィックス。 | 「ベアラー」 |
デフォルトでは、CHATGPT CLIは~/.chatgpt-cliディレクトリに構成と履歴ファイルを保存します。ただし、環境変数を設定してこれらの場所を簡単にオーバーライドして、カスタムディレクトリに構成と履歴を保存できるようにすることができます。
| 環境変数 | 説明 | デフォルトの場所 |
|---|---|---|
OPENAI_CONFIG_HOME | デフォルトの構成ディレクトリパスをオーバーライドします。 | ~/.chatgpt-cli |
OPENAI_DATA_HOME | デフォルトのデータディレクトリパスをオーバーライドします。 | ~/.chatgpt-cli/history |
デフォルトの構成またはデータディレクトリを変更するには、適切な環境変数を設定します。
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
これらの環境変数が設定されていない場合、アプリケーションは設定ファイルの〜/.chatgpt-cli、〜/.chatgpt-cli/historyが履歴の場合はデフォルトです。
%date : YYYY-MM-DD形式の現在の日付。%time :形式の現在の時間HH:MM:SS 。%datetime : YYYY-MM-DD HH:MM:SS形式の現在の日付と時刻。%counter :現在のセッションのクエリの総数。%usage :使用される総トークンの使用(クエリモードでのみ機能します)。ユーザー構成ファイルに独自の値を提供することにより、デフォルトをオーバーライドできます。このファイルの構造は、デフォルトの構成の構造を反映しています。たとえば、 modelとmax_tokensパラメーターをオーバーライドするために、ファイルは次のようになる場合があります。
model : gpt-3.5-turbo-16k
max_tokens : 4096これにより、 modelがgpt-3.5-turbo-16kに変わり、 max_tokensを4096に調整します。 url 、 completions_path 、 models_pathなどの他のすべてのオプションも同様に変更できます。ユーザー構成ファイルにアクセスできない、または欠落している場合、アプリケーションはデフォルトの構成に頼ります。
構成ファイルを手動で編集せずに値を調整する別の方法は、環境変数を使用することです。 name属性は、これらの変数のプレフィックスを形成します。例として、 model OPENAI_MODEL環境変数を使用して変更できます。同様に、コマンドの実行中に履歴を無効にするには、以下を使用します。
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?このアプローチは、一時的な変更やさまざまな構成のテストに特に有益です。
さらに、 --configまたは-cフラグを使用して現在の構成を表示できます。この便利な機能により、ユーザーは構成ファイルを手動で検査する必要なく、現在の設定を迅速に検証できます。
chatgpt --configこのコマンドを実行すると、環境変数またはユーザー構成ファイルによって制定されたオーバーライドを含むアクティブな構成が表示されます。
便利な調整を容易にするために、CHATGPT CLIは、ユーザーの設定config.yamlのmodel 、 thread 、 context-window 、およびmax_tokensパラメーターを迅速に変更するためのフラグを提供します。これらのフラグは、 --set-model 、 --set-thread 、 --set-context-windowおよび--set-max-tokensです。
たとえば、モデルを更新するには、次のコマンドを使用します。
chatgpt --set-model gpt-3.5-turbo-16kこの機能により、主要な構成パラメーターを迅速に変更し、ChatGPT CLIでのエクスペリエンスを最適化できます。
Azureの場合、次のような構成を使用します。
name : azure
api_key : <your_key>
model : <not relevant, read from the completions path>
max_tokens : 4096
context_window : 8192
role : You are a helpful assistant.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : default
omit_history : false
url : https://<your_resource>.openai.azure.com
completions_path : /openai/deployments/<your_deployment>/chat/completions?api-version=<your_api>
models_path : /v1/models
auth_header : api-key
auth_token_prefix : " "
command_prompt : ' [%datetime] [Q%counter] '
auto_create_new_thread : false
track_token_usage : false
debug : false上記のようにconfig.yamlファイルにAPIキーを設定するか、環境変数としてエクスポートできます。
export AZURE_API_KEY= < your_key >困惑については、次のような構成を使用します。
name : perplexity
api_key : " "
model : llama-3.1-sonar-small-128k-online
max_tokens : 4096
context_window : 8192
role : Be precise and concise.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : test
omit_history : false
url : https://api.perplexity.ai
completions_path : /chat/completions
models_path : /models
auth_header : Authorization
auth_token_prefix : ' Bearer '
command_prompt : ' [%datetime] [Q%counter] [%usage] '
auto_create_new_thread : true
track_token_usage : true
debug : false上記のようにconfig.yamlファイルにAPIキーを設定するか、環境変数としてエクスポートできます。
export PERPLEXITY_API_KEY= < your_key >上記のようにconfig.yamlファイルにAPIキーを設定するか、環境変数としてエクスポートできます。
export AZURE_API_KEY= < your_key >コマンドフラグの新しいオートコンプリート機能でCLIエクスペリエンスを強化してください!
現在、自動補完は、次のシェルでサポートされています:Bash、ZSH、Fish、およびPowerShell。現在のシェルセッションでフラグの完成を有効にするには、シェルに基づいて適切なコマンドを実行します。
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression 利便性を高めるために、シェルの起動ファイルに適切なソーシングコマンドを追加することにより、すべての新しいシェルセッション全体でオートコンプリティを持続させることができます。通常、各シェルに使用されるファイルは次のとおりです。
.bashrcまたは.bash_profileに追加します.zshrcに追加しますconfig.fishに追加しますたとえば、bashの場合、 .bashrcファイルに次の行を追加します。
. <( chatgpt --set-completions bash )これにより、新しい端末ウィンドウを開くたびに、コマンドフラグのオートコンプリーティが自動的に有効になることが保証されます。
ここにあるmdrender.shスクリプトを使用して、マークダウンをリアルタイムでレンダリングできます。最初にGlowをインストールする必要があります。
例:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh開発を開始するには、 OPENAI_API_KEY環境変数をChatgpt Secretキーに設定します。
MakeFileは、テスト、構築、展開のためのいくつかのターゲットを提供することにより、開発タスクを簡素化します。
make all-testsmake binariesmake shipitmake updatedepsより利用可能なコマンドについては、使用してください。
make help .scriptsinstall.ps1ビルドが成功した後、次のコマンドでアプリケーションをテストします。
./bin/chatgpt what type of dog is a Jack Russel ?前述のように、CHATGPT CLIは、CLIコール全体の会話履歴の追跡をサポートしています。この機能は、履歴が後続の相互作用でコンテキストとして利用されるため、GPTモデルでシームレスで会話のエクスペリエンスを作成します。
この機能を有効にするには、コマンドを使用して~/.chatgpt-cliディレクトリを作成する必要があります。
mkdir -p ~ /.chatgpt-cli問題が発生したり、改善の提案がある場合は、GitHubで問題を提出してください。このプロジェクトを改善するためのフィードバックと貢献に感謝します。
何らかの理由で、システムからChatGPT CLIアプリケーションをアンインストールしたい場合は、次の手順に従ってください。
HomeBrewを使用してCLIをインストールした場合、できることは次のとおりです。
brew uninstall chatgpt-cliタップを削除するには:
brew untap kardolus/chatgpt-cliバイナリを直接インストールした場合は、次の手順に従ってください。
バイナリを削除します:
sudo rm /usr/local/bin/chatgptオプションで、履歴追跡ディレクトリを削除する場合は、 ~/.chatgpt-cliディレクトリを削除することもできます。
rm -rf ~ /.chatgpt-cliシステム内のchatgptバイナリの場所に移動します。これは、パスにある必要があります。
chatgptバイナリを削除します。
オプションでは、履歴追跡を削除する場合は、 ~/.chatgpt-cliディレクトリ( ~はユーザーのホームディレクトリを参照)に移動して削除します。
履歴追跡ディレクトリ~/.chatgpt-cliには会話履歴のみが含まれており、個人データは含まれていないことに注意してください。これについて懸念がある場合は、アンインストール中にこのディレクトリを削除してください。
ChatGpt CLIを使用していただきありがとうございます!