通过


终端聊天 (实验性)

终端聊天是一项实验性功能,可将 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?”,以获取New-Item的建议,这是一条等效于基于 Linux 和 Unix 的touch命令的 PowerShell 命令,用于创建新文件。

  • 解释错误:如果在命令行中收到不熟悉的错误响应,请将其复制并粘贴到终端聊天中,并询问错误代码的说明以及如何修复此错误。 例如,“如何实现修复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 服务。 还可以使用同一策略禁用终端聊天功能。 有关详细信息,请参阅 “组策略”页