こんにちは。
あけましておめでとうございます。本年も当サイトをよろしくお願いいたします。
今回はGemini APIがついに無料で使えるようになったので、その紹介をしたいと思います。
LLMのAPI料金の概要
LLMの大手としてはOpenAI、Google、Anthropicが主流になってきたかと思います。
簡単に三社の現在の料金価格についてリンクを貼っておきます。
三社とも、これまでモデルの性能を改善しながら、コストダウン競争を続けております。
これは開発者からするととてもありがたいことなのですが、やはり個人開発の場合、低コストとはいえお金を気にして開発するのはつらいですよね・・。
いつかLLMが完全なオープンソースになる日が来るのを期待しているのですが、ついにGoogleの「Gemini」がやってきましたよ・・。
使用制限つきとはいえ、最新のGemini 2.0以外のモデルは無料で使えます!
OpenAIは発表当初こそ、期間限定で5ドルの無料枠がありましたが、現在はありません。
最近はOpenAIやAnthropicなどの人気におされているようにみえるGoogleですが、これは巻き返す可能性もありそうですね!
というわけでGemini APIの使い方について紹介します。
Gemini 1.5 API
では先ほどのGemini APIのサイトを見てみましょう。

1分間に15回のリクエストで制限がかかるようです。
1分間で100万トークンなので、かなりの長文を入出力しない限りはよほど問題ないかと。
一日当たり1500回までなので、これもよっぽど大丈夫かなと。
所感ですが、個人が研究・開発目的で使用するには十分な枠組みかと思います。
ただしLLM業界は変化が激しいので、いつまで無料なのかはわかりません。
今だけかもしれないし、今後も低コスト化が続いて無料枠も増えるかもしれません。
使いたい人は使えるうちに早めに使いましょう。
一点だけ注意としては、このAPIでインプットしたデータはGoogleの学習に利用されます。

「サービスの改善に使用」の「はい」をクリックすると利用規約を確認できます。

親切に太字で書いてあるので、取扱いには十分注意しましょう。
APIキーの取得方法
では先ほどのGemini 1.5 Flash内の「Google AI Studioで今すぐお試しください」をクリックします。
Googleアカウントでログインすると、以下のようなWebアプリが開くかと思います。

こちらでもGeminiを色々試せますので、興味があれば触ってみてください。
今回は左上の「Get API Key」をクリックします。

真ん中の「APIキーを作成」をクリックします。
そうするとGoogle Cloudプロジェクトが自動で作成されるか、既存のものがあればそこから選択します。

APIキーが作成されましたら、コピーしておきます。
画面戻ると以下のようになっていればOKです。

プランが「有料」になっていますが、気にしなくて大丈夫です。そのうち無料に表示も変わります。
お支払い方法も設定しなくてOKです。
ちなみに使用状況データを表示をクリックすれば、以下のように確認できます。

何回か動かしてますが、費用も発生しておりません。

これでAPIキーの準備は完了です。
では早速動かしてみましょう。
Gemini APIを動かす
ではGoogle Gemini APIの公式ドキュメントにアクセスします。
クイックスタートの通りに動かしてみます。
まずはお使いのPython3.9以降の仮想環境やDocker等に、以下のコマンドでインストールしましょう。
pip install google-generativeai
では以下のコードに、先ほど取得したAPIキーを追加しましょう。
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Explain how AI works")
print(response.text)
では私はクエリを日本語で渡してみます。
ちなみに以下の私のコードではAPIキーを.envファイルに記載しておりますので、APIキーがコード内で見えるのが嫌な方はご参考ください。

日本語でもうまく返してくれますね。
Gemini 1.5 Flashはマルチモーダル対応なので、例えば音声データや画像データも渡せそうです。
詳しくは公式ドキュメントを参照ください。
LangChainで動かす
APIキーが使えるならば、LangChainなどの他のフレームワークでも使えそうですよね。
以下のコマンドでライブラリを追加しましょう。
pip install langchain-google-genai
こちらも同じようなコードにしてみたいと思います。
import os
from langchain_google_genai.chat_models import ChatGoogleGenerativeAI
api_key = os.environ["GOOGLE_API_KEY"]
llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash", api_key=api_key)
print(llm.invoke("こんにちは、あなたは何ができますか?").content)
先ほどのコードと似たような回答が得られました。

このように、LangChainの中でも使えますし、GoogleGenAIでもAPIを使うことができます。
書き方もほぼ似たようなものなので、あとは書き方の好みやライブラリの使い勝手次第でお好きな方を使い分ければ良いかと思います。
まとめ
以上のように、Gemini 1.5 Flashは無料で使えてLangChainなどのフレームワーク内でも使用することができます。
とりあえずLLMを使ってコード書いたらどうなるかな?
まずシステムとしてうまく動くかな?
このように試行錯誤したい需要には、大手LLMのAPIの中では、Geminiが最適解となっているように感じております。
コストを気にせず、穏やかに研究・開発することが大事かと思いますので、良かったらGemini APIを使ってみてはいかがでしょうか?
ここまでご覧いただきありがとうございました!