- Added
Get-OpenAIEmbeddingto get a vector representation of a given input
- Upgraded
copilotandexplainto useWrite-CodeBlockfir syntax highlighting - Added call to
Invoke-Formatterto prettify the code
- Fixed
Invalid JSON- https://github.com/dfinke/PowerShellAI/issues/119
Thank you @ShaydeNofziger for the contribution!
- Update .gitignore
- Update help comment
Also, I:
- Added
kqlto validate set forNBCopilot
Thanks Shaun, great work!
AI Function Builderby Shaun Lawrie- AIFunctionBuilder takes a prompt and generates a PowerShell function which is validated for syntax and logical issues so you don't have to do the boring work.
- https://github.com/dfinke/PowerShellAI/tree/master/CommunityContributions/06-AIFunctionBuilder#readme
Notebook Copilotby Doug Finke- This PowerShell function allows you to use ChatGPT directly from your Interactive Notebook.
- https://github.com/dfinke/PowerShellAI/tree/master/CommunityContributions/07-NotebookCopilot#readme
Devcontainercreated for easier use in Codespaces Doug Finke
- Enables chat conversations with either the public OpenAI or a private Azure OpenAI Service.
Community Contributions:
- Thank you Svyatoslav Pidgorny
-
Copilot prompt change, adding clipboard
PS D:\> copilot 'cmds to find k8 pods' ╔═════════════════════════╗ ║Q: cmds to find k8 pods ║ ║═════════════════════════║ ║1: kubectl get pods ║ ╚═════════════════════════╝ Run the code? You can also choose additional actions [Y] Yes [E] Explain [C] Copy [N] No [?] Help (default is "N"):
-
- @SP3269 made their first contribution in https://github.com/dfinke/PowerShellAI/pull/105
- Added support for GPT-4, conversation-in and message-out
- Saves the conversation to a file in each invocation
- Supports changing chat options like the model like
gpt-4orgpt-3.5-turboand more - List sessions that have been saved, plus you can get their content
Note: This defaults to using gpt-4. You can set the model to chat with:
Get-ChatSessionOptions
Set-ChatSessionOption -model gpt-3.5-turbo
Get-ChatSessionOptionsGetting started example:
New-Chat 'respond only in json'
chat 'what are the capitals of Spain, France, and the USA?'{
"Spain": "Madrid",
"France": "Paris",
"USA": "Washington, D.C."
}- Copilot can now
explainthe code it generates. - Thank you Kris Borowinski for fixing the Pester tests.
- Thank you to Matt Cargile for suggestions on improving the prompt for
Invoke-AIExplainand reviewing the updates.- Prompt now includes
- 'You are running powershell on'
- $PSVersionTable.Platform
- Prompt now includes
- Added $max_tokens to
Invoke-AIExplain - Added
$IdEnd. You can ask for the explanation of a range of history itemsInvoke-AIExplain -Id 20 -IdEnd 23
- Added
Invoke-AIExplain- The function utilizes the OpenAI GPT-3 API to offer explanations for the most recently run command, and more. - Added alias
explaintoInvoke-AIExplain
-
Added proof of concept to work with the new Chat REST API
- There is more to it. Requires refactoring and tests
- Proving to be very useful
new-chat 'you are a powershell bot' chat 'even numbers btwn 1 and 10' chat 'odd numbers'
- Thank you Kris Borowinski for re-working Get-OpenAIKey to Get-LocalOpenAIKey and creating/updating tests
- For
Get-OpenAIUsage- Default start and end date
- Added switch $OnlyLineItems
Thank you to the community for your contributions!
-
- Update README with fixes and clarifications
-
Usage by @stefanstranger in https://github.com/dfinke/PowerShellAI/pull/69
-
- Added functions to get OpenAI Dashboard information and more
- Demos in the Polyglot Interactive Notebook
Thank you to the community for your contributions!
- Kris Borowinski
- On PS 6 and higher use Invoke-RestMethod with secure Token
- Shaun Lawrie
- Add error insights by Shaun Lawrie
- James Brundage
- PowerShellAI enhancement for short cut key by @StartAutomating
- Adam Bacon
- Add functions and prompts for use with ChatGPT
- Thank you to Pieter Jan Geutjens
Get-OpenAIEditworks both with pipeline input as well as-InputTextparam
- Added
New-Spreadsheet- Creates a new Excel spreadsheet from a prompt - Moved [CmdletBinding()] above param. Synopsis was not displaying.
- Changed the default model for
Get-OpenAIEdittocode-davinci-edit-001 - Thank you Skatterbrainz
- Added Git-Examples.ipynb
- Updated
Get-OpenAIEdit.ps1to return alltext
- Thank you Skatterbrainz
- Thank you Kris Borowinski
- Wired in A-Z ability to provide
OpenAIKeyvia secure string
- Wired in A-Z ability to provide
- Added
Get-OpenAIEdit. Given a prompt and an instruction, the model will return an edited version of the prompt. Thank you Skatterbrainz
- Added
-Method POSTtoGet-OpenAIModeration. Thank you Skatterbrainz
- Change
-temperaturedefault to 0
- Thank you to Pieter Jan Geutjens
- Added
-temperatureparam toaiandcopilot - Changed the input type from
inttodecimal - Changed the range on temperature from [0,1] to [0,2] according to the API documentation
- Added
- Refactored to use
Invoke-OpenAIAPIfunction. This function is used by all the other functions in the module. This allows for a single place to update the API URL and the API Key. - Add
Get-*functions for OpenAI URIs - Took the function suggestions from Skatterbrainz and updated with
Invoke-OpenAIAPIthe refactor: https://github.com/dfinke/PowerShellAI/pull/30 - Refactored
Get-DalleImageto useInvoke-OpenAIAPI - Refactored
Get-GPT3Completionto useInvoke-OpenAIAPI
- Check if
$result.choicesis not null before trying to access it. Thank you StartAutomating - Examples added to comment based help in
copilot. Thank you Wes Stahler - Add
New-Spreadsheetscript. Creates a new spreadsheet from a prompt. Check out the code - Added
ConvertFrom-GPTMarkdownTablefunction. Converts a markdown table to a PowerShell object. Check out the code - Unit tests started
- GitHub Actions in place to run CI/CD
- Added
Get-DalleImage: Given a description, the model will return an image - Added
Set-DalleImageAsWallpaper: Given a description, the model will return an image form DALL-E and set it as the wallpaper
- Added -max_tokens parameter to the
aifunction
-
Added
copilot- Makes the request to GPT, parses the response and displays it in a box and then prompts the user to run the code or not. Check the README.md for me details. -
Added
aifunction:-
Experimental function enables piping
ai "list of planets only names as json"[ "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune" ]ai "list of planets only names as json" | ai 'convert to 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>
-
- Thank you Martyn Keigher for your contributions!
-
Added
gptas an alias:# Get-GPT3Completion "list of planets only names as json" gpt "list of planets only names as json" ``
-
Added validation for:
temperature,max_tokens,top_p,frequency_penalty,presence_penalty
-