GitLab Duoのコンテキスト認識
使用しているGitLab Duoの機能と使用場所に応じて、GitLab Duoが意思決定を行い、提案を行うのに役立つさまざまな情報が利用可能です。
情報は、以下の状況で利用可能です。:
- 常時。
- お客様の所在地に基づく場合(ナビゲートするとコンテキストが変化します)。
- 明示的に参照される場合。たとえば、URL、ID、またはパスで情報を記述する場合。
GitLab Duo Chat
次のコンテキストは、GitLab Duoチャットで利用できます。
常に利用可能
- GitLabドキュメント。
- 一般的なプログラミング知識、ベストプラクティス、および言語固有の情報。
- カーソルの前後のコードを含め、表示または編集しているファイルの内容。
/refactor、/fix、および/testsスラッシュコマンドは、最新のリポジトリX-Rayレポートにアクセスできます。
所在地に基づく
これらのリソースのいずれかを開いている場合、GitLab Duoはそれらについて認識します。
- ファイル(
/includeコマンドでインポートされたもの) - ファイル内で選択されたコード
- イシュー(GitLab Duo Enterpriseのみ)
- エピック(GitLab Duo Enterpriseのみ)
- その他の作業アイテムタイプ
IDEでは、既知の形式に一致するシークレットと機密情報値は、GitLab Duo Chatに送信される前に秘匿化されます。
UIでは、マージリクエストにいる場合、GitLab Duoは次のことも認識します。:
- マージリクエスト自体(GitLab Duo Enterpriseのみ)。
- マージリクエスト内のコミット(GitLab Duo Enterpriseのみ)。
- マージリクエストパイプラインのCI/CDジョブ(GitLab Duo Enterpriseのみ)。
明示的に参照される場合
所在地に基づいて利用可能なすべてのリソースは、IDまたはURLで明示的に参照する場合にも利用できます。
ソフトウェア開発フロー
次のコンテキストは、GitLab Duo Agent Platformのソフトウェア開発フローで使用できます。
常に利用可能
- 一般的なプログラミング知識、ベストプラクティス、および言語固有の情報。
- Gitで追跡されているプロジェクト全体とすべてのファイル。
- GitLabの検索API。これは、関連するイシューまたはマージリクエストを検索するために使用されます。
所在地に基づく
- IDEで開いているファイル(コンテキストに使用したくない場合は、ファイルを閉じてください)。
明示的に参照される場合
- ファイル
- エピック
- イシュー
- マージリクエスト
- マージリクエストのパイプライン
コード提案
次のコンテキストは、コード提案で利用できます。
常に利用可能
- 一般的なプログラミング知識、ベストプラクティス、および言語固有の情報。
- カーソルの前後のコンテンツを含め、表示または編集しているファイルの名前、拡張子、およびコンテンツ。
所在地に基づく
- IDEのタブで開いているファイル。オプションですが、デフォルトでオンになっています。
- これらのファイルは、プロジェクトの標準とプラクティスに関する情報をGitLab Duoに提供します。
- コンテキストに使用したくない場合は、ファイルを閉じてください。
- コード補完は、すべてのサポートされている言語を認識します。
- コード生成は、次の言語のファイルのみを認識します。: Go、Java、JavaScript、Kotlin、Python、Ruby、Rust、TypeScript(
.tsおよび.tsxファイル)、Vue、YAML。
- 表示または編集しているファイルにインポートされたファイル。オプションですが、デフォルトでオフになっています。
- これらのファイルは、ファイルのクラスとメソッドに関する情報をGitLab Duoに提供します。
- エディタで選択されたコード。
- Repository X-Rayファイル。
既知の形式に一致するシークレットと機密情報値は、コード生成に使用される前に秘匿化されます。これは、/includeを使用して追加されたファイルに適用されます。
コード提案がコンテキストに使用するものを変更する
コード提案が他のファイルをコンテキストとして使用するかどうかを変更できます。
開いているファイルをコンテキストとして使用する
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
デフォルトでは、コード提案は、提案を行う際にIDEで開いているファイルをコンテキストとして使用します。ただし、この設定をオフにすることができます。
前提要件:
- GitLab 17.2以降。コード提案をサポートする以前のバージョンのGitLabでは、開いているタブのコンテンツをプロジェクト内の他のファイルよりも重視することはできません。
- サポートされているプラグイン:
- VS Code用GitLab Workflow拡張機能6.2.2以降。
- JetBrains IDE用GitLabプラグイン3.6.5以降。
- Neovim 1.1.0以降用のGitLabプラグイン。
- Visual Studio用GitLab拡張機能0.51.0以降。
コンテキストとして使用されている開いているファイルを変更するには、次のようにします。:
- 上部のバーで、コード > 設定 > Extensions(拡張機能)に移動します。
- リストでGitLabワークフローを検索し、歯車アイコンを選択します。
- 設定を選択します。
- ユーザー設定で、
open tabsを検索します。 - GitLab › Duo Code Suggestions: Open Tabs Contextにある、Use the contents of open tabs as context(開いているタブの内容をコンテキストとして使用)を選択またはクリアします。
- IDEの上部のメニューバーに移動し、設定を選択します。
- 左側のサイドバーで、ツールを展開し、GitLab Duoを選択します。
- Additional languages(その他の言語)で、Send open tabs as context(開いているタブをコンテキストとして送信)を選択またはクリアします。
- 適用または保存を選択します。
インポートされたファイルをコンテキストとして使用する
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
IDEでインポートしたファイルを使用して、コードプロジェクトに関するコンテキストを提供します。インポートされたファイルコンテキストは、.js、.jsx、.ts、.tsx、および.vueファイルタイプを含む、JavaScriptおよびTypeScriptファイルでサポートされています。
GitLab Duoからコンテキストを除外する
GitLab Duoのコンテキストとして除外するプロジェクトコンテンツを制御できます。これを使用して、パスワードファイルや設定ファイルなどの機密情報を保護します。
チャットの場合、除外するコンテキストはGitLab Duo内で適用されます。除外するコンテキストは、GitLab Duo内では適用されません。
GitLab Duoコンテキスト除外の管理
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- GitLab DuoのGitLab Duoコンテキスト除外セクションで、除外の管理を選択します。
- GitLab Duo除外するプロジェクトファイルとディレクトリを指定し、除外を保存を選択します。
- オプション。既存の除外を削除するには、該当する除外の削除( )を選択します。
- 変更を保存を選択します。