はじめに

Google AI の最新モデル Gemini 2.0や2.5 がリリースされ、従来の Gemini 1.5 を使用したアプリケーションのアップグレードが注目されています。既存の Gemini 1.5 を完全に置き換えるのではなく、全モデルを使い分けられるようにすることで、より柔軟なAIアプリケーションの構築が可能になります。本記事では、実際のチャット機能を例に、Gemini 1.52.0 以降の両方に対応するための実装手順と必要な変更点を詳しく解説します。

移行ガイドステップ

ステップ1: 環境のアップデート

バージョン確認

# 現在のバージョン確認
pip show google-generativeai

最新版へのアップデート

pip install google-generativeai==0.8.4

以下で最新バージョンをご確認いただけます。
https://pypi.org/project/google-generativeai/#history

ステップ2: インポート文の更新

Gemini 1.5 

import vertexai
from vertexai.preview.generative_models import GenerativeModel

Gemini 1.52.0 以降対応版

import requests
from google.genai.types import Tool

ステップ3: 初期化処理の変更

Gemini 1.5 

vertexai.init(project="your-project-id", location="asia-northeast1")

Gemini 1.52.0 以降対応版

client = genai.Client(vertexai=True, project="your-project-id", location="us-central1")

ステップ4: グラウンディング処理の更新

Gemini 1.5

tools = [
    Tool.from_google_search_retrieval(google_search_retrieval=vertexai.generative_models.grounding.GoogleSearchRetrieval())
]

Gemini 1.52.0 以降対応版

# ①tools = [types.Tool(google_search_retrieval=types.GoogleSearchRetrieval())]
# ②tools = [types.Tool(google_search=types.GoogleSearch())]

グラウンディングは1.5と2.0以降で処理が異なる。①は1.5 ②は2.0以降の対応
※ステップ2でimport vertexaiの内容から変更したため、元のvertexaiは使用できない点注意

ステップ5: RAG検索機能の実装

Gemini 1.5

tools = [
    Tool.from_retrieval(retrieval=grounding.Retrieval(source=grounding.VertexAISearch(datastore=create_datastore_uri(item.datastore))))
]

Gemini 1.52.0 以降対応版

tools = [
    types.Tool(retrieval=types.Retrieval(vertexai_search=types.VertexAISearch(datastore=create_datastore_uri(item.datastore))))
]

ステップ6: コンテンツ生成の更新

Gemini 1.5

model = GenerativeModel(model_name=item_model_id, tools=tools, system_instruction=system_instruction_conversation_content)

Gemini 1.52.0 以降対応版

※Gemini1.5では、生成したコンテンツをチャット送信で使用していたが、2.0以降は使用できなくなるため削除する

ステップ7: 履歴付きチャットの実装

Gemini 1.5

chat = model.start_chat(history=history)

Gemini 1.52.0 以降対応版

chat = client.chats.create(
    history=history,
    model=item_model_id,
    config=GenerateContentConfig(
        max_output_tokens=generation_config['max_output_tokens'],
        temperature=generation_config['temperature'],
        top_p=generation_config['top_p'],
        safety_settings=safety_settings,
        system_instruction=system_instruction_conversation_content,
    )
)

参考情報

公式ドキュメント

https://ai.google.dev/gemini-api/docs/migrate?hl=ja&_gl=1*f9tef6*_up*MQ..*_ga*Njk4ODI3NTMyLjE3NDk3MjYxNDg.*_ga_P1DBVKWT6V*czE3NDk3MjYxNDgkbzEkZzAkdDE3NDk3MjYxNDgkajYwJGwwJGgxMDc5MTk5Njcy
Gemini APIの移行に関する公式ガイドです。コンテンツ生成の変更点や新機能について詳しく説明されています。

https://googleapis.github.io/python-genai/search.html?q=Tool&check_keywords=yes&area=default#
Python用Google Gen AI SDKの公式ドキュメントです。Toolクラスの使用方法や各種APIの詳細な仕様が記載されています。

まとめ

Gemini 1.52.0以降 のバージョン対応の実装は初期コストがかかりますが、急激な変更を避け、安全にアップグレードをすることが可能です。またタスクに応じた最適なモデル選択が可能となります。本記事の手順が、皆様のGeminiを使用した開発にお役に立てれば幸いです。

この記事は実際の実装経験に基づいて作成しているため、最新の情報については上記の公式ドキュメントもあわせてご確認ください。