0
0

Windows11 PowerShell のみで GeminiをAPI実行

Last updated at Posted at 2024-08-05

はじめに

API利用未経験でつまづいたので、これから始める方のためにも情報共有します。

(24年8月 現在) GemeiniのAPI実行は一定の回数まで無料で利用することができます。
簡単な個人アプリなどの利用では十分だと感じ個人開発に組み込みました。

次回の記事でアプリでの実行について紹介し、
今回はPythonやNodeJSを利用せずに、コマンドのみを使って実行テストをするチュートリアルとします。

以下の3ステップをコピー、修正して実行を確認しましょう。

0.APIキーの取得

Google AI Studio
にて画面左上の Get API Key をクリックしAPIキーをコピーする。

GetAPIKey.png

1. 初期処理をします。

コマンドの改行コードについて
Windowsのメモ帳で改行を打つと 「CRLF (\r\n)」になります。
そうすると1行ごとに実行してしまい正しく処理が書けません。
改行コードは「LF (\n)」になるように Sakuraエディタなどを
活用して変換しましょう。

Init
    ## ここにAPIキーを入力してください。(毎回コピーしなくていいように)
    $API_KEY = "YOUR_API_KEY"
    
    ## headersの設定をします。
    $headers = @{
        "Content-Type" = "application/json"
        "x-goog-api-key" = $API_KEY
    }

2. プロンプトを入力します。

警告
ここでのAPI実行は日本語でのプロンプト実行ができません。
英語でプロンプトを書いてください!

(以下、日本語使用時のエラーメッセージ)
It seems you've provided a string of question marks.
Could you please tell me what you'd like to kn...

Prompt
    $body = @{
        contents = @(
            @{
                role = "user"
                parts = @(
                    @{
    		            ## 英語でプロンプトを入力
                        ##text = "豚肉を使った晩ごはんの献立を考えてください。"
                        text = "Think about a dinner menu that uses pork."
                    }
                )
            }
        )
    } | ConvertTo-Json -Depth 10

3. Gemini1.5ProをAPI実行する。

Execute
    Invoke-WebRequest `
        -Uri "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent" `
        -Method Post `
        -Headers $headers `
        -Body $body `
        -ContentType "application/json"

3.1 実行結果を確認する。

StatusCode: 200 と 帰ってきたら通信成功で、
Content内の "text"に回答が来ています。

PowerShell実行での回答は先頭の一部のみ表示され、
英語で表示されています。

Execute_Err
	StatusCode        : 200
	StatusDescription : OK
	Content           : {
	                      "candidates": [
	                        {
	                          "content": {
	                            "parts": [
	                              {
	                                "text": "## A Pork-Centric Feast \n\n**Appetizer:**\n\n* **Crispy Pork Belly Bites with
	                     Spicy Apricot Glaze:** T...
	RawContent        : HTTP/1.1 200 OK

おわりに

はじめての記事投稿になりますがいかがでしょうか。

先頭の一部のみ表示され英語で表示されるなど調査が甘いところはあります。
しかし、目的のAPI実行できるかの確認には十分かと思い投稿しました。

次回はプログラムに実装する方法を投稿します。
(回答は途切れず質問文の言語で返ってきます。)

お楽しみに!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0