终端聊天 (实验性)
终端聊天是一项新的实验性功能,可用于将 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 终端不会保存聊天历史记录。
若要使用终端聊天,需要连接 GitHub Copilot 或将 Azure OpenAI 或 OpenAI 终结点添加到终端聊天设置。
打开Windows 终端,然后从顶部菜单栏最右侧的下拉菜单中选择“设置”。
选择 终端聊天(实验) 选项卡以显示服务提供商配置设置。
选择服务提供程序。 使用以下 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
?”,以获取与基于 touch
Linux/Unix 的命令等效的 PowerShell 命令的建议New-Item
,用于创建新文件。
解释错误:如果在命令行中收到不熟悉的错误响应,请将其复制并粘贴到终端聊天中,并请求解释错误代码以及如何修复此错误。 例如,“如何实现修复Error: getaddrinfo ENOTFOUND
?”
向命令行文本编辑器发送代码建议:如果在 WSL 中使用命令行文本编辑器(如 nano
或 vi
),可以要求终端聊天生成代码,并通过单击“复制”按钮将代码建议发送到编辑器。
查找和描述 PowerShell cmdlet:cmdlet(发音的命令-let)是用于在 PowerShell 中执行特定函数的轻型脚本命令。 终端聊天可以帮助你查找可能有用的 cmdlet,并可以解释它们完成的任务。 例如,“查找显示活动进程的列表的 cmdlet”将导致 Get-Process
。 或者“说明 Get-ChildItem
cmdlet”将描述该 cmdlet 用于检索指定位置内项的列表。
终端聊天采用活动 shell 的名称,并将该名称作为附加上下文发送到 AI 服务,以获取有关活动 shell 的更具针对性的建议。
例如,这意味着终端聊天可以识别用户的活动 shell 是命令提示符还是 PowerShell。
可以在Windows 终端设置的“操作”选项卡中将终端聊天设置为键绑定。 通过选择“+ 添加新”,然后从下拉列表中选择“切换终端聊天”,为终端聊天功能添加新的键绑定操作来添加新的键绑定操作。
保存这些更改后,新键绑定也会反映在下拉菜单中。
可以通过启用的语言模型/AI 提供程序策略禁用终端聊天使用的语言模型和 AI 服务。
还可以使用相同的策略禁用终端聊天功能。
若要了解详细信息,请参阅 “组策略”页。