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