コード提案(無料オールベータ)
- GitLab 16.1でGoogle Vertex AI Codey APIをサポートしました。
- GitLab 16.2でGitLabネイティブモデルのサポートを削除しました。
開発中にコードを提案するジェネレーティブAIを使用することで、より効率的にコードを書くことができます。
コードサジェストが利用できます:
- 自己管理とSaaSについて。
- VS Code、Microsoft Visual Studio、JetBrains IDEs、Neovimで。対応するGitLabエクステンションがインストールされている必要があります。
- GitLab WebIDEで。
Code Suggestionsの使用にはGitLab Testing Agreementが適用されます。Code Suggestionsを使用する際のデータ使用についてはこちらをご覧ください。
対応言語
Google Vertex AI Codey APIが直接サポートする言語では、コードサジェストによる最良の結果が期待できます:
- C++
- C#
- Go
- Google SQL
- Java
- ジャバスクリプト
- コトリン
- PHP
- Python
- Ruby
- Rust
- Scala
- Swift
- タイプスクリプト
サポートされるコード・インフラストラクチャ・インターフェース
Code Suggestionsには、Google Vertex AI Codey APIsがコードインターフェースとして以下のインフラストラクチャをサポートしています:
- Google Cloud CLI
- Kubernetesリソースモデル(KRM)
- Terraform
他の言語に対する提案の品質や、自然言語コードコメントをリクエストの補完に使用することは、まだ高品質な提案にならない可能性があります。
IDE でサポートされている言語
エディタがサポートしている言語については、次の表を参照してください。
対応言語 | VSコード | JetBrains IDEs | ビジュアルスタジオ | ネオビム |
---|---|---|---|---|
C++ | ✓ | ✓ | ||
C# | ✓ | ✓ | ✓ | |
Go | ✓ | (IDEA Ultimate / GoLand) ✓ (IDEA Ultimate / GoLand) | ✓ | |
Google SQL | ✓ | |||
Java | ✓ | ✓ | ✓ | |
ジャバスクリプト | ✓ | ✓ | ✓ | |
コトリン | ✓ | ✓ | ✓ | |
PHP | ✓ | IDEAアルティメット | ✓ | |
Python | ✓ | ✓ | ✓ | ✓ |
Ruby | ✓ | ✓ (IDEA Ultimate / RubyMine) | ✓ | ✓ |
Rust | ✓ | ✓ | ✓ | |
Scala | ✓ | ✓ | ✓ | |
Swift | ✓ | ✓ | ✓ | |
タイプスクリプト | ✓ | ✓ | ✓ | |
Google Cloud CLI | ||||
Kubernetesリソースモデル(KRM) | ||||
Terraform | (Terraformをサポートするサードパーティの拡張機能が必要) |
サポートされているエディタエクステンション
Code Suggestionsは、次のような一般的なエディタをサポートしています:
- VS Codeは、VS Code GitLab Workflowエクステンションを使用しています。
- GitLab WebIDE(VS Code in the Cloud)、追加設定なし。
- Microsoft Visual Studio、Visual Studio GitLabエクステンションを使用。
- JetBrains IDEs、GitLabプラグインを使用。
- Neovim、
gitlab.vim
プラグインを使用。
GitLab Language Server for Code Suggestionsも進行中です。この改善により
- IDE拡張機能の高速化と標準化。
- 公式エディタ拡張機能が利用できない場合でも、コードサジェストを使用できます。
コードサジェストのデータ使用量
Code Suggestions は生成人工知能(AI) モデルです。
お客様の個人アクセストークンにより、GitLab.comへのセキュアなAPI接続が可能になります。このAPI接続により、IDE/エディタからCode Suggestions GitLabホスティングサービスにコンテキストウィンドウが安全に送信され、Google Vertex AI Codey APIが呼び出され、生成されたサジェストがIDE/エディタに送信されます。
GitLabは現在、Google CloudのVertex AI Codey APIモデルを活用しています。Google Vertex AI Codey APIデータガバナンスの詳細はこちら。
遠隔測定
Code SuggestionsとSaaSアカウントを有効にしたセルフマネージドインスタンスでは、Snowplowコレクターを通じて、集計または非識別化されたファーストパーティの使用状況データを収集します。この使用状況データには、以下のメトリクスが含まれます:
- コードサジェストの言語(Pythonなど)
- 使用しているエディター(例:VS Code)
- 表示された提案、受け入れられた提案、拒否された提案、エラーがあった提案の数
- 提案が表示された時間
- プロンプトとサフィックスの長さ
- 使用モデル
- ユニークユーザー数
- ユニークインスタンス数
推論ウィンドウのコンテキスト
Code Suggestionsは現在開いているファイルに対して推論を行い、2,048トークンと8,192文字制限のコンテキストウィンドウを持ちます。この制限には、カーソルの前後の内容、ファイル名、拡張子の種類が含まれます。Google Vertex AIcode-geckoの詳細はこちらをご覧ください。
レスポンスで生成されるトークンの最大数は、デフォルトの 64 です。トークンは約 4 文字です。100トークンはおよそ60~80ワードに相当します。Google Vertex AIcode-gecko
の詳細については、こちらをご覧ください。
学習データ
コード提案は Google Vertex AI Codey API を経由します。Google Vertex AI Codey APIデータガバナンスと 責任ある AI について詳しくはこちらをご覧ください。
Google Vertex AI Codey APIは、非公開のGitLabの顧客データやユーザーデータで学習されることはありません。
Googleは、Codeyモデルが学習されるデータについて、以下のように共有しています:
Codeyは、PaLM 2をベースに構築された私たちの基礎的なコーディングモデルのファミリーです。Codeyは、外部ソースからの高品質で権限許諾されたコードの大規模なデータセットで微調整されました。
段階的な機能強化
この機能は、開発者のIDEを段階的に強化するために設計されています。コードサジェスチョンは、機械学習エンジンが推奨を生成できる場合に補完を提供します。接続にイシューが発生したり、モデルの推論に失敗したりしたイベントでは、この機能はグレースフルに低下します。コードサジェスチョンによって、IDE でコードを書くことができなくなることはありません。
インターネット接続
Code Suggestionsはオフライン環境では動作しません。
コードサジェスチョンを使用するには
- GitLab.comでは、インターネットに接続し、GitLabにアクセスできる必要があります。
- GitLab 16.1以降、セルフマネージドGitLabでは、インターネット接続が必要です。
モデルの精度と品質
コード・サジェスチョンでは、低品質で不完全な、場合によっては安全でないコードが生成される可能性があります。すべてのベータユーザーに、GitLab ネイティブのCode Quality ScanningとSecurity Scanning機能を活用することを強くお勧めします。
GitLabは現在、Google Vertex AI Codey APIsを再トレーニングしていません。GitLabは、Google Vertex AI Codey APIが生成するコードサジェストの正確性や品質について、いかなる主張も行いません。Google Vertex AI基盤モデル機能の詳細はこちらをご覧ください。
既知の制限
ベータ版では、生成されるコンテンツ全体の精度の向上に取り組んでいます。しかし、コードサジェストは以下のような提案を生成する可能性があります:
- 低品質
- 不完全
- 失敗したパイプラインの製造
- 安全でないコード
- 攻撃的または無神経
また、以下のような予期せぬ結果や支離滅裂な結果をもたらす可能性のある特定の状況も認識しています:
- 既存の関数の途中に書かれた提案、または “真ん中を埋める “提案。
- 自然言語のコードコメントに基づく提案
- プログラミング言語を予想外の方法でミックスした提案。
フィードバック
フィードバック・イシューで問題をレポーターしてください。