终端聊天是一项实验性功能,可将 Windows 终端 Canary 与首选的 AI 服务集成。
将终端聊天连接到 AI 服务提供商(GitHub Copilot、Azure OpenAI 或 OpenAI)时,可以在保持终端上下文时询问特定于你使用的 shell 的问题(PowerShell、CMD、WSL Ubuntu、Azure Cloud Shell 等)。
终端聊天可以:
- 提供命令语法和说明
- 说明命令行错误消息
- 将代码建议发送到命令行文本编辑器
终端聊天不包括其自己的大型语言模型。 目前,此实验功能仅在 Windows 终端 Canary 中提供,并支持 GitHub Copilot、 Azure OpenAI 服务和OpenAI。
终端聊天仅在聊天中输入消息时与所选 AI 服务通信。 用户活动 shell 的聊天历史和名称也会被追加到发送给 AI 服务的消息中。 终端会话结束后,Windows 终端不会保存聊天历史记录。
先决条件
此实验功能仅在 Windows 终端 Canary 中可用。
需要 AI 服务提供商订阅。 目前支持 GitHub Copilot、Azure OpenAI 和 OpenAI。
在终端聊天中设置服务提供商
若要使用终端聊天,需要连接 GitHub Copilot 或将 Azure OpenAI 或 OpenAI 终结点添加到终端聊天设置。
打开Windows 终端,然后从顶部菜单栏最右侧的下拉菜单中选择“设置”。
选择 终端聊天(实验) 选项卡以显示服务提供商配置设置。
选择服务提供程序。 若要使用终端聊天,需要订阅以下 AI 服务提供商之一。 需要在服务提供商设置中设置和验证 AI 服务。 请参阅以下步骤来激活首选的 AI 服务提供商。
AI 服务提供商
GitHub Copilot:在服务提供商下,选择 GitHub Copilot 并通过 GitHub 进行身份验证以登录到 GitHub。 选中 “设置为活动提供程序” ,将 GitHub Copilot 设置为活动服务提供商。
若要将 GitHub Copilot 与终端聊天连接,必须在个人帐户中拥有 GitHub Copilot 的活动订阅,或者需要由组织分配席位。 可以在个人帐户注册 GitHub Copilot 免费试用版,以评估 GitHub Copilot。
注意
如果可以通过组织访问 GitHub Copilot,则如果组织所有者在 CLI 中禁用 GitHub Copilot,则无法使用 GitHub Copilot。 请参阅“管理组织中 Copilot 的策略”。
有关如何将 GitHub Copilot 负责任地与Windows 终端配合使用的详细信息,请参阅“在 Windows 终端 中负责任地使用 GitHub Copilot”。
Azure OpenAI:在“服务提供商”下,选择“Azure OpenAI”,输入终结点 URL 和密钥,选择“存储和保存”。
若要获取 Azure OpenAI 服务终结点和密钥,需要创建和部署 Azure OpenAI 服务资源。
需要使用 gpt-35-turbo 模型并确保为部署启用了 越狱内容筛选器 。
创建资源和部署模型后,可以通过导航到 Azure OpenAI Studio 中的聊天操场并选择“聊天会话”部分中的“查看代码”来查找终结点和 API 密钥。 弹出对话框提供可在终端聊天服务提供商设置中使用的终结点 URL 和密钥。
OpenAI:在“服务提供商”下,选择“OpenAI”,输入终结点 URL 和密钥,选择“存储和保存”。
若要获取 OpenAI 终结点和密钥,请参阅 OpenAI 文档。
OpenAI 由第三方提供,而不是Microsoft。 在终端聊天中发送消息时,每个会话的终端聊天历史记录和活动 shell 配置文件的名称将发送到第三方 AI 服务供 OpenAI 使用。 OpenAI 的使用受相关第三方条款、条件和隐私声明的约束。
使用终端聊天的示例
以下示例演示了一些可能考虑使用终端聊天的方法。
命令建议:请求要使用的命令。 终端聊天在提示发送后将活动 shell 的名称添加到提示符中。 例如,如果使用 PowerShell 并询问“如何创建新目录?”,则响应可能是
md。 如果将 Ubuntu (Linux) 命令行与 WSL 配合使用,则响应可能是mkdir。 单击建议将其复制到终端的输入行。 此操作不会自动运行这些建议。翻译命令:使用终端聊天“翻译”命令。 例如,您可以询问“PowerShell 中的
touch是什么?”或“我如何在 PowerShell 中touch?”,以获取New-Item的建议,这是一条等效于基于 Linux 和 Unix 的touch命令的 PowerShell 命令,用于创建新文件。解释错误:如果在命令行中收到不熟悉的错误响应,请将其复制并粘贴到终端聊天中,并询问错误代码的说明以及如何修复此错误。 例如,“如何实现修复
Error: getaddrinfo ENOTFOUND?”将代码建议发送到命令行文本编辑器:如果在 WSL 中使用命令行文本编辑器(如
nano或vi),则可以要求终端聊天生成代码,并通过选择“复制”按钮将代码建议发送到编辑器。查找和描述 PowerShell cmdlet:cmdlet(发音的命令-let)是用于在 PowerShell 中执行特定函数的轻型脚本命令。 终端聊天可以帮助你找到可能有用的 cmdlet,并解释它们完成的任务。 例如,“查找 cmdlet 以显示活动进程列表”的结果是
Get-Process。 或“说明Get-ChildItemcmdlet”描述该 cmdlet 用于检索指定位置内的项列表。
特定于终端的上下文
终端聊天采用活动 shell 的名称,并将该名称作为附加上下文发送到 AI 服务,以获取有关活动 shell 的更具针对性的建议。
此功能意味着终端聊天可以识别用户的活动 shell 是命令提示符还是 PowerShell。
将密钥绑定分配给终端聊天
在 Windows 终端 设置 的 动作 选项卡中将终端聊天设置为键绑定。 通过选择 “+ 添加新”来添加新键绑定,然后从下拉列表中选择“ 切换终端聊天 ”,为终端聊天功能添加新的键绑定作。
保存这些更改后,新键绑定也会显示在下拉菜单中。
组策略
可以通过 启用的语言模型/AI 提供程序 策略禁用终端聊天使用的语言模型和 AI 服务。 还可以使用同一策略禁用终端聊天功能。 有关详细信息,请参阅 “组策略”页。