コード提案
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
コード提案は以下で利用可能です:
- GitLab Duo Agent Platform。請求は使用量ベースです。
- GitLab Duo Core、Pro、またはEnterprise、GitLab Duo with Amazon Q。請求はアドオンに基づきます。
GitLab Duoコード提案を使用すると、開発中に生成AIを使用してコードを提案することにより、より効率的にコードを作成できます。
前提条件
コード提案を使用するには、以下の手順に従います:
- GitLab Duo Coreをお持ちの場合は、IDE機能をオンにします。
- コード提案をセットアップします。
GitLab DuoにはGitLab 17.2以降が必要です。GitLab Duo Coreにアクセスして、最高のユーザーエクスペリエンスと結果を得るには、GitLab 18.0以降にアップグレードしてください。以前のバージョンでも引き続き動作する可能性はありますが、エクスペリエンスが低下するおそれがあります。
コード提案を使用する
コード提案を使用するには、以下の手順に従います:
サポートされているIDEでGitプロジェクトを開きます。
git remote addを使用して、ローカルリポジトリのリモートとしてプロジェクトを追加します。隠し
.git/フォルダーを含むプロジェクトディレクトリを、IDEワークスペースまたはプロジェクトに追加します。コードを作成します。入力すると、提案が表示されます。コード提案は、カーソルの位置に応じてコードスニペットを提示するか、現在の行を補完します。
要件を自然言語で記述します。コード提案は、提供されたコンテキストに基づいて関数やコードスニペットを生成します。
提案を受け取ったら、次のいずれかを実行できます:
- 提案を受け入れるには、Tabを押します。
- 部分的な提案を受け入れるには、Control+右矢印またはCommand+右矢印を押します。
- 提案を拒否するには、Escを押します。Neovimでメニューを終了するには、Control+Eを押します。
- 提案を無視するには、通常どおり入力を続けます。
複数のコード提案を表示する
VS Codeのコード補完候補では、複数の候補オプションを利用できる場合があります。利用可能なすべての候補を表示するには、以下の手順に従います:
- コード補完候補にカーソルを合わせます。
- 代替案をスクロールします。次のいずれかの操作を行います:
- キーボードショートカットを使用します:
- Macでは、Option+[を押して前の候補を表示し、Option+]を押して次の候補を表示します。
- LinuxとWindowsでは、Alt+[を押して前の候補を表示し、Alt+]を押して次の候補を表示します。
- 表示されるダイアログで、右矢印または左矢印を選択して、次または前のオプションを表示します。
- キーボードショートカットを使用します:
- Tabを押して、希望する候補を適用します。
コード補完と生成
コード提案は、次のようなコード補完とコード生成を使用します:
| コード補完 | コード生成 | |
|---|---|---|
| 目的 | 現在のコード行を補完するための候補を提供します。 | 自然言語のコメントに基づいて新しいコードを生成します。 |
| トリガー | 入力中にトリガーされます。通常、短い遅延が発生します。 | 特定のキーワードを含むコメントを記述した後、Enterを押すとトリガーされます。 |
| スコープ | 現在の行または小さなコードブロックに制限されます。 | コンテキストに基づいて、メソッド、関数、またはクラス全体を生成できます。 |
| 精度 | 小規模なタスクや短いコードブロックの場合に、より正確です。 | より大きな大規模言語モデル(LLM)が使用され、追加のコンテキスト(たとえば、プロジェクトで使用されるライブラリ)がリクエストで送信され、指示がLLMに渡されるため、複雑なタスクや大きなコードブロックの場合により正確です。 |
| 使い方 | コード補完が、入力中の行の補完を自動的に提案します。 | コメントを記述してEnterを押すか、空の関数またはメソッドを入力します。 |
| 使用すべき時 | 1行または数行のコードをすばやく完成させたい場合に、コード補完を使用します。 | より複雑なタスク、より大きなコードベース、自然言語の説明に基づいてゼロから新しいコードを書きたい場合、または編集するファイルが5行未満のコードしかない場合に、コード生成を使用します。 |
コード提案は常にこれらの両方の機能を使用します。コード生成のみ、またはコード補完のみを使用することはできません。
コード生成のベストプラクティス
コード生成で最良の結果を得るには、次を参考にしてください:
- シンプルさを保った上で、できるだけ具体的にしてください。
- 生成する結果(関数など)を記述し、何を達成したいかについて詳しく説明してください。
- 使用するフレームワークやライブラリなど、詳細な情報を追加してください。
- 各コメントの後にスペースまたは改行を追加してください。こうしたスペースにより、指示が完了したことをコードジェネレーターに伝えられます。
- レビューし、コード提案に利用可能なコンテキストを調整します。
たとえば、特定の要件を持つPython Webサービスを作成するには、次のように記述します:
# Create a web service using Tornado that allows a user to sign in, run a security scan, and review the scan results.
# Each action (sign in, run a scan, and review results) should be its own resource in the web service
...AIは決定的ではないため、同じ入力を使用しても毎回同じ候補が得られるとは限りません。高品質なコードを生成するには、明確かつ記述的で具体的なタスクを記述してください。
ユースケースとベストプラクティスについては、GitLab Duoの例のドキュメントに従ってください。
利用可能な言語モデル
異なる言語モデルをコード提案のソースにすることができます。
- GitLab.comの場合: GitLabがモデルをホストし、クラウドベースのAIゲートウェイを介してモデルに接続します。
- GitLab Self-Managedの場合、次の2つのオプションがあります:
- GitLabは、モデルをホストし、クラウドベースのAIゲートウェイを介してモデルに接続できます。
- お客様の組織はセルフホストモデルを使用できます。これは、お客様がAIゲートウェイと言語モデルをホストすることを意味します。GitLabが管理するモデル、その他のサポートされている言語モデル、または独自の互換性のあるモデルを使用できます。
結果の精度
当社では、生成されたコンテンツ全体の精度を向上させるため、継続的に改善を行っています。ただし、コード提案では、次のような提案が生成される可能性があります:
- 無関係なもの。
- 不完全なもの。
- パイプラインで失敗する可能性が高いもの。
- 潜在的に脆弱なもの。
- 不快または配慮のないもの。
コード提案を使用する場合でも、コードレビューのベストプラクティスが引き続き適用されます。