使用英语阅读

通过


终端聊天 (实验性)

终端聊天是一项新的实验性功能,可用于将 Windows 终端 Canary 与首选 AI 服务集成

将终端聊天连接到 AI 服务提供商(GitHub Copilot、Azure OpenAI 或 OpenAI)后,可以在保持终端上下文时询问特定于你使用的 shell 的问题(PowerShell、CMD、WSL Ubuntu、Azure Cloud Shell 等)。

终端聊天可以:

  • 提供命令语法和说明
  • 说明命令行错误消息
  • 将代码建议发送到命令行文本编辑器

终端聊天不附带其自己的大型语言模型。 目前,此实验功能仅在 Windows 终端 Canary 中提供,仅支持 GitHub CopilotAzure OpenAI 服务和 OpenAI

终端聊天仅在聊天中输入消息时与所选 AI 服务通信。 用户的活动 shell 的聊天历史记录和名称也会追加到向 AI 服务发送的消息中。 终端会话结束后,Windows 终端不会保存聊天历史记录。

终端聊天用户界面的屏幕截图

先决条件

  • 此实验功能仅在 Windows 终端 Canary可用。

  • 需要 AI 服务提供商订阅。 目前支持 GitHub Copilot、Azure OpenAI 和 OpenAI。

在终端聊天中设置服务提供商

若要使用终端聊天,需要连接 GitHub Copilot 或将 Azure OpenAI 或 OpenAI 终结点添加到终端聊天设置。

  1. 打开Windows 终端,然后从顶部菜单栏最右侧的下拉菜单中选择“设置”。

  2. 选择 终端聊天(实验) 选项卡以显示服务提供商配置设置。

  3. 选择服务提供程序。 使用以下 AI 服务提供商之一的订阅需要使用终端聊天。 需要在服务提供商设置中设置和验证 AI 服务。 有关激活首选 AI 服务提供商的步骤,请参阅下文。

AI 服务提供商

GitHub Copilot:在服务提供商下,选择 GitHub Copilot 并通过 GitHub 进行身份验证以登录到 GitHub。 选中 “设置为活动提供程序 ”,将 GitHub Copilot 设置为活动服务提供商。

若要将 GitHub Copilot 与终端聊天连接,必须在个人帐户中拥有 GitHub Copilot 的活动订阅,或者需要由组织分配席位。 可以在个人帐户注册 GitHub Copilot 免费试用版,以评估 GitHub Copilot。

将 GitHub Copilot 连接到终端聊天并在终端聊天中提问的动画 GIF

备注

如果可以通过组织访问 GitHub Copilot,如果组织所有者已在 CLI 中禁用 GitHub Copilot,则无法使用 GitHub Copilot。 请参阅“管理组织中 Copilot 的策略”。

有关如何将 GitHub Copilot 负责任地与Windows 终端配合使用的详细信息,请参阅“在 Windows 终端 中负责任地使用 GitHub Copilot”。

Azure OpenAI:在“服务提供商”下,选择“Azure OpenAI,输入终结点 URL 和密钥,选择“存储和保存”。

Azure OpenAI 终端聊天设置的屏幕截图

要获取 Azure OpenAI 服务终结点和密钥,需要创建和部署 Azure OpenAI 服务资源。

需要使用 gpt-35-turbo 模型并确保 为部署启用了越狱内容筛选器

创建资源和部署模型后,可以通过导航到 Azure OpenAI Studio 中的聊天操场并选择“聊天会话”部分中的“查看代码”来查找终结点和 API 密钥。 弹出对话框将提供可在终端聊天服务提供商设置中使用的终结点 URL 和密钥。

OpenAI:在“服务提供商”下,选择“OpenAI,输入终结点 URL 和密钥,选择“存储和保存”。

若要获取 OpenAI 终结点和密钥,需要参考 OpenAI 文档。

OpenAI 由第三方提供,而不是Microsoft。 在终端聊天中发送消息时,每个会话的终端聊天历史记录和活动 shell 配置文件的名称将发送到第三方 AI 服务供 OpenAI 使用。 OpenAI 的使用受相关第三方条款、条件和隐私声明的约束。

使用终端聊天的示例

以下示例演示了一些可能考虑使用终端聊天的方法。

在终端聊天中提问的动画 GIF

  • 命令建议:请求要使用的命令。 终端聊天还会在发送后将活动 shell 的名称添加到提示符,因此,如果使用 PowerShell 并询问“如何实现生成新目录?”,响应md可能是,但如果使用的是 Ubuntu(Linux) 命令行和 WSL,则响应可能是mkdir。 单击建议会将它复制到终端的输入行。 此操作不会自动运行面向用户的建议。

  • 翻译命令:终端聊天还可用于“翻译”命令。 例如,可以询问“PowerShell 中的哪些touch内容?”或“在 PowerShell 中如何实现touch?”,以获取与基于 touch Linux/Unix 的命令等效的 PowerShell 命令的建议New-Item,用于创建新文件。

  • 解释错误:如果在命令行中收到不熟悉的错误响应,请将其复制并粘贴到终端聊天中,并请求解释错误代码以及如何修复此错误。 例如,“如何实现修复Error: getaddrinfo ENOTFOUND?”

  • 向命令行文本编辑器发送代码建议:如果在 WSL 中使用命令行文本编辑器(如 nanovi),可以要求终端聊天生成代码,并通过单击“复制”按钮将代码建议发送到编辑器。

  • 查找和描述 PowerShell cmdlet:cmdlet(发音的命令-let)是用于在 PowerShell 中执行特定函数的轻型脚本命令。 终端聊天可以帮助你查找可能有用的 cmdlet,并可以解释它们完成的任务。 例如,“查找显示活动进程的列表的 cmdlet”将导致 Get-Process。 或者“说明 Get-ChildItem cmdlet”将描述该 cmdlet 用于检索指定位置内项的列表。

特定于终端的上下文

终端聊天采用活动 shell 的名称,并将该名称作为附加上下文发送到 AI 服务,以获取有关活动 shell 的更具针对性的建议。

PowerShell 中的终端聊天

例如,这意味着终端聊天可以识别用户的活动 shell 是命令提示符还是 PowerShell。

命令提示符中的终端聊天

将密钥绑定分配给终端聊天

可以在Windows 终端设置“操作”选项卡中将终端聊天设置为键绑定。 通过选择“+ 添加新,然后从下拉列表中选择“切换终端聊天”,为终端聊天功能添加新的键绑定操作来添加新的键绑定操作。

保存这些更改后,新键绑定也会反映在下拉菜单中。

组策略

可以通过启用的语言模型/AI 提供程序策略禁用终端聊天使用的语言模型和 AI 服务。 还可以使用相同的策略禁用终端聊天功能。 若要了解详细信息,请参阅 “组策略”页