この文書は、 IBM Software Hub 上の watsonx Code Assistant のオンプレミスインストールに適用されます。 IBM Cloud のドキュメントについては、「コードの提案を取得する」 を参照してください。
コードの提案を得る
チャットでの会話やエディターでコードを完成させることで、コード候補を生成します。
チャットの会話を使う
必要なコードを説明するプロンプトを入力すると、watsonx Code Assistantが使用するコードを生成します。
- 質問や指示をする。
- Send
アイコンをクリックします。 Watsonx Code Assistantは、あなたの入力をコードモデルに送信し、その応答をチャットに表示します。
チャットとエディタ間のコード転送
使用したいコードの提案を受け取ったら、チャットからコードブロックをエディタに挿入することができます。
- エディタにカーソルを置きます。
- チャットで、 Insert at cursor
アイコンをクリックする。
チャットでコンテキストとして使用したいコードがエディタにある場合、そのコードをチャットにコピーすることができます。
- エディタでコードをハイライトします。
- 右クリックでポップアップメニューを表示します。
- 選択する watsonx Code Assistant。
- 「選択したコードをチャットに追加 」を選択します。
自然言語の使用
各チャットメッセージはチャット会話の一部です。 会話は特定のテーマやタスクに集中させる。 コンテキストを別のプログラミング言語、ワークスペース内の別のプロジェクト、または別のプログラミングタスクに切り替えるときは、新しいチャット会話を作成します。 あなたの質問に対して、より適切な結果を得ることができます。
例:
Create a Python class Customer. Include attributes for firstName, lastName and age.Create a JavaScript function that fetches data from a REST API endpoint, dynamically populates an HTML table with the results, and updates the UI asynchronously
プロンプト・ライブラリの使用
Watsonx Code Assistantには、一般的な自然言語によるコーディング要求のセットを含むプロンプト ライブラリが含まれています。 チャットにそのまま使用することもできますし、使用するケースに合わせて変更することもできます。
プロンプトライブラリーにアクセスするには
- メニューを開く
アイコンをクリックする。
- プロンプトライブラリをクリックして開く。
- クリップボードにコピー
アイコンをクリックします。
- もう一度「プロンプトライブラリ」をクリックして閉じる。
- プロンプトをチャットに貼り付ける。
効果的なチャットメッセージの書き方
会話に最高の結果をもたらすために:
- チャットメッセージは英語で書いてください。
- シンプルで明確な指示から始める。
- 後続のチャットメッセージを使って、モデルのコード出力を改良する。
- 各ステップについて、できるだけ具体的かつ詳細に説明すること。 作成したコードは、その後のチャットメッセージを通じて徐々に強化することができます。
- 関連するコンテキストを提供するために、メッセージの中でファイルやメソッドの参照を使用してください。 例えば、モデルに他のメソッドに似たメソッドを作らせたい場合は、メッセージに'
similar to @<method>を追加する。 - 答えの関連性が薄れたり、新しいタスクを始めたりしたら、新しいチャット会話を作成し、そこから作業する。 異なる無関係なチャットメッセージでモデルを混乱させる可能性のある1つの大きな会話よりも、それぞれが特定のコンテキストを持つ多くの短いチャット会話を持つ方が良い。
ワークスペース内のコードを参照する
ローカルワークスペース内の特定のファイル、クラス、関数、メソッドについて質問したり、詳細を確認したりするには、 コードリファレンスを使用できます。 これらの参考文献は重要な文脈を提供し、解答の正確性を高めるのに役立つ。
- ワークスペースのファイル、クラス、メソッドのリストを表示するには、チャットメッセージの一部として
@シンボルを入力します。 - 参照したいファイル名、クラス名、メソッド名の文字を入力してリストを絞り込む。
- クリックしてリファレンスを選択します。 Watsonx Code Assistantは、リファレンスの内容をメッセージの一部として送信します。
.gitignore の項目は、コード・リファレンスの選択肢には含まれない。 .env などの機密データをお持ちの場合は、必ず .gitignore に追加してください。
ローカルのワークスペースフォルダを開くと、 watsonx Code Assistant はこれらのアイテムのインデックスをメモリ内に作成し、チャット内でこれらのファイルや機能を参照できるようにします。 エディタは、セッション中に追加または変更したファイルのインデックスも作成します。 このインデックスには、以下のプログラミング言語における最新のファイル1,000件までが含まれています
- C
- C++
- 実行
- Java
- JavaScript
- Python
- TypeScript
ファイルのインデックス作成はローカルリポジトリでのみ機能します。
メソッドを参照する場合、 watsonx Code Assistant は特定のコード言語をサポートしています。 完全なファイルを参照することは、すべての言語で機能します。 詳細については、 メソッドを使用する際の言語サポートを参照してください。
ファイルを参照する際のサイズ制限は50KBです。 この制限に達した場合は、ファイルを個々の関数に分割し、各関数を参照してください。 あるいは、関数の境界に注意して49KBでファイルを分割し、分割ごとにファイルを参照する。 どちらの方法でも、結果を統合する必要がある。
コードを参照する例を含む使用例:
| ユース・ケース | サンプル・メッセージ |
|---|---|
| 既存の関数を基に関数を生成する | send_code_explanation_messageに似たメソッド'send_translate_message作成する |
| 既存のユニットテストに従ったユニットテストを生成する | @testLoadTablesChildConnectionReceiverJob.hのユニットテストに似た@getNameのユニットテストを作成する |
| 既存機能の強化 | format_documentsにエラー処理とログ・ステートメントを追加する |
| 既存機能の強化 | @setEmailを更新し、NULL文字列のエラー処理を追加しました |
| コードの説明 | mainmain.pyは何をするのか? |
| コードの説明 | send_invoiceのロジックを説明する |
| 関数やクラスのドキュメントを作成する | JavaDoc を@Customerに追加 |
チャットコマンドの使用
特定のタスクを実行するために使用できるチャットコマンド:
| コマンド | 説明 | 詳細情報 |
|---|---|---|
/document |
アクティブなワークスペースの参照ファイル、メソッド、クラスのドキュメントを生成する | 文書の生成 |
/explain |
生成AIを使用してコードを分析し、要約することで、コードが何を行っているかを理解する | コードの説明 |
/help |
タスクに関する迅速なサポート | チャットに「/help入力 |
/unit-test |
様々なプログラミング言語の単体テストを生成する | ユニットテストの生成 |
/translate |
コードをある言語から別の言語に翻訳する | コードの翻訳 |
チャットの会話管理
チャットセッションメニューを使用して、既存のチャット会話を管理できます。
メニューを開く
- メニューを開く
アイコンをクリックする。
- チャットセッションをクリックします。
チャット会話セッションの切り替え
チャット会話セッションを切り替えるには、チャットセッションリストからセッションを選択します。
チャットセッション名の変更
チャット会話セッションの名前を変更するには
- チャットセッションで、オーバーフローメニュー
アイコンをクリックします。
- 変名をクリックします。
- 新しい名前を入力し、Enterを押す。
チャットセッションの削除
1つのチャット会話セッションを削除するには
- チャットセッションで、オーバーフローメニュー
アイコンをクリックします。
- 「削除」をクリックします。
複数のチャット会話セッションを削除するには
- チャットを選択
アイコンをクリックします。
- 削除したいチャットを選択するか、「 すべて選択 」をクリックします。
- 削除
アイコンをクリックし、 削除ボタンをクリックして確定します。
エディタでコードを完成させる
エディタにコードやコメントを入力すると、コードの候補が表示されます。
Eclipseでエディターを使う
C、C++、Go、 JavaScript, Python、 TypeScript:
- ファイルを右クリックする。
- で開く] をクリックし、[ テキストエディタ] をクリックする。
Java の場合、 Eclipse IDE の Java エディターによるインライン・コード生成は watsonx Code Assistant でサポートされていますが、最初にセットアップする必要があります。
Eclipseの設定でContent Assistに移動します。
コンテンツ・アシストへのナビゲーション オペレーティング・システム パス MacOS Eclipse > 設定 > Java > エディター > コンテンツ・アシスト Windows (US) ウィンドウ > 環境設定 > Java > エディタ > コンテンツアシスト 挿入セクションで、「単一の提案を自動挿入する 」のチェックを外します。
Auto Activation セクションで、 Auto activation triggers for Javaに
._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZを追加し、 Enable auto activationがチェックされていることを確認する。Apply and Close(適用して閉じる )をクリックします。
単線補完
エディターでコードを書くと、watsonx Code Assistantがそのコードを完成させるためのコードを提案します。
- コード行の入力を開始し、一時停止する。
- Watsonx Code Assistantは、入力した行を補完するコード候補を追加します。
- Visual Studio Codeで、 Tabを押して提案を受け入れる。 Eclipseで、 Return または Enterを押して提案を受け入れる。 または Escを押して拒否する。
マルチラインコンプリート
入力したコード行やコメントに基づいて、複数行のコード・サジェストを得ることができる。
コード行の入力を開始するか、必要なコードを説明するコメントを入力する。
最良の結果を得るためには、例えば、予想されるプログラミング言語をコメントに含めてください:
// Sort an array with a fast sort function (TypeScript programming language)キーボードショートカットを使う。
デフォルトのキーボードショートカット オペレーティング・システム ショートカット MacOs オプション+。 Windows (US) Alt+。 Watsonx Code Assistantは、複数行のコード候補を追加します。
Visual Studio Codeで、 Tabを押して提案を受け入れる。 Eclipseで、 Return または Enterを押して提案を受け入れる。 または Escを押して拒否する。
特定のコード言語のコード補完を無効にする
必要であれば、 Visual Studio Code 拡張機能の Completion: Disabled Languages 設定を使用して、特定のコード言語のコード補完を無効にすることができます。
watsonx Code Assistant の拡張設定を開く。
Add Itemをクリックして、コード言語を選択する。 選択肢は以下のとおりです。
コード言語 選択 コード言語 cC cppC++ go実行 javaJava javascriptJavaScript javascriptreactJavaScript 反応 pythonPython typescriptTypeScript typescriptreactTypeScript 反応
コード言語を再度有効にするには、リストから削除します。
リスト内のコード言語をクリックします。
項目を削除] アイコンをクリックして、無効な言語のリストから削除します。
キーボードショートカットの変更
デフォルトの組み合わせがすでに他のタスクに割り当てられている場合は、キーボードショートカットを変更できます。
Visual Studio Codeでキーボードショートカットを変更するには:
- コードメニューをクリックする。
- 設定」を選択する。
- キーボードショートカットを選択する。
watsonxを検索します。- 変更したいショートカットについて、 キーバインドの変更編集鉛筆アイコンをクリックし、別のキーの組み合わせを割り当てます。
Eclipseのキーボードショートカットを変更する:
- Eclipseメニューをクリックします。
- 設定」を選択する。
Keys入力して設定を絞り込み、「Keys」をクリックする。WCA入力してリストを絞り込む。- 変更したいキーボードショートカットを選択します。
- Bindingフィールドに、新しいキーの組み合わせを入力する。
コード補完を無効にする
必要であれば、エディター・ウィンドウでのコードの補完を無効にすることができます。
Visual Studio Codeでコード補完を無効にするには:
- エディターの右下隅で、 Disable watsonx Code Assistant Completions
アイコンをクリックする。
- watsonx Code AssistantCompletions を有効にする」アイコンをもう一度クリックすると、補完機能を再度有効にすることができます。
Eclipse IDEでコード補完を無効にするには:
- エディター・ツールバーで、「Disablewatsonx Code AssistantCompletions」アイコンをクリックします。
- watsonx Code AssistantCompletions を有効にする」アイコンをもう一度クリックすると、補完機能を再度有効にすることができます。
コードサジェスト生成のベストプラクティス
最高の結果を得るために、これらのヒントを活用してください。
長いコードブロックにはチャットを使用してください。 改良と定型コードには、エディタ内でのコード生成を使用します。
チャットを利用する
- 授業全体のアウトラインを作成する
- メソッドを詳細に指定する
- より多くの指示(例えば、名前の変更や置換)を使って、提案されたコードを洗練させる
エディター内のコード生成を使って
- 入力し始めたコード行を完成させる
- ゲッターやセッターのような定型コードを自動的に作成する
- 1行のコメントで記述できるメソッドとコードを作成する
Comment-to-code:指示ではなく、説明的なコメントを使用する
エディターでcomment-to-codeを使うときは、自分が書いたコードにコメントを書くのと同じように、意図した動作を説明するコメントを書いてください。 例えば、'//return even numbers from an arraylistまたは '//method that returns even numbers from an arraylist を使用する。
//write a method that returns even numbers from an arraylist のような指示としてコメントを書かないこと。 Watsonx Code Assistant は、典型的な記述的コメントが多く含まれるデータに対してコードを完成させるように訓練されたモデルを使用しているため、このようなタイプのコメントほど良い結果が得られます。
エディタ内のコード生成に使用されるコンテキスト
コード生成の重要な要素はコンテキスト、つまりモデルに渡す周囲のコードだ。 エディター内でのコード生成には、 watsonx Code Assistantを使う:
- 生成がトリガーされる行の前の20行のコード。
- 生成がトリガーされる行の後の20行のコード。
- 生成のトリガーとなる現在のファイルの先頭から200行まで。
- 生成がトリガーされた行を囲むコードに類似したコードスニペットを5つまで。 これらのスニペットは、現在のファイルと同じプログラミング言語で開いた、過去10個のファイルから取られている。
エディター内コード生成の結果を改善する:
- ワークスペースで、watsonx Code Assistantに知らせたいコードのあるファイルを開きます。 Watsonx Code Assistant は、これらのファイルの中から、補完のトリガーとなる場所と似たようなコード、例えば、似たようなクラスや変数を使うメソッドを見つけようとし、そのコードをコンテキストとしてモデルに送ります。
- または、 watsonx Code Assistant チャットを使用して最初のアウトラインを作成し、結果をワークスペースのファイルにコピーしてから、エディター内でコード生成を続行します。 ファイル数がゼロか、ほとんど空の状態から始める場合は、エディター内でのコード生成は使わないこと。