JetBrains IDE の AI Assistant

Read this post in other languages:

7 月 13 日更新: AI Assistant は JetBrains IDE 各製品の v.2023.2 以降のバージョンにはバンドルされていません。利用のためには専用のプラグインのインストールが必要です。現在、AI Assistantへのアクセスはキャンセル待ちリストによって制限されていますのでご留意ください。また、データの取り扱いや正式版リリース等に関する情報はFAQページをご覧ください。


今週リリースされるすべての IntelliJ ベース IDE と .NET ツールの EAP ビルドには、重要な新機能である AI Assistant(AI アシスタント)が搭載されています。 このブログ記事では IntelliJ ベース IDE に的を絞っていますが、.NET ツールに特化した記事については間もなく公開される予定です。

ジェネレーティブ AI と大規模言語モデルはソフトウェア開発ツールの分野に急激な変化をもたらしており、JetBrains は迷うことなくこのテクノロジーを製品に組み込むことにしました。 私たちが AI Assistant 機能の制作に取り組む際には、主に次の 2 つの点に注力しています。

  • AI 支援を基本的な IDE ユーザーの作業の流れに組み込むこと。
  • AI の機能とコード認識能力を緊密に統合すること。これは、以前からずっと JetBrains IDE が得意としている分野です。

AI 機能は JetBrains AI サービスを利用しています。 このサービスは製品ユーザーをさまざまな大規模言語モデル(LLM)に透過的に関連付け、多くの JetBrains 製品に組み込まれた特定の AI 駆動型機能を有効にします。 サービスをリリースした時点では OpenAI をサポートし、JetBrains が作成した多数の比較的小さなモデルをホストしますが、 将来的にはプロバイダーの数を増やし、最適な選択肢とモデルへのアクセスをユーザーに提供できるようにすることを計画しています。

また、ローカルとオンプレミスのモデルのサポートも計画しています。 ローカルのモデルでサポートされる機能セットは制限される可能性があります。

AI 機能

現在の EAP ビルドには、JetBrains の方向性を示す機能のサンプルが含まれています。

AI チャット

AI Assistant ツールウィンドウを使用して LLM との対話、質問、タスクの反復処理を行います。 IDE がプロジェクトで使用される言語やテクノロジーなど、プロジェクト固有のコンテキストを提供します。 満足のいく結果を得られたら、Insert Snippet at Caret(キャレット位置にスニペットを挿入)機能を使用して AI が生成したコードをエディターに挿入またはコピーできます。

AI に特定のコード箇所について質問するには、エディター内でその箇所を選択し、AI Actions(AI アクション)メニュー(エディターのコンテキストメニューまたは Alt+Enter ショートカットを使用)からアクションを呼び出します。 New chat using selection(選択範囲を使用して新しいチャットを開始)アクションを使用すると、独自のプロンプトまたはリクエストを提供できます。 必要に応じて Explain code(コードの説明)、Suggest refactoring(リファクタリングの提案)、または Find potential problems(潜在的な問題の発見)を選択すると、追加の標準 AI 支援プロンプトを入力できます。

ドキュメント生成

LLM を使用して宣言のドキュメントを生成する必要がある場合は、AI Actions(AI アクション)メニューを呼び出して Generate documentation(ドキュメントの生成)アクションを選択します。 現在、Java、Kotlin、および Python がサポートされています。

Java と Kotlin においては、ドキュメントコメントのスタブを生成する際の標準メソッド(/** を入力)を使うと、ドキュメントの生成が提案されます。 IDE は統計的に認識しているコメントの一部(Java の @param タグなど)を生成し、AI はユーザーに代わって実際のドキュメントのテキストを生成します。

名前の提案

Java、Kotlin、または Python の宣言の名前を変更すると、AI が宣言の内容に応じて名前の選択肢を提案します。 この機能は Settings(設定)| Tools(ツール)| AI Assistant(AI アシスタント) でオフにできます。

コミットメッセージの生成

コミットメッセージダイアログに Generate Commit Message with AI Assistant(AI アシスタントでコミットメッセージを生成)ボタンが追加されました。 このボタンをクリックすると LLM に変更の差分が送信され、変更内容を説明するコミットメッセージが生成されます。

AI 機能へのアクセス

AI 機能にアクセスするには、JetBrains Account を使用して JetBrains AI サービスにログインする必要があります。 ログインは AI Assistant(AI アシスタント)ツールウィンドウ、または Settings(設定)| Tools(ツール)| AI Assistant(AI アシスタント)から行います。

JetBrains AI サービスはすべてのユーザーに直ちに提供されるわけではないことに注意してください。 まずは限られた数のユーザーにアクセスを提供し、人数が定員に達した時点で残りのユーザーは順番待ちリストに追加されます。 今後数週間にわたってユーザーを順次招待し、製品をお試しいただく予定です。

AI サービスへのアクセスは現在、OpenAI サービスが提供されている地域に制限されています。 具体的な地域の全リストは、こちらをご覧ください。

AI サービスは EAP サイクルの期間は無料でご利用いただけます。 ライセンスと価格体系については、後日お知らせします。

ユーザーのコードとデータの処理方法

AI 機能を使用する場合、IDE はユーザーのリクエストとコードを LLM プロバイダーに送信する必要があります。 IDE はユーザーに入力を求めるほか、LLM にコンテキストを提供する目的でコード、ファイル形式、使用されているフレームワークなどの必要な追加情報を送信することがあります。

また、AI アシスタント機能を搭載した EAP ビルドはユーザーと LLM 間でやりとりされるすべての情報(テキストとコード箇所)を含め、AI 機能の使用状況に関する詳細なデータをオプトインで収集します。 このデータは極秘扱いで保管され、JetBrains が製品を改善する目的でのみ使用されます。 データが外部関係者と共有されることは一切ありません。また、コードやテキストを生成する ML モデルのトレーニングに使用されたり、いかなる形態でも他のユーザーに開示されたりすることはありません。詳細なデータ収集を制御するオプションは、Tools(ツール)| AI Assistant(AI アシスタント)| Data Sharing(データ共有)| Send AI Assistant usage statistics(AI アシスタントの使用統計情報を送信する)にあります。

データ収集ポリシーに関する詳細については、JetBrains のウェブサイトをご覧ください。

フィードバックをお寄せください

この段階では、サクセスストーリー、AI が期待どおりに動作しなかった状況、AI が支援できる他のシナリオの提案など、新機能に関する皆さんのフィードバックを参考にすることが非常に重要であると考えています。 AI Assistant(AI アシスタント)ツールウィンドウの Share feedback(フィードバックの共有)をクリックし、皆さまのアイデアやご意見をお送りください。AI アシスタントのバグについては YouTrack でご報告ください。 ご協力いただきありがとうございます!

オリジナル(英語)ブログ投稿記事の作者:

Ryuji Owan

Dmitry Jemerov

image description

Discover more