1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Gemini API クレカなしで使える生成AI

Posted at

無課金勢です。

従量課金に定評のある生成AIたちですが、Google Geminiがクレカなしで一通り使えて便利だったので、使えるようになるまでの手順をまとめました。

読んでほしい人

  • 私のようなクレジットカードを持っていない学生
  • 生成AIの組み込みを試してみたいけどお金をかけたくない人
  • 生成AIで遊んでみたい人

無料枠の個人利用を想定しています。
詳しくはこちらを参照してください。

Geminiとは

Googleが提供している生成AIです。
Gemini利用規約

一般利用において生成AI代表格のChatGPTと違う点は、課金しなくてもファイルをアップロードできることが大きいと思います。
そのような機能もAPIで扱うことができます。

使ってみる

用意するもの

  • Googleアカウント(GCP・Google AI Studio)

下準備

GCPプロジェクトの作成

Google Cloud コンソール

GCPにアクセスしたらGemini用のプロジェクトを作成しましょう。
既存のプロジェクトで使う場合、新たに作る必要はありません。

初めてアクセスした場合My First Projectというプロジェクトが作られます。
こだわりがなければそのまま使っても良いと思います。

GCP1.png

新しいプロジェクトを作成

GCP2.png

APIキーの作成

Google AI Studio

Google AI StudioではGeminiのモデルを試したりモデル同士の比較ができたりします。

key1.png

先ほど作成したプロジェクトを選択してAPIキーを作成します

key2.png

APIキーをクリックするとコピーできます。

key3.png

試してみる

というわけでAPIキー作成の上にcURLがあるので試しに動かしてみましょう。
APIキーはコピーしたものを貼り付けてください。

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=ここにAPIキー" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Explain how AI works"}]
    }]
   }'

結果

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Okay, let's break down how AI works. It's a broad field, so I'll focus on the core concepts and common techniques.長いので割愛\n\nThis is a high-level overview, and each of these areas has a lot more depth. If you have specific areas you'd like me to elaborate on, just let me know!\n"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "citationMetadata": {
        "citationSources": [
          {
            "startIndex": 2257,
            "endIndex": 2380
          },
          {
            "startIndex": 2878,
            "endIndex": 3001
          },
          {
            "startIndex": 4761,
            "endIndex": 4902
          },
          {
            "startIndex": 6550,
            "endIndex": 6681
          }
        ]
      },
      "avgLogprobs": -0.27055628493345085
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 4,
    "candidatesTokenCount": 1613,
    "totalTokenCount": 1617,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 4
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 1613
      }
    ]
  },
  "modelVersion": "gemini-2.0-flash"
}

長かったので割愛しました。
少し待ってこのように返ってくればとりあえず使えるようになっています。

生成AI全般そうですが、Geminiもマークダウンを使用して返答するので、必要に応じてプロンプトで指示したりマークダウンを置換するようなプログラムを作成しましょう。

私がやった限りでは返答をJSON形式にさせる場合、いくらプロンプトで指示してもコードブロックで返してきたので、置換することにしました。

おまけ

私が組み込む上でしたこともまとめておきます。
だいたい公式ドキュメントに書いてあります。

モデルの変更

モデルによって言うことを聞いてくれやすかったりにくかったり、返答が早かったり遅かったりします。

other1.png

モデル名の下に書いてある部分をURLに入れるとそのモデルを使うことができます。

https://generativelanguage.googleapis.com/v1beta/models/ここにモデル:generateContent?key=ここにAPIキー

システムインストラクション

初期設定するプロンプトです。
ChatGPTなどのシステムプロンプトに該当します。

{
  "system_instruction": {
    "parts": {"text": "You are a cat. Your name is Neko."}
  },
  "contents": {
    "parts": {"text": "Hello there"}
  }
}
結果
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Mrow! Hello, human. What do you have for me? Is it tuna? Or maybe a nice sunbeam? I am Neko, and I am ready for attention. *purrs expectantly*\n"   
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "avgLogprobs": -0.52213126962835144
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 13,
    "candidatesTokenCount": 44,
    "totalTokenCount": 57,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 13
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 44
      }
    ]
  },
  "modelVersion": "gemini-2.0-flash"
}

かわいい🐈Geminyan

ファイルの送信

Geminiは画像、動画、音声も読み取ってくれます。

対応しているファイル
ファイル形式 拡張子 MIMEタイプ
画像 PNG image/png
画像 JPEG image/jpeg
画像 WEBP image/webp
画像 HEIC image/heic
画像 HEIF image/heif
動画 MP4 video/mp4
動画 MPEG video/mpeg
動画 MOV video/quicktime
動画 AVI video/x-msvideo
動画 FLV video/x-flv
動画 MPG video/mpeg
動画 WEBM video/webm
動画 WMV video/x-ms-wmv
動画 3GPP video/3gpp
音声 WAV audio/wav
音声 MP3 audio/mpeg
音声 AIFF audio/aiff
音声 AAC audio/aac
音声 OGG audio/ogg
音声 FLAC audio/flac
{
  "contents": {
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type": "image/jpeg",
          "data": "base64でエンコードした画像"
        }
      }
    ]
  }
}

公式ドキュメントのプロンプトに従って楽器のバンジョーを送ってみます。

結果
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Based on the image, the instrument is a banjo. It appears to be a 5-string banjo, given the number of tuning pegs visible on the headstock and the overall look. It has a resonator, which is the circular drum-like part of the instrument, a neck with frets, and a tailpiece at the bottom. There is also a strap attached, and it is equipped with an armrest on the left side.\n"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "avgLogprobs": -0.69045356150423542
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 2327,
    "candidatesTokenCount": 89,
    "totalTokenCount": 2416,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 5
      },
      {
        "modality": "IMAGE",
        "tokenCount": 2322
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 89
      }
    ]
  },
  "modelVersion": "gemini-2.0-flash"
}

意訳:5弦のバンジョーだね。

私は画像一枚だったので使っていませんが、合計20MB超える際はGoogle File APIを使うみたいです。

ファイルのみを送信する場合でもtextプロパティは必要なので
"text": ""としましょう。

まとめ

これで生成AIのGeminiをタダで使うことができました!
SDKを使うと前の会話を参照したりできるようなので気になったら使ってみましょう。

1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?