PydanticAIとGeminiでAI Agent

はじめに
これまでLangChainを使って生成AIを扱ってきましたが、LangChain固有の御作法に振り回される事が多く辟易としてきたため、よりPythonライクに書けるPydanticAIに入門することにしました。
生成AIですが、ローカルLLMなど色々と試したいところですが、手持ちのGPUはRTX 2070 Super(VRAM 8GB)と、昨今のローカルLLMをフルに動かすにはVRAMが足りません。
さらに言えば、AI Agentを試すにはFunction Callingに対応した例えばLlama 3.2などが必要になるなど、考慮しないと行けない項目が増えてしまうので、今回はAPIが無料で利用できるGeminiを使ってAI Agentを試します。
ソースコードは以下のレポジトリにあります。

環境構築
Python
まずはuvを使って環境を整えます
uv init -p 3.13.3
uv venv -p 3.13.3
今回使うライブラリを一通りインストール
uv pip install pydantic-ai python-dotenv google-generativeai ipykernel
source .venv/bin/activate
vscodeを使って開発するので、uvの仮想環境をもとにkernelを作成して利用できるようにしておきます。
ipython kernel install --user --name=pydanticai_gemini
Gemini
Google AI StudioでAPIキーを取得します
.envファイルを用意してAPIキーを記載します。GOOGLE_API_KEY=hogehoge
.gitignoreに.envを追加しておきます。
.env
ここまでくればあとはソースコード書いて実行していきます。

google generativeaiを使ってテスト
PydanticAIに入る前に、念の為先ほど作成したAPIキーの動作確認を行います。
import os
import google.generativeai as genai
from dotenv import load_dotenv
# .env読み込み
load_dotenv()
# APIキー
GOOGLE_API_KEY=os.getenv('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
gemini_pro = genai.GenerativeModel("gemini-2.0-flash")
prompt = "Hello!"
response = gemini_pro.generate_content(prompt)
print(response.text)
ターミナル確認すると...
Hello there! How can I help you today?
動いてそうですね。

Githubに誤って.envを上げてしまった場合の対処法
前項までに.gitignoreを書いたつもりが、実際には存在しなかった(意味不明)ため、Github上に.envが上がってしまいました。
まずは深呼吸して他に同じような例がないか検索したところ、先人達も同じようなミスをしていたため、Github公式と合わせて対処方法を参考にさせていただきました。
gitの履歴から.envを削除
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch .env" \
--prune-empty --tag-name-filter cat -- --all
.gitignoreを用意
.env
.gitignoreステージ&コミット
git add .gitignore
git commit -m "add .gitignore"
git push origin --force --all
これでコミット履歴からも.envから消えているはずです。