はじめに
PowerShellを使ってChatGPTから返したくなったので実験的に作ってみました。
良ければ参考にしてください。
API Keyを事前に取得しておく
API Keyについて
ChatGPTについて
Powershell 5
function PowerChatGPT(){ Param( $Prompt ,$apikey='apikey' ,$MaxToken = 300 ) $uri = 'https://api.openai.com/v1/completions' $headers = @{ 'Content-Type' = 'application/json' 'Authorization' = "Bearer $apikey" } $data = @{ 'model' = 'text-davinci-002' 'prompt' = $Prompt 'temperature' = 0.7 'max_tokens' = $MaxToken } $contenttype = 'application/json;charset=utf-8' $response = Invoke-RestMethod -Uri $uri -Headers $headers -Method 'POST' -Body ($data | ConvertTo-Json) -ContentType $contenttype $con=[System.Text.Encoding]::Utf8.GetString([System.Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($response.choices.text)) $con } PowerChatGPT -Prompt 'Powershellの便利な点を教えて'
結果が返って来ました。
Powershell5の場合は文字コードがSJISのため返ってきたテキストをコンバートさせる必要があります。
Powershell7
function PowerChatGPT(){ Param( $Prompt ,$apikey='apikey' ,$MaxToken = 300 ) $uri = 'https://api.openai.com/v1/completions' $headers = @{ 'Content-Type' = 'application/json' 'Authorization' = "Bearer $apikey" } $data = @{ 'model' = 'text-davinci-002' 'prompt' = $Prompt 'temperature' = 0.7 'max_tokens' = $MaxToken } $contenttype = 'application/json;charset=utf-8' $response = Invoke-RestMethod -Uri $uri -Headers $headers -Method 'POST' -Body ($data | ConvertTo-Json) -ContentType $contenttype $response.choices.text } PowerChatGPT -Prompt 'Powershellで便利なシーンを10例出してください' -MaxToken 1000
同様に結果が返ってきました。
コマンド登録したい場合は任意に設定してみてください。
実は登録したことがないので時間のある時に試してみたいと思います。