4.3. 创建任务建议
Red Hat Ansible Lightspeed 通过 Ansible VS Code 扩展集成到 Visual Studio (VS) Code 中。您可以使用 Ansible VS Code 扩展为任务意图请求代码建议。
您可以从 Ansible VS Code 扩展执行以下任务:
使用自然语言提示创建单任务或多任务请求
创建单个任务提示
在 Ansible 文件中新任务行的
- name:key 中编写您的任务描述。例如,若要自动执行安装 PostgreSQL 服务器的任务,您可以输入 prompt- name: Install postgresql-server。创建多任务提示
将光标放在 Ansible YAML 文件中的新行中,并使用 Pound 键启动您的提示(#)。
编写任务的描述,使用 Ampersand 符号(&)分隔每个提示。例如,要自动执行安装 PostgreSQL 服务器的多任务并运行初始 PostgreSQL setup 命令,您可以输入提示
# Install postgresql-server 并运行 postgresql-setup 命令。Ansible Lightspeed 服务读取文本,与 IBM watsonx Code Assistant 模型交互,并根据您的自然语言提示生成 Ansible 任务建议。
注意目前,Red Hat Ansible Lightspeed 仅支持英语语言的用户提示。但是,有些情况下,用于培训 IBM watsonx Code Assistant 模型的培训数据包括非英语语言。在这种情况下,模型可以为同一非英语语言的提示生成代码建议,但生成的代码建议可能并不准确。
查看内容源匹配结果
对于每个生成的代码建议,Red Hat Ansible Lightspeed 会列出内容源匹配,包括潜在源、内容作者和相关许可证等详情。您可以使用这些数据深入了解用于生成代码建议的潜在培训数据源。
对 Ansible Lightspeed 服务提供反馈
Ansible Lightspeed 服务了解您的机构模式,并改进代码建议体验。您可以提供反馈,了解生成的代码建议是否适合您的任务意图。这个反馈可让带有 IBM watsonx Code Assistant 的 Red Hat Ansible Lightspeed 改进其建议质量。
4.3.1. 改进推荐指导的最佳实践 复制链接链接已复制到粘贴板!
按照以下步骤提高质量代码建议的可能性。
- 确保您的 YAML 文件已正确格式化。详情请参阅 Ansible YAML 语法指南。
避免在单个 playbook 文件中切换上下文。
Ansible Lightspeed 服务尝试将早期任务与活跃建议关联,在光标位置用作模型的上下文之前,该文件的整个内容。如果之前的任务与您的提示无关,则 VS 代码提供内联建议而不是代码建议。
对自然语言提示进行重新传输,以获取与您的任务意图匹配的代码建议。
如果您获得一个与任务名称意图不匹配的建议,那么请重新输入您的提示,以提供有关所需内容的更多信息,从而可以改进结果。
使用描述性提示并提供附加内容来提高代码建议。
在生成代码建议时,Red Hat Ansible Lightspeed 会读取完整的 Ansible YAML 文件。使用描述性提示和具有与所需任务相关的其他 YAML 文件内容提高了代码建议。例如,您可以添加前面的 Ansible 任务和适当的 playbook 和变量名称,以改进代码建议。
4.3.2. 创建单任务建议 复制链接链接已复制到粘贴板!
您可以通过在 Ansible VS Code 扩展中输入自然语言提示来请求单个任务的代码建议。例如,若要自动执行安装 PostgreSQL 服务器的任务,您可以输入 prompt - 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 扩展。
流程
- 使用您的红帽帐户登录 VS Code。
创建新的 YAML 文件或使用现有的 YAML 文件:
创建 YAML 文件:
-
选择
。 - 从屏幕右下角,单击 Plain Text,然后在语言模式中选择 Ansible。
-
将文件保存为 YAML 文件格式扩展名(
.yml或.yaml)。
-
选择
使用现有的 YAML 文件:
在屏幕右下角,单击现有语言模式,然后在语言模式设置中选择 Ansible。
注意如果您没有在 VS Code 编辑器中看到语言模式 部分,请从 Command swig 中选择
。
验证您在 VS Code 右下角的状态栏上看到 Lightspeed 的条目。
如果 Ansible 已选为所需的语言,但没有显示 Lightspeed 条目,请重新选择 Ansible 作为语言模式。下图显示了 VS Code 状态栏上的 Lightspeed 和 Ansible 条目。
图 4.2. Ansible 和 Lightspeed 设置为所选语言模式
可选:如果看到有关缺少 Ansible lint 的错误消息,您可以安装缺少的模块或禁用它。执行以下任务之一:
- 安装 Ansible lint:有关安装信息,请参阅 Ansible Lint 文档中的安装部分。https://ansible.readthedocs.io/projects/lint/installing/
禁用 Ansible lint:
-
在 Activity 栏中,点 Extensions 图标
。
- 在 Installed extensions 列表中,选择 Ansible。
- 在 Ansible 扩展页面中,单击 Settings 图标并选择 Extension Settings。
- 清除 Ansible criu Validation criu Lint: Enabled 复选框。
-
在 Activity 栏中,点 Extensions 图标
创建 playbook 或使用现有的 playbook。
如需更多信息,请参阅开始使用 playbook 指南。
在 playbook 中,提供以下信息来请求单个任务的代码建议:
-
通过在正确的缩进上启动带有
- name:的新行来添加新的 Ansible 任务。 -
在任务描述 after
- name:在同一行中添加详细的自然语言提示。例如,您可以指定以下单任务提示:- name: Install postgresql-server 在任务描述后直接按 Enter 键。将光标保留在文件中的同一位置,并等待代码建议结果填充。
Ansible Lightspeed 服务参与,它开始为单个任务生成代码建议。
重要Ansible Lightspeed 服务每个任务需要 5 秒时间来填充代码建议。如果您使用多任务提示,Ansible Lightspeed 服务需要更长的时间(任务次数 5 秒)来填充结果。不要在生成代码建议时移动光标或按任意键。如果您更改了光标位置或按任意键,Ansible VS Code 扩展会取消请求,Ansible Lightspeed 服务不会处理您的请求。
当 Ansible Lightspeed 服务参与时,会在屏幕右下角显示 Lightspeed 处理状态指示正在生成您的代码建议。
-
通过在正确的缩进上启动带有
查看您的代码建议,并确保建议与您的任务意图匹配。
下图显示了 Ansible Lightspeed 服务为单一任务生成的代码建议,即 Install postgresql-server :
接受或拒绝代码建议:
- 要接受代码建议,请按 Tab。
要拒绝代码建议,请按 Esc。
注意如果拒绝建议,您可以修改提示并再次查看生成的代码建议,以匹配您的任务意图。
在 ANSIBLE: LIGHTSPEED TRAINING MATCHES 选项卡中,查看内容源匹配结果。
下图显示了在现有 Ansible Galaxy 内容中找到的培训匹配,用于安装 postgresql-server 的任务提示:
- 点 Save 在 Ansible YAML 文件中保存代码建议更改。
4.3.3. 创建多任务建议 复制链接链接已复制到粘贴板!
您可以通过在 Ansible VS Code 扩展中输入一系列自然语言任务提示来请求多任务代码建议。在 YAML 文件中,使用 pound 符号(disaster)启动您的提示,并使用 符号(&)分隔每个提示。
多任务提示示例
Install postgresql-server & run postgresql-setup command
# 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
# 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 扩展。
流程
- 使用您的红帽帐户登录 VS Code。
创建新的 YAML 文件或使用现有的 YAML 文件。
创建 YAML 文件:
-
选择
。 - 从屏幕右下角,单击 Plain Text,然后在语言模式中选择 Ansible。
-
将文件保存为 YAML 文件格式扩展名(
.yml或.yaml)。
-
选择
使用现有的 YAML 文件:
在屏幕右下角,单击现有语言模式,然后在语言模式设置中选择 Ansible。
注意如果您没有在 VS Code 编辑器中看到语言模式 部分,请从 Command swig 中选择
。
验证您在 VS Code 右下角的状态栏上看到 Lightspeed 的条目。
如果 Ansible 已选为所需的语言,但没有显示 Lightspeed 条目,请重新选择 Ansible 作为语言模式。下图显示了 VS Code 状态栏上的 Lightspeed 条目。
图 4.3. Ansible 和 Lightspeed 设置为所选语言模式
可选:如果看到有关缺少 Ansible lint 的错误消息,您可以安装缺少的模块或禁用它。执行以下任务之一:
- 安装 Ansible lint:有关安装信息,请参阅 Ansible Lint 文档中的安装部分。https://ansible.readthedocs.io/projects/lint/installing/
禁用 Ansible lint:
-
在 Activity 栏中,点 Extensions 图标
。
- 在 Installed extensions 列表中,选择 Ansible。
- 在 Ansible 扩展页面中,单击 Settings 图标并选择 Extension Settings。
- 清除 Ansible criu Validation criu Lint: Enabled 复选框。
-
在 Activity 栏中,点 Extensions 图标
创建 playbook 或使用现有的 playbook。
如需更多信息,请参阅开始使用 playbook 指南。
在 playbook 中,提供以下信息来请求多任务代码建议:
- 通过在正确的缩进中输入 pound 符号(TALM)来启动新的 YAML 文件注释。
按顺序添加详细的自然语言提示,通过使用 符号(&)分隔每个任务。
多任务提示示例
Install postgresql-server & run postgresql-setup command
# Install postgresql-server & run postgresql-setup commandCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为提高可读性,请将您的多任务内联提示拆分到多行。要达到此目的,请用 符号(&)结束当前行,并使用哈希符号(#)启动下一行。
多任务提示通过多行分割的示例
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
# 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 tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在任务描述后直接按 Enter 键。将光标保留在文件中的同一位置,并等待代码建议结果填充。
Ansible Lightspeed 服务参与,它开始为多个任务生成代码建议。
重要Ansible Lightspeed 服务每个任务需要 5 秒时间来填充代码建议。如果您使用多任务提示,Ansible Lightspeed 服务需要更长的时间(任务次数 5 秒)来填充结果。不要在生成代码建议时移动光标或按任意键。如果您更改了光标位置或按任意键,Ansible VS Code 扩展会取消请求,Ansible Lightspeed 服务不会处理您的请求。
当 Ansible Lightspeed 服务参与时,会在屏幕右下角显示 Lightspeed 处理状态指示正在生成您的代码建议。
- 可选: 如果没有生成多任务代码建议,请从 VS Code 注销,并使用您的红帽帐户再次登录。
查看您的代码建议,并确保建议与您的任务意图匹配。
以下示例显示,Ansible Lightspeed 服务为 Install postgresql-server & run postgresql-setup 命令 生成的代码建议:
接受或拒绝代码建议:
- 要接受代码建议,请按 Tab。
要拒绝代码建议,请按 Esc。
注意如果拒绝建议,您可以修改提示并再次查看生成的代码建议,以匹配您的任务意图。
在 ANSIBLE: LIGHTSPEED TRAINING MATCHES 选项卡中,查看内容源匹配结果。
下图显示了在现有 Ansible Galaxy 内容中找到的培训匹配,用于任务提示 multitask 提示 Install postgresql-server & run postgresql-setup 命令 :
- 点 Save 在 Ansible YAML 文件中保存代码建议更改。
4.3.4. 查看 Ansible Lightspeed 培训匹配 复制链接链接已复制到粘贴板!
使用 IBM watsonx Code Assistant 机器学习模型的 Red Hat Ansible Lightspeed 对以下内容进行了培训:
- 现有公共或私有 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 命令中的 培训匹配:
图 4.4. 培训与多任务建议匹配
通过此功能,您可以找到与相关培训数据关联的开源许可证条款。但是,不太可能在微调代码时使用的培训数据或输出建议本身受到版权保护,或者输出重现了受版权许可条款控制的培训数据。
红帽在 IBM watsonx Code Assistant 中由 Red Hat Ansible Lightspeed 生成的建议中声明任何版权或其他相关的属性。