ターミナル チャット (試験段階)
[アーティクル] 2024/10/29
2 人の共同作成者
フィードバック
この記事の内容
前提条件
ターミナル チャットでサービス プロバイダーを設定する
ターミナル チャットの使用例
ターミナル チャットは、Windows ターミナル Canary を任意の AI サービスと統合できる新しい試験的機能です。
ターミナル チャットが AI サービス プロバイダー (GitHub Copilot、Azure OpenAI、または OpenAI) に接続されたら、ターミナルのコンテキストを維持しながら、使用しているシェル (PowerShell、CMD、WSL Ubuntu、Azure Cloud Shell など) に固有の質問をすることができます。
ターミナル チャットでは、次のことができます。
コマンドの構文と説明を指定する
コマンド ラインのエラー メッセージについて説明する
コマンド ライン テキスト エディターにコード候補を送信する
ターミナル チャットには、独自の大きな言語モデルは付属していません。 現時点では、この試験的な機能は Windows ターミナル Canary でのみ使用でき、GitHub Copilot 、Azure OpenAI Service 、および OpenAI のみをサポートしています。
ターミナル チャットは、チャットにメッセージを入力した場合にのみ、選択した AI サービスと通信します。 ユーザーのチャット履歴とアクティブなシェルの名前も、AI サービスに送信されるメッセージに添付されます。 ターミナル セッションが終了した後、チャット履歴はWindows ターミナルによって保存されません。
ターミナル チャットでサービス プロバイダーを設定する
ターミナル チャットを使用するには、GitHub Copilot に接続するか、ターミナル チャット設定に Azure OpenAI または OpenAI エンドポイントを追加する必要があります。
Windows ターミナル開き、上部のメニュー バーの右端にあるドロップダウン メニューから Settings を選択します。
ターミナル チャット (試験段階) タブを選択して、サービス プロバイダーの構成設定を表示します。
Service Provider を選択します。 ターミナル チャットを使用するには、次のいずれかの AI サービス プロバイダーへのサブスクリプションが必要です。 サービス プロバイダーの設定で AI サービスを設定して認証する必要があります。 優先する AI サービス プロバイダーをアクティブ化する手順については、以下を参照してください。
GitHub Copilot : [サービス プロバイダー] で GitHub Copilot を選択し、GitHub 経由で認証を GitHub にサインインします。 アクティブなプロバイダーとして設定 GitHub Copilot をアクティブなサービス プロバイダーとして設定します。
GitHub Copilot をターミナル チャットに接続するには、個人用アカウントに GitHub Copilot のアクティブなサブスクリプションが必要です。または、組織のシートを割り当てる必要があります。 個人用アカウントで GitHub Copilot 無料試用版にサインアップ GitHub Copilot を評価できます。
注意
組織を介して GitHub Copilot にアクセスできる場合、組織の所有者が CLI で GitHub Copilot を無効にしている場合、GitHub Copilot を使用することはできません。 「組織内の Copilot の管理ポリシー 」を参照してください。
Windows ターミナルで GitHub Copilot を責任を持って使用する方法の詳細については、「Windows ターミナルでの GitHub Copilot の責任ある使用」「 」を参照してください。
Azure OpenAI : [サービス プロバイダー] で Azure OpenAI を選択し、エンドポイントの URL とキーを入力し、 Store と Save を選択します。
Azure OpenAI サービスのエンドポイントとキーを取得するには、Azure OpenAI Service ソースを作成およびデプロイする必要があります。
gpt-35-turbo
モデルを使用し、デプロイで jailbreak コンテンツ フィルター が有効になっていることを確認する必要があります。
リソースを作成してモデルをデプロイしたら、Azure OpenAI Studio の Chat プレイグラウンドに移動し、[チャット セッション] セクションで View コード を選択することで、エンドポイントと API キーを見つけることができます。 ポップアップ ダイアログには、ターミナル チャット サービス プロバイダーの設定で使用できるエンドポイント URL とキーが表示されます。
OpenAI : [Service Providers]\(サービス プロバイダー\) で OpenAI を選択し、エンドポイントの URL とキーを入力し、 Store および Save を選択します。
OpenAI エンドポイントとキーを取得するには、OpenAI のドキュメントを参照する必要があります。
OpenAI は、Microsoft ではなくサードパーティによって提供されます。 ターミナル チャットでメッセージを送信すると、セッションごとのターミナル チャット履歴とアクティブなシェル プロファイルの名前が、OpenAI で使用するためにサードパーティの AI サービスに送信されます。 OpenAI の使用は、関連するサード パーティの使用条件、プライバシーに関する声明に準拠します。
次の例では、ターミナル チャットの使用を検討する方法をいくつか示します。
コマンド候補 : 使用するコマンドを要求します。 ターミナル チャットでは、送信後にアクティブなシェルの名前もプロンプトに追加されるため、PowerShell を使用して "新しいディレクトリを作成操作方法?" と要求すると、応答がmd
可能性がありますが、WSL で Ubuntu (Linux) コマンド ラインを使用している場合は、応答がmkdir
可能性があります。
候補をクリックすると、ターミナルの入力行にコピーされます。 これにより、ユーザーに代わり候補が自動的に実行されることはありません。
Translate コマンド : ターミナル チャットを使用して、コマンドを "翻訳" することもできます。 たとえば、新しいファイルを作成するための Linux/Unix ベースのtouch
コマンドに相当する PowerShell コマンドである New-Item
の提案を取得するには、"PowerShell のtouch
ですか? または "PowerShell の操作方法 touch
" を要求できます。
エラーについて説明する : コマンド ラインに不慣れなエラー応答が表示された場合は、それをコピーしてターミナル チャットに貼り付け、エラー コードとその修正方法の説明を求めます。 たとえば、"操作方法修正Error: getaddrinfo ENOTFOUND
?" などです。
コマンド ライン テキスト エディターにコード候補を送信する : WSL でコマンド ライン テキスト エディター ( nano
や vi
など) を使用している場合は、[コピー] ボタンをクリックしてコードを生成し、コード提案をエディターに送信するようにターミナル チャットに依頼できます。
PowerShell コマンドレットの検索と説明 : cmdlet (発音されたコマンド レット) は、PowerShell で特定の関数を実行するために使用される軽量のスクリプト コマンドです。 ターミナル チャットは、役に立つ可能性があるコマンドレットを見つけるのに役立ち、実行するタスクを説明できます。 たとえば、"アクティブなプロセスの一覧を表示するコマンドレットを見つける" と Get-Process
。 または、「 Get-ChildItem
コマンドレットについて説明する」では、指定した場所内の項目の一覧を取得するためにコマンドレットが使用されることを示します。
ターミナル チャットでは、アクティブなシェルの名前を取得し、その名前を追加のコンテキストとして AI サービスに送信して、そのシェルに合わせて調整された候補を取得します。
つまり、ターミナル チャットでは、ユーザーのアクティブなシェルが、コマンド プロンプトなのか PowerShell なのかを識別するようなことが可能です。
ターミナル チャットは、Windows ターミナル Settings の Actions タブでキー バインドとして設定できます。 [ + 新規追加] を選択し ドロップダウンから Toggle Terminal Chat を選択して、ターミナル チャット機能の新しいキーバインド アクションを追加することで、新しいキーバインドを追加します。
これらの変更が保存された後、新しいキーバインドが、このドロップダウン メニューに反映されます。
ターミナル チャットで使用される言語モデルと AI サービスは、 Enabled Language Models/AI Providers ポリシーを使用して無効にすることができます。
ターミナル チャット機能は、同じポリシーで無効にすることもできます。
詳細については、「 グループ ポリシー」ページを参照してください 。