Skip to main content

GitHub Mobile での GitHub Copilot チャットの責任ある使用

ギットハブ コパイロット チャット を責任を持って使用する方法について学習し、その目的、機能、制限事項を理解します。

GitHub Mobile のGitHub Copilot Chat に関する情報

GitHub Mobile のGitHub Copilot Chat は、GitHub Copilot と対話して、GitHub Mobile 内でコーディング関連の質問をして回答を受け取ることができるチャット インターフェイスです。 チャット インターフェイスは、ドキュメントの移動やオンライン フォーラムの検索を必要とせずに、コーディング情報とサポートにaccessを提供します。 GitHub Mobile に加えて、コパイロットチャット は現在、GitHub ウェブサイト、Visual Studio Code、Visual Studio、および JetBrains の IDE スイートでサポートされています。 GitHub Copilot の詳細については、「GitHub Copilotとは」を参照してください。

ギットハブ コパイロット チャット は、構文、プログラミングの概念、テスト ケース、デバッグなど、さまざまなコーディング関連の質問に答えることができます。 ギットハブ コパイロット チャット は、コーディング以外の質問に答えたり、コーディング以外のトピックに関する一般的な情報を提供したりするようには設計されていません。

GitHub Mobile のGitHub Copilot Chat でサポートされている主な言語は英語です。

ギットハブ コパイロット チャット は、自然言語処理とmachine learningを組み合わせて使用して、質問を理解し、回答を提供します。 このプロセスは、いくつかの手順に分けることができます。

入力処理

ユーザーからの入力プロンプトは、 コパイロットチャット システムによって前処理され、コンテキストとプロンプトに基づいて応答を取得するために大規模な言語モデルに送信されます。 ユーザーによる入力は、コード スニペットまたはプレーン ランゲージの形式をとることができます。 このシステムは、コーディング関連の質問にのみ対応することを目的としています。

言語モデルの分析

その後、前処理されたプロンプトは、テキスト データの大きな本文でトレーニングされたニューラル ネットワークである コパイロットチャット 言語モデルを介して渡されます。 言語モデルにより、入力プロンプトが分析されます。

応答の生成

言語モデルによって、入力プロンプトとそれに提供されたコンテキストの分析に基づいた応答が生成されます。 この応答は、生成されたコード、コードの提案、または既存のコードの説明の形式をとることができます。

出力の形式

コパイロットチャットによって生成された応答は書式設定され、ユーザーに表示されます。 コパイロットチャット では、構文の強調表示、インデント、およびその他の書式設定機能を使用して、生成された応答をわかりやすくすることができます。 ユーザーからの質問の種類に応じて、ソース コード ファイルやドキュメントなど、モデルが応答を生成するときに使用したコンテキストへのリンクも提供される場合があります。

ギットハブ コパイロット チャット は、質問に対して最も関連性の高い回答を提供することを目的としています。 ただし、お探しの回答が必ず提供されるとは限りません。 コパイロットチャットのユーザーは、システムによって生成された応答を確認および検証し、正確かつ適切であることを確認する責任があります。 GitHub Mobile のCopilot Chatのパフォーマンスの向上の詳細については、「GitHub Mobile のCopilot Chatのパフォーマンスの向上」を参照してください。

GitHub Copilot プランごとの違い

GitHub Mobile のCopilot Chatで使用できるオプションは、使用しているGitHub Copilotプランによって異なります。

  • プライベート インデックス付きリポジトリのデータを使用して、 GitHub Copilot Enterprise サブスクリプションを持つユーザーのみがアクセスして会話を行うことができます。
  • GitHub Copilot Enterprise サブスクリプションがあり、検索統合Bing有効にしている場合、GitHub Mobile のCopilot ChatはBing検索の結果に基づいて情報を使用して応答する場合があります。 Bing検索統合を有効または無効にする方法については、ドキュメントの GitHub Enterprise Cloud を参照
  • 1 つのファイルに関する一般的なコーディング会話や会話に加えて、 Copilot Pro、 Copilot Pro+、または Copilot Max(コパイロット・マックス) サブスクリプションを持つユーザーは、埋め込みを使用して人気のある一般的なパブリック リポジトリについて話し合う機能を持っています。

GitHub Copilot サブスクリプションをお持ちでない場合は、Copilot Pro、Copilot Pro+、または Copilot Max(コパイロット・マックス) サブスクリプションを iOS バージョンの GitHub Mobile で直接購入するか、Android 版の GitHub Mobile の Google Play ストアで購入できます。

のユース ケース GitHub Mobile のGitHub Copilot Chat

GitHub Mobile のGitHub Copilot Chat は、さまざまなシナリオでコーディング支援を提供できます。

コードの説明と改善点の提案

コパイロットチャット は、コードの機能と目的の自然言語の説明を生成することによって、選択したコードを説明するのに役立ちます。 これは、コードの動作を理解したい場合や、コードのしくみを理解する必要がある技術以外の利害関係者にとって便利です。 たとえば、コード エディターで関数またはコード ブロックを選択した場合、 コパイロットチャット は、コードの動作とシステム全体への適合方法に関する自然言語の説明を生成できます。 これには、関数の入力および出力パラメーター、その依存関係、大規模なアプリケーションでの目的などの情報を含めることができます。

コパイロットチャット また、エラーやエッジ ケースの処理の改善、コードを読みやすくするための論理フローの変更など、選択したコードに対する潜在的な改善を提案することもできます。

説明を生成し、関連ドキュメントを提案することで、 コパイロットチャット は選択したコードを理解するのに役立ち、コラボレーションの向上とより効果的なソフトウェア開発につながる可能性があります。 ただし、生成された説明とドキュメントが必ずしも正確または完全であるとは限らないため、 コパイロットチャットの出力を確認し、場合によっては修正する必要があることに注意してください。

コード修正の提案

コパイロットチャット は、エラーまたは問題のコンテキストに基づいてコード スニペットと解決策を提案することで、コード内のバグの修正プログラムを提案できます。 これは、バグの根本原因の特定に苦労している場合や、それを修正する最善の方法についてのガイダンスが必要な場合に便利です。 たとえば、コードでエラー メッセージまたは警告が生成された場合、 コパイロットチャット は、エラー メッセージ、コードの構文、および周囲のコードに基づいて、考えられる修正プログラムを提案できます。

コパイロットチャット は、問題を解決する可能性がある変数、制御構造、または関数呼び出しに対する変更を提案し、コードベースに組み込むことができるコード スニペットを生成できます。 ただし、提案される修正プログラムが常に最適または完全であるとは限らないので、提案を確認してテストする必要があることに注意することが重要です。

コーディングの質問への回答

特定のコーディングの問題に関するヘルプや説明を コパイロットチャット に依頼し、自然言語形式またはコード スニペット形式で応答を受け取ることができます。 これにより、一般的なコーディング タスクと課題のガイダンスとサポートが提供されるため、プログラマにとって便利なツールです。

GitHub Mobile のCopilot Chat のパフォーマンスを向上させる

コパイロットチャット は、コード生成、コード分析、コード修正など、さまざまなパフォーマンス メトリックと軽減戦略を持つ幅広い実用的なアプリケーションをサポートできます。 パフォーマンスを向上させ、 コパイロットチャットの制限事項に対処するために、さまざまな方法を採用できます。 GitHub Mobile のCopilot Chatの制限の詳細については、「GitHub Mobile のCopilot Chatの制限事項」を参照してください。

プロンプトをトピックに沿ったものにする

コパイロットチャット は、コーディングのみに関連するクエリに対処することを目的としています。 そのため、プロンプトをコーディングの質問またはタスクに限定すると、モデルの出力品質が向上する可能性があります。

コパイロットチャットを代わりではなくツールとして使用する

コパイロットチャットはコードを生成するための強力なツールですが、人間のプログラミングの代わりではなく、ツールとして使用することが重要です。 コパイロットチャットによって生成されたコードを常に確認してテストし、要件を満たし、エラーやセキュリティ上の問題がないことを確認する必要があります。

セキュリティで保護されたコーディングとコード レビュー プラクティスを使用する

コパイロットチャットは構文的に正しいコードを生成できますが、常にセキュリティで保護されるとは限りません。 ハードコーディングされたパスワードや SQL インジェクションの脆弱性の回避、コード レビューのベスト プラクティスに従うなど、セキュリティで保護されたコーディングのベスト プラクティスに常に従って、 コパイロットチャットの制限に対処する必要があります。

フィードバックを提供する

コパイロットチャットで問題や制限事項が発生した場合は、**** のGitHub Mobile のCopilot Chat リンクを通じてフィードバックを提供することをお勧めします。これは、応答が嫌いな場合に表示されます。 これは、開発者がツールを改善し、懸念事項や制限事項に対処するのに役立ちます。

最新情報を入手する

GitHub Mobile のCopilot Chat は新しいテクノロジであり、時間の経過と同時に進化する可能性があります。 ツールの更新や変更のほか、発生する可能性がある新しいセキュリティ リスクやベスト プラクティスについても、最新の状態を保つ必要があります。

GitHub Mobile のCopilot Chat の制限事項

コードベースや入力データなどの要因によっては、 コパイロットチャットを使用するときにさまざまなレベルのパフォーマンスが発生する場合があります。 次の情報は、システムの制限事項と、 コパイロットチャットに適用されるパフォーマンスに関する主要な概念を理解するのに役立ちます。

制限付きのスコープ

コパイロットチャット はコードの大規模な本文でトレーニングされていますが、まだスコープが限られており、より複雑なコード構造やあいまいなプログラミング言語を処理できない場合があります。 各言語で、受け取る提案の品質は、その言語のトレーニング データの量と多様性によって異なります。 たとえば、JavaScript はパブリック リポジトリで適切に表現されており、 GitHub Copilotで最もサポートされている言語の 1 つです。 パブリック リポジトリ内の表現が少ない言語は、 コパイロットチャット が支援を提供する方が困難な場合があります。 さらに、 コパイロットチャット は、記述されているコードのコンテキストに基づいてのみコードを提案できるため、より大きな設計やアーキテクチャの問題を特定できない可能性があります。

潜在的なバイアス

Copilotのトレーニング データは、既存のコード リポジトリから取得されます。このリポジトリには、ツールによって永続化される可能性のあるバイアスとエラーが含まれている可能性があります。 さらに、 コパイロットチャット は、特定のプログラミング言語やコーディング スタイルに偏りがあり、最適ではないコード候補や不完全なコード候補につながる可能性があります。

セキュリティ リスク

コパイロットチャット は、記述されているコードのコンテキストに基づいてコードを生成します。慎重に使用しないと、機密情報や脆弱性が公開される可能性があります。 コパイロットチャットを使用してセキュリティに依存するアプリケーションのコードを生成し、生成されたコードを常に確認してテストする場合は注意が必要です。

パブリック コードとの一致

コパイロットチャット は、確率論的な方法で行われる新しいコードを生成できます。 トレーニング セット内のコードと一致するコードが生成される可能性は低くなりますが、 コパイロットチャット 提案には、トレーニング セット内のコードに一致するいくつかのコード スニペットが含まれている可能性があります。 コパイロットチャット では、 GitHub リポジトリのパブリック コードとの一致をブロックするフィルターを利用しますが、独自に作成していないマテリアルを使用するコードと同じ予防措置を常に取る必要があります。これには、適合性を確保するための予防措置も含まれます。 これには、厳密なテスト、IP スキャン、セキュリティの脆弱性の確認などが含まれます。

不正確なコード

コパイロットチャットの制限の 1 つは、有効と思われるが、実際には意味的または構文的に正しくないか、開発者の意図を正確に反映していない可能性があるコードを生成することです。 不正確なコードのリスクを軽減するには、重要または機密性の高いアプリケーションを処理する場合は特に、生成されたコードを慎重に確認してテストする必要があります。 また、生成されたコードがベスト プラクティスと設計パターンに準拠し、コードベースの全体的なアーキテクチャとスタイル内に収まるように確認する必要もあります。

コーディング以外のトピックに対する不正確な応答

コパイロットチャット はコーディング以外の質問に回答するようには設計されていないため、その応答が常に正確であるとは限らないか、これらのコンテキストで役に立つとは限りません。 ユーザーがコーディング以外の質問 コパイロットチャット 質問した場合、無関係または無意味な回答を生成したり、有用な応答を提供できないことを示したりする可能性があります。

参考資料