最近chatgpt非常火爆,获得超高曝光度的同时,也让大家对ai和ai工具有了新的认识。关于chatgpt,可以参考这篇文章。
今天主要推荐一个可以与powershell集成的ai工具,其后端也是openai的服务,可以有效提高工作效率。
PowerShellAI
安装
打开powershell
,运行:
Install-Module -Name PowerShellAI
这里可能会遇到找不到模块提供者的问题:
Install-Package: Unable to find module providers (PowerShellGet).
可以参考这篇文章解决。
安装成功后,从 https://beta.openai.com/account/api-keys 创建和获取OpenAI API密钥,然后设置$env:OpenAIKey
环境变量:
# 临时设置,仅对当前会话有效
$env:OpenAIKey="你的OpenAI API密钥"# 永久设置
[Environment]::SetEnvironmentVariable('OpenAIKey', '你的OpenAI API密钥', 'User')
这样就可以愉快地玩耍了。
使用
目前支持以下命令:
Disable-AIShortCutKey
- 禁用生成文本的快捷键ctrl+g
Enable-AIShortCutKey
- 使能ctrl+g
快捷键Get-GPT3Completion
- 从OpenAI GPT-3 API获取自动生成的文本Get-DalleImage
- 从OpenAI DALL-E API获取自动生成的图片ai
- 实验性的可以用于管道的ai功能copilot
- 生成代码提示,并询问是否运行Set-DalleImageAsWallpaper
- 获取图片后设为壁纸
示例
Get-GPT3Completion
可以使用别名gpt
快速演示:
New PowerShell Module: PowerShellAI
命令行中使用快捷键:
Using PowerShell with OpenAI GPT in the console with a shortcut key
ai
命令:
PowerShell AI - new ai function
结对编程:
PowerShell AI - copilot at the command line
生成excel表格:
New-Spreadsheet - PowerShell + ChatGPT + Excel
- 以
json
格式列出行星名
❯ Get-GPT3Completion "list of planets only names as json"["Mercury","Venus","Earth","Mars","Jupiter","Saturn","Uranus","Neptune"
]
xml
❯ Get-GPT3Completion "list of planets only names as xml"<?xml version="1.0" encoding="UTF-8"?>
<planets><planet>Mercury</planet><planet>Venus</planet><planet>Earth</planet><planet>Mars</planet><planet>Jupiter</planet><planet>Saturn</planet><planet>Uranus</planet><planet>Neptune</planet>
</planets>
markdown
❯ Get-GPT3Completion "first 5 US presidents and terms as markdown table"| President | Term |
|----------|------|
| George Washington | 1789-1797 |
| John Adams | 1797-1801 |
| Thomas Jefferson | 1801-1809 |
| James Madison | 1809-1817 |
| James Monroe | 1817-1825 |
复制到当前文章的效果:
President | Term |
---|---|
George Washington | 1789-1797 |
John Adams | 1797-1801 |
Thomas Jefferson | 1801-1809 |
James Madison | 1809-1817 |
James Monroe | 1817-1825 |
ai
命令
ai
命令支持piping和prompting,这对将不同命令串起来非常有用:
❯ ai "list of planets only names as json" | ai 'convert to xml' | ai 'convert to powershell'[xml]$xml = @"
<?xml version="1.0" encoding="UTF-8"?>
<Planets><Planet>Mercury</Planet><Planet>Venus</Planet><Planet>Earth</Planet><Planet>Mars</Planet><Planet>Jupiter</Planet><Planet>Saturn</Planet><Planet>Uranus</Planet><Planet>Neptune</Planet>
</Planets>
"@$xml.Planets.Planet
与git
一起使用:
❯ git status | ai "create a detailed git message"Commit message:
Update posts related to STM32 and PowerShell, add two new posts about PowerShell and AI.
公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。