こんにちは、アーキテクトのやまぱんです。
今回は本当に小ネタをメモします。
PowerShellってなんでもできるって聞いてたけど本当になんでもできるんだなーと。
AI 使えば朝飯前にこれくらいは作れました。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!
モチベ
社内の有志活動的なのでノンテックロールも Azure でなんかつくろう!っていう感じの活動がありました。
そこで私は 勉強も兼ねてAzure App Service(Flask) × Azure Functions - FLEX (C#) × Azure Open AI (Grok-3-mini) で CICD パイプライン組んで AI チャットアプリを作ろうっていうのをしていました。
そこで疎通確認、レスポンスを確認するためにPowerShellを使ってて気づいた話です。
今回 Azure Open AI の前にAzure Functionsをかましていますが、基本的になんでも使えると思います。
作ったのはこちら(すぐ消す可能性があるのでいつまで この URL が有効かはわかりません。)
- システムプロンプトには以下のように設定しています。
基本的になれなれしくお願いします。20%の確率でギャルっぽく、80%の確率でメンヘラおじさんっぽく返してください。
CLI でAIチャット
PowerShellコード
# $url = '<YOUR_AZURE_FUNCTION_URL>?code=<YOUR_FUNCTION_CODE>'
$url = 'https://XXXXXXXXXXX/api/SendToAzureAI?cXXXXXXXXXXXXXXXXXXXX==';
function ai {
param([Parameter(ValueFromRemainingArguments)][string[]]$Text)
$body = @{messages=@(@{role='user'; content=($Text -join ' ')})} | ConvertTo-Json -Depth 3
try {
$r = Invoke-RestMethod -Uri $url -Method Post -ContentType 'application/json' -Body $body -TimeoutSec 30
$r.reply ?? ($r | ConvertTo-Json -Depth 2)
} catch {
"エラー: $($_.Exception.Message)"
}
}
PowerShell で簡易的にAIチャットができました!
PowerShell の関数機能 (function) を使うことでプロンプトの差し替えテスト・リクエスト送信が簡単にできます。今回は ai 関数を作った。
PowerShell で AI チャット
サンプルなソースコードは以下です。
ps1で保存して実行します。
エンドポイントは適当に設定します。ソースコード内で宣言してもいいです。
コード内に埋め込んでない場合はポップアップがでるようになってます。
こんな感じです。
PowerShell で WinForms(Windows Forms)を使事で簡易的に GUI AI チャットができました!
参考
CLIの方もGUIの方もいかにサンプル格納済です。
まとめ
インフラ系バックグラウンドだと Python とか nodejs とかそういった本格的な Web プログラミングにハードルを感じる方もいるかもしれませんが、PowerShellだとまだとっつきやすいんじゃないでしょうか???
そうでもないですか、、そうですか。。。😢
以上小ネタでした。