GitLab Code Suggestions とは
今話題の生成AIによる支援機能ですが、GitLab Code Suggestions とは、GitLab のAI支援機能 GitLab Duo で提供される機能の中の1つで、コード提案と呼ばれる機能です。開発者の作業効率を改善し、推奨コードなどによりセキュリティの脆弱性低減を可能にします。具体的には以下を提供します。
- コード補完 – 入力中の現在行に補完を提案します。これらの提案は通常、待ち時間が短くなります。
- コード生成 – 自然言語コードのコメント ブロックに基づいてコードを生成します。
# Type more here
コメントのコンテキストとコードの残りの部分に基づいて、適切なコードを生成するような コメントを作成します。 - アルゴリズムまたは大きなコード ブロックの生成には 10 秒以上かかる場合があります。
- コード生成応答のストリーミングは VS Code でサポートされており、平均応答時間が短縮されます。サポートされている他の IDE は応答時間が遅く、生成されたコードを 1 つのブロックで返します。
GitLab Duo とは
GitLabは、Code Suggestions (コード提案)だけではなく、開発プロセスDevOps/DevSecOps全体において一貫したAIによるサポート機能を構想、実装されてきています。このGitLabが提供するAIによる支援機能の総称として「GtiLab Duo」という名前が付けられています。GitLab Duo で提供あれる各機能は以下リンクからご確認いただけます。
また、よく比較されるGitHubのAIによる支援機能 Copilot は、OpenAIをベースにしているのに対し、GitLab Duo は、Google Cloud Vertex AIをベースに実装されています。
詳細提供機能などは以下記事をご参照ください。
GitLab Duo ご紹介:https://dev.networld.co.jp/1826/
GitLab Code Suggestions ライセンス
GitLab Duo で提供される各AI支援機能は、機能によって、既存ユーザーは最新バージョンでそのまま利用出来たり、追加ライセンス購入が必要だったりと使用権の入手方法は異なります。
GitLab Code Suggestions 機能は、追加ライセンスが必要な機能となりますので、利用する場合は、Code Suggestions Duo Pro(2024/2/1からライセンス名称変更) のユーザーライセンスをこの機能を使う人数分購入する必要があります。GitLab認定パートナー経由で購入が可能です。
Code suggestions は、2024/2/15までは、無償で利用できます!
- 2024 年 2 月 15 日より前は、本機能の使用には GitLab テスト契約が適用されます。
- 2024 年 2 月 15 日以降は、本機能は有料アドオンとなり、 AI 機能規約が適用されます。
GitLab Code Suggestions 機能有効化の方法
GitLabソリューションアーキテクトによる日本語での GitLab Code Suggestions 機能有効化の方法をご覧いただけます。
- セルフマネージドおよびSaaSについて。始めるには、これらのページを参照してください。
- VS Code、Microsoft Visual Studio、JetBrains IDE、および Neovim の場合。対応する GitLab 拡張機能がインストールされている必要があります。
- GitLab Web IDE 内。
サポートされている言語
コード提案のサポートは、次の機能によって行われます。
- 基礎となる大規模な言語モデル。
- IDEを使用しました。
- IDE での拡張機能またはプラグインのサポート。
次の表に記載されていない言語では、コードの提案が期待どおりに機能しない可能性があります。
IDE でサポートされている言語
Code Suggestions は、Kubernetes Resource Model (KRM)、Google Cloud CLI、Terraform などの一般的なプログラミング概念とコードとしてのインフラストラクチャ インターフェイスを認識しています。
エディターは次の言語をサポートしています。
言語 | VSコード | JetBrains IDE | ビジュアルスタジオ | ネオビム |
---|---|---|---|---|
C++ | はい | はい | はい | はい |
C# | はい | はい | はい | はい |
行く | はい | はい | はい | はい |
Google SQL | いいえ | はい | はい | はい |
ジャワ | はい | はい | はい | はい |
JavaScript | はい | はい | はい | はい |
コトリン | はい | はい | はい | はい |
PHP | はい | はい | はい | はい |
パイソン | はい | はい | はい | はい |
ルビー | はい | はい | はい | はい |
さび | はい | はい | はい | はい |
スカラ座 | はい | はい | はい | はい |
迅速 | はい | はい | はい | はい |
TypeScript | はい | はい | はい | はい |
テラフォーム | はい (Terraform サポートを提供するサードパーティの拡張機能が必要です) | はい | いいえ | はい (ファイルタイプを提供するサードパーティの拡張機能が必要ですterraform ) |
サポートされているエディタ拡張機能
コードの提案は、次のようなさまざまな一般的なエディタをサポートしています。
- VS Code、VS Code GitLab ワークフロー拡張機能を使用します。コード生成のためのストリーミング応答をサポートします。
- GitLab WebIDE (VS Code in the Cloud)。追加の構成は必要ありません。
- Microsoft Visual Studio。Visual Studio GitLab 拡張機能を使用します。
- JetBrains IDE、GitLab プラグインを使用。
- Neovim、
gitlab.vim
プラグインを使用します。
GitLab 言語サーバーは、 VS Code、Visual Studio、および Neovim で使用されます。言語サーバーは、より多くのプラットフォームにわたる高速な反復をサポートします。ユーザーは、GitLab が公式サポートを提供していない IDE でコード提案をサポートするように構成することもできます。
コード提案のデータ使用量
Code Suggestions は生成 AI モデルを利用しています。
個人アクセス トークンにより、GitLab.com または GitLab インスタンスへの安全な API 接続が可能になります。この API 接続は、コンテキスト ウィンドウを IDE/エディターからGitLab がホストするサービスであるGitLab AI Gatewayに安全に送信します。ゲートウェイは大規模言語モデル API を呼び出し、生成された提案が IDE/エディターに送信されます。
GitLab は、特定のタスク向けにクラス最高の大規模言語モデルを選択します。コードの提案にはGoogle Vertex AI コード モデルとAnthropic Claudeを使用します。
テレメトリー
コード提案と SaaS アカウントを有効にしたセルフマネージド インスタンスの場合、 Snowplow コレクターを通じて集約または匿名化されたファーストパーティの使用状況データを収集します。この使用状況データには次の指標が含まれます。
- コード提案の言語 (Python など)
- 使用されているエディター (VS Code など)
- 表示された提案、承認された提案、拒否された提案、またはエラーがあった提案の数
- 提案が表示された期間
- プロンプトとサフィックスの長さ
- 使用機種
- ユニークユーザーの数
- 一意のインスタンスの数
推論ウィンドウのコンテキスト
現在開かれているファイル、カーソルの前後の内容、ファイル名、拡張子の種類に対するコードの提案。提案の品質を向上させるための将来のコンテキスト拡張の詳細については、エピック 11669を参照してください。
トレーニングデータ
GitLab は、プライベート (非公開) データに基づいて生成 AI モデルをトレーニングしません。私たちが協力しているベンダーも、プライベート データに基づいてモデルをトレーニングしません。
GitLab Code Suggestions データサブプロセッサの詳細については、以下を参照してください。
既知の制限事項
私たちは生成されたコンテンツ全体の正確性を高めるために引き続き取り組んでいます。ただし、コードの提案では次のような提案が生成される場合があります。
- 無関係。
- 不完全な。
- パイプラインが失敗します。
- 潜在的に安全ではありません。
- 攻撃的か鈍感か。
コード提案を使用する場合でも、コード レビューのベスト プラクティスが適用されます。
フィードバックがありましたらお知らせください。
段階的な強化
この機能は、開発者の IDE に対する段階的な機能拡張として設計されています。コードの提案は、適切な推奨事項がタイムリーにユーザーに提供される場合に完了を提供します。接続の問題またはモデル推論の失敗が発生した場合、機能は正常に機能低下します。コードの提案によって、IDE でのコードの作成が妨げられることはありません。
フィードバック
問題 435783でのコード提案の経験についてお知らせください。
トラブルシューティング
コードの提案を無効にする
個々のユーザーは、インストールされている IDE エディター拡張機能の機能を無効にすることで、コード提案を無効にすることができます 。
本内容は、GitLab社ドキュメント Code Suggestions から引用しております。
https://docs.gitlab.com/ee/user/project/repository/code_suggestions/index.html
弊社パートナー様はNetworld Dev Portal アカウント(無料)登録いただくと、GitLabパートナー制度や DevSecOps関連提案資料などのパートナー限定コンテンツがご覧いただけます。
DevSecOps全般、GitLab製品または本サイトについては以下よりお問い合わせ下さい。