4.3. タスクの推奨事項の作成
Red Hat Ansible Lightspeed は、Ansible VS Code 拡張機能を介して Visual Studio (VS) Code に統合されます。Ansible VS Code 拡張機能を使用して、タスクの目的に応じたコードの推奨事項をリクエストできます。
Ansible VS Code 拡張機能から以下のタスクを実行できます。
自然言語プロンプトを使用してシングルタスクまたはマルチタスクのリクエストを作成する
単一のタスクプロンプトを作成する
Ansible ファイルの新しいタスク行の
- name:キーにタスクの説明を記述します。たとえば、PostgreSQL サーバーをインストールするタスクを自動化するには、- name: Install postgresql-serverのプロンプトを入力します。マルチタスクのプロンプトを作成します。
Ansible YAML ファイルの新しい行の正しいインデントにカーソルを置き、ポンドキー (#) でプロンプトを開始します。
アンパサンド記号 (&) を使用して各プロンプトを区切って、タスクの説明を記述します。たとえば、PostgreSQL サーバーのインストールと PostgreSQL の初期設定コマンドの実行というマルチタスクを自動化するには、
# Install postgresql-server & run postgresql-setup commandのプロンプトを入力できます。Ansible Lightspeed サービスはテキストを読み取り、IBM watsonx Code Assistant モデルと対話し、自然言語プロンプトに基づいて Ansible タスクの推奨事項を生成します。
注記現在、Red Hat Ansible Lightspeed は英語のユーザープロンプトのみをサポートしています。ただし、IBM watsonx Code Assistant モデルのトレーニングに使用されたトレーニングデータに英語以外の言語が含まれている場合があります。このようなシナリオでは、モデルは同じ英語以外の言語で行われたプロンプトに対してコードの推奨事項を生成できますが、生成されたコードの推奨事項は正確である場合もそうでない場合もあります。
コンテンツソースの一致結果を表示する
Red Hat Ansible Lightspeed は、生成された推奨コードごとに、候補となるソース、コンテンツ作成者、関連するライセンスなどの詳細を含む、一致するコンテンツソースをリストします。このデータを使用すると、コードの推奨事項の生成に使用されるトレーニングデータソースの洞察を得ることができます。
Ansible Lightspeed サービスに関するフィードバックの提供
Ansible Lightspeed サービスは、組織のパターンを学習し、時間の経過とともにコード推奨のエクスペリエンスを向上させます。生成されたコードの推奨事項がタスクの目的に適しているかどうか、フィードバックを提供できます。このフィードバックにより、Red Hat Ansible Lightspeed with IBM watsonx Code Assistant の提案の品質が向上します。
4.3.1. 推奨のガイダンスを改善するためのベストプラクティス リンクのコピーリンクがクリップボードにコピーされました!
高品質のコードが推奨される可能性を高めるには、次のガイドラインに従ってください。
- YAML ファイルが適切にフォーマットされていることを確認します。詳細は、Ansible YAML syntax guidelines を参照してください。
単一の Playbook ファイル内でコンテキストを切り替えることは避けてください。
Ansible Lightspeed サービスは、有効な推奨事項に、以前のタスクを関連付けようとし、カーソル位置より前のファイルの内容すべてがモデルによってコンテキストとして使用されます。以前のタスクがプロンプトと関係がない場合、VS コードはコードの推奨事項ではなくインラインの提案を提供します。
自然言語プロンプトを言い換えて、タスクの意図に合ったコードの推奨事項を取得します。
タスク名の意図と一致しない推奨事項が表示された場合は、プロンプトを言い換えて、必要な情報を詳細に提供すると、結果が改善される可能性があります。
説明的なプロンプトを使用し、コードの推奨事項を改善するために追加のコンテンツを提供します。
Red Hat Ansible Lightspeed は、コードの推奨事項を生成するときに、Ansible YAML ファイルをすべて読み取ります。記述プロンプトを使用し、目的のタスクに関連する追加の YAML ファイルコンテンツを使用すると、コードの推奨内容が向上します。たとえば、以前の Ansible タスクと適切な Playbook および変数名を追加して、コードの推奨事項を改善できます。
4.3.2. 単一タスクの推奨事項の作成 リンクのコピーリンクがクリップボードにコピーされました!
Ansible VS Code 拡張機能に自然言語プロンプトを入力することで、シングルタスクに関するコードの推奨事項をリクエストできます。たとえば、PostgreSQL サーバーをインストールするタスクを自動化するには、- name: Install postgresql-server のプロンプトを入力します。Ansible Lightspeed サービスはテキストを読み取り、IBM watsonx Code Assistant モデルと対話して、コードの推奨事項を生成します。
前提条件
次の いずれか の要件を満たしている。
- Red Hat Ansible Automation Platform と IBM watsonx Code Assistant の両方の試用版または有料サブスクリプションを組織で所有している。
- Red Hat Ansible Automation Platform の試用版または有料サブスクリプションと、Red Hat Ansible Lightspeed のトライアルアカウントを組織で所有している。
- Ansible VS Code 拡張機能をインストールして設定した。
手順
- Red Hat アカウントで VS Code にログインします。
新しい YAML ファイルを作成するか、既存の YAML ファイルを使用します。
YAML ファイルを作成します。
-
を選択します。 - 画面の右下で プレーンテキスト をクリックし、言語モードで Ansible を選択します。
-
ファイルを YAML ファイル形式拡張子 (
.ymlまたは.yaml) として保存します。
-
既存の YAML ファイルを使用します。
画面右下で、既存の言語モードをクリックし、言語モード設定で Ansible を選択します。
注記VS Code エディターに言語モードセクションが表示されない場合は、コマンドパレットから
を選択します。
VS Code の右下のステータスバーに Lightspeed のエントリーが表示されていることを確認します。
Ansible が目的の言語としてすでに選択されているにもかかわらず、Lightspeed エントリーが表示されない場合は、言語モードとして Ansible を再選択します。以下の図は、VS Code のステータスバーの Lightspeed と Ansible エントリーを示しています。
図4.2 選択した言語モードとしての Ansible と Lightspeed の設定
オプション: Ansible lint がないというエラーメッセージが表示された場合は、欠けているモジュールをインストールするか、無効にできます。以下のいずれかのタスクを実行します。
- Ansible lint のインストール: インストールの詳細は、Ansible Lint ドキュメントの インストール セクションを参照してください。
Ansible lint を無効にします。
-
Activity バーから Extensions アイコン
をクリックします。
- Installed 拡張機能リストから Ansible を選択します。
- Ansible 拡張機能ページで、Settings アイコンをクリックし、Extension Settings を選択します。
- Ansible › Validation › Lint: Enabled チェックボックスをオフにします。
-
Activity バーから Extensions アイコン
Playbook を作成するか、既存の Playbook を使用します。
詳細は、Playbook のスタートガイド ガイドを参照してください。
Playbook で次の情報を指定して、シングルタスクのコード推奨をリクエストします。
-
新しい Ansible タスクを追加するには、正しいインデントで
- name:を使用して新しい行を開始します。 -
タスクの説明の同じ行にある
- name:の後に、詳細な自然言語プロンプトを追加します。たとえば、- name: Install postgresql-serverのような単一のタスクプロンプトを指定できます。 タスクの説明の直後に Enter を押します。ファイル内の同じ場所にカーソルを置き、コードの推奨の事項に関する結果が表示されるまで待ちます。
Ansible Lightspeed サービスが稼働し、シングルタスクのコードに関する推奨事項の生成を開始します。
重要Ansible Lightspeed サービスでは、コードの推奨事項の生成にはタスクごとに約 5 秒かかります。マルチタスクプロンプトを使用している場合、Ansible Lightspeed サービスが結果を入力するのに少し時間がかかります (タスク数 × 5 秒)。コードの推奨事項の生成中は、カーソルを移動したりキーを押したりしないでください。カーソルの位置を変更するか、任意のキーを押すと、Ansible VS Code 拡張機能はリクエストをキャンセルし、Ansible Lightspeed サービスはリクエストを処理しません。
Ansible Lightspeed サービスを使用している場合、Lightspeed 処理ステータスのインジケーターが画面の右下に表示され、コードの推奨事項が生成されていることを示します。
-
新しい Ansible タスクを追加するには、正しいインデントで
コードの推奨事項を表示し、推奨事項がタスクの目的と一致していることを確認します。
次の図は、Ansible Lightspeed サービスがシングルタスク Install postgresql-server に関して生成したコードの推奨事項を示しています。
コードの推奨事項を受け入れるか、拒否します。
- コードの推奨事項を使用する場合は、Tab を押します。
コードの推奨事項を拒否するには、Esc を押します。
注記推奨事項を拒否した場合は、プロンプトを変更し、タスクの目的に合わせて生成されたコードの推奨事項をもう一度確認できます。
ANSIBLE: LIGHTSPEED TRAINING MATCHES タブで、コンテンツソースの一致結果を表示します。
次の図は、タスクプロンプト Install postgresql-server の既存の Ansible Galaxy コンテンツで見つかったトレーニングの一致結果を示します。
- Save をクリックして、コードの推奨事項に関する変更を Ansible YAML ファイルに保存します。
4.3.3. マルチタスクの推奨事項の作成 リンクのコピーリンクがクリップボードにコピーされました!
Ansible VS Code 拡張機能で一連の自然言語タスクプロンプトを入力することで、マルチタスクに対するコードの推奨事項をリクエストできます。YAML ファイルでは、プロンプトをポンド記号 (#) で開始し、アンパサンド記号 (&) を使用して各プロンプトを区切ります。
マルチタスクプロンプトの例
# Install postgresql-server & run postgresql-setup command
読みやすさを向上させるために、マルチタスクのインラインプロンプトを複数の行に分割できます。これを実現するには、現在の行をアンパサンド記号 (&) で終了し、次の行をハッシュ記号 (#) で開始します。
複数行に分割されたマルチタスクプロンプトの例
# Create a keypair called lightspeed-keypair & create a vpc & create vpc_id var &
# create a security group that allows SSH & create subnet with 10.0.1.0/24 cidr &
# create an internet gateway & create a route table
Ansible Lightspeed サービスはテキストを読み取り、IBM watsonx Code Assistant モデルと対話して、コードの推奨事項を生成します。
マルチタスクプロンプトを入力するときに、プロンプトに長い行がある場合、ansible-lint 設定に基づき、Ansible VS Code 拡張機能によって警告が表示されることがあります。この警告は読みやすさに関する軽微なエラーであり、推奨コードの出力の品質には影響しません。エラーを解決するには、エラーを無視するか、マルチタスクインラインプロンプトを複数の行に分割して修正します。
前提条件
次の いずれか の要件を満たしている。
- Red Hat Ansible Automation Platform と IBM watsonx Code Assistant の両方の試用版または有料サブスクリプションを組織で所有している。
- Red Hat Ansible Automation Platform の試用版または有料サブスクリプションと、Red Hat Ansible Lightspeed のトライアルアカウントを組織で所有している。
- Ansible VS Code 拡張機能をインストールして設定した。
手順
- Red Hat アカウントで VS Code にログインします。
新しい YAML ファイルを作成するか、既存の YAML ファイルを使用します。
YAML ファイルを作成します。
-
を選択します。 - 画面の右下で プレーンテキスト をクリックし、言語モードで Ansible を選択します。
-
ファイルを YAML ファイル形式拡張子 (
.ymlまたは.yaml) として保存します。
-
既存の YAML ファイルを使用します。
画面右下で、既存の言語モードをクリックし、言語モード設定で Ansible を選択します。
注記VS Code エディターに言語モードセクションが表示されない場合は、コマンドパレットから
を選択します。
VS Code の右下のステータスバーに Lightspeed のエントリーが表示されていることを確認します。
Ansible が目的の言語としてすでに選択されているにもかかわらず、Lightspeed エントリーが表示されない場合は、言語モードとして Ansible を再選択します。以下の図は、VS Code のステータスバーの Lightspeed エントリーを示しています。
図4.3 選択した言語モードとしての Ansible と Lightspeed の設定
オプション: Ansible lint がないというエラーメッセージが表示された場合は、欠けているモジュールをインストールするか、無効にできます。以下のいずれかのタスクを実行します。
- Ansible lint のインストール: インストールの詳細は、Ansible Lint ドキュメントの インストール セクションを参照してください。
Ansible lint を無効にします。
-
Activity バーから Extensions アイコン
をクリックします。
- Installed 拡張機能リストから Ansible を選択します。
- Ansible 拡張機能ページで、Settings アイコンをクリックし、Extension Settings を選択します。
- Ansible › Validation › Lint: Enabled チェックボックスをオフにします。
-
Activity バーから Extensions アイコン
Playbook を作成するか、既存の Playbook を使用します。
詳細は、Playbook のスタートガイド ガイドを参照してください。
Playbook で次の情報を入力して、マルチタスクに関するコードの推奨事項を要求します。
- 正しいインデント位置にポンド記号 (#) を入力して、新しい YAML ファイルのコメントを開始します。
アンパサンド記号 (&) を使用して各タスクを区切り、詳細な自然言語プロンプトを順番に追加します。
マルチタスクプロンプトの例
# Install postgresql-server & run postgresql-setup command読みやすさを向上させるには、マルチタスクのインラインプロンプトを複数の行に分割します。これを実現するには、現在の行をアンパサンド記号 (&) で終了し、次の行をハッシュ記号 (#) で開始します。
複数行に分割されたマルチタスクプロンプトの例
# Create a keypair called lightspeed-keypair & create a vpc & create vpc_id var & # create a security group that allows SSH & create subnet with 10.0.1.0/24 cidr & # create an internet gateway & create a route tableタスクの説明の直後に Enter を押します。ファイル内の同じ場所にカーソルを置き、コードの推奨の事項に関する結果が表示されるまで待ちます。
Ansible Lightspeed サービスが稼働し、複数のタスクに対するコードの推奨事項の生成を開始します。
重要Ansible Lightspeed サービスでは、コードの推奨事項の生成にはタスクごとに約 5 秒かかります。マルチタスクプロンプトを使用している場合、Ansible Lightspeed サービスが結果を入力するのに少し時間がかかります (タスク数 × 5 秒)。コードの推奨事項の生成中は、カーソルを移動したりキーを押したりしないでください。カーソルの位置を変更するか、任意のキーを押すと、Ansible VS Code 拡張機能はリクエストをキャンセルし、Ansible Lightspeed サービスはリクエストを処理しません。
Ansible Lightspeed サービスを使用している場合、Lightspeed 処理ステータスのインジケーターが画面の右下に表示され、コードの推奨事項が生成されていることを示します。
- オプション: マルチタスクコードの推奨事項が生成されない場合は、VS Code からログアウトし、Red Hat アカウントを使用して再度ログインします。
コードの推奨事項を表示し、推奨事項がタスクの目的と一致していることを確認します。
次の図は、マルチタスクプロンプト (Install postgresql-server & run postgresql-setup command:) に対して Ansible Lightspeed サービスによって生成されたコードの推奨事項を示しています。
コードの推奨事項を受け入れるか、拒否します。
- コードの推奨事項を使用する場合は、Tab を押します。
コードの推奨事項を拒否するには、Esc を押します。
注記推奨事項を拒否した場合は、プロンプトを変更し、タスクの目的に合わせて生成されたコードの推奨事項をもう一度確認できます。
ANSIBLE: LIGHTSPEED TRAINING MATCHES タブで、コンテンツソースの一致結果を表示します。
次の図は、マルチタスクプロンプト (Install postgresql-server & run postgresql-setup command) の既存の Ansible Galaxy コンテンツで一致したトレーニングの結果を示します。
- Save をクリックして、コードの推奨事項に関する変更を Ansible YAML ファイルに保存します。
4.3.4. Ansible Lightspeed トレーニングマッチの表示 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Lightspeed with IBM watsonx Code Assistant 機械学習モデルは、次のコンテンツでトレーニングされます。
- 既存のパブリックまたはプライベート Git リポジトリー
- Ansible Galaxy のコンテンツ
IBM watsonx Code Assistant の生成 AI テクノロジーと、モデルのトレーニングに使用された Ansible コンテンツの種類が原因で、生成したコードの推奨事項に寄与したトレーニングデータを特定できません。ただし、Ansible Lightspeed は、生成されたコードの推奨事項の取得元として考えられる内容を理解できるようにします。
Red Hat Ansible Lightspeed は、生成されたコードの推奨事項ごとに、候補となるソース、コンテンツ作成者、関連するライセンスなどの詳細を含む、一致するコンテンツソースをリストします。このデータを使用すると、コードの推奨事項の生成に使用されるトレーニングデータソースの洞察を得ることができます。
VS Code で自然言語プロンプトを入力し、生成されたコードの推奨事項を確認した後、ANSIBLE: LIGHTSPEED TRAINING MATCHES タブでコンテンツソースの一致を表示できます。
たとえば、次の図は、マルチタスクの推奨事項 (Install postgresql-server & run postgresql-setup command) のトレーニング検索結果を示しています。
図4.4 マルチタスクの推奨事項に関するトレーニングデータの一致結果
この機能を使用すると、関連するトレーニングデータに紐付けられているオープンソースのライセンス条項を確認できます。ただし、コードの微調整に使用されるトレーニングデータや出力の推奨自体が著作権で保護されている可能性、また、出力が著作権ライセンス条項で管理されているトレーニングデータを再現している可能性はほぼありません。
Red Hat は、Red Hat Ansible Lightspeed with IBM watsonx Code Assistant で生成された提案について、著作権またはその他の知的財産権を主張しません。