Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ローカルLLM環境を構築できるOllamaをためす その5:Dockerコンテナで動いているプロセスにPowerShellで接続

実際のところ

ボディの設定

$body = @{
    model = "llama3"  # または選択したモデル名
    prompt = "Tell me a short story about a robot learning to paint."
} | ConvertTo-Json

レスポンスの格納

$response = Invoke-RestMethod -Uri "http://localhost:11434/api/generate" -Method Post -ContentType "application/json" -Body $body

レスポンスの表示

# JSON文字列を行ごとに分割し、各行をJSONオブジェクトに変換
$jsonObjects = $response -split "`n" | Where-Object { $_ -ne "" } | ForEach-Object { 
    try {
        $_ | ConvertFrom-Json
    } catch {
        Write-Warning "Invalid JSON: $_"
        return $null
    }
}

# "response"フィールドを抽出して連結
$fullText = $jsonObjects | Where-Object { $_ -ne $null -and $_.response } | ForEach-Object { $_.response } | Join-String

# テキストをフォーマット(ピリオドの後に2つの改行を挿入)
$formattedText = $fullText -replace '(\.\s)', "`$1`n`n"

# 結果を表示
Write-Host $formattedText