はじめに
このコードは、GoogleのGemini APIを使用したPythonクイックスタートガイドです。Gemini APIは、Googleの大規模言語モデルにアクセスするためのPython SDKを提供します。このガイドでは、APIのセットアップから、テキストや画像を含むマルチモーダル入力を使ってテキスト応答を生成する方法まで、一連のステップを通じて詳細に説明されています。以下にその解説を行います。
下記の記事もおすすめ
インポートとパッケージの準備
import pathlib
import textwrap
import google.generativeai as genai
from google.colab import userdata
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
- このセクションでは、必要なパッケージをインポートしています。
-
to_markdown
関数は、テキストをMarkdown形式に変換するためのユーティリティ関数です。
APIキーの設定
GOOGLE_API_KEY = userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
- Gemini APIを使用するためには、Googleから取得したAPIキーが必要です。
- ここでは、ColabのシークレットマネージャーからAPIキーを取得して、
genai
に設定しています。
利用可能なモデルのリストアップ
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
-
genai.list_models()
を使用して、利用可能なGeminiモデルを一覧表示します。 -
generateContent
メソッドをサポートするモデルのみをフィルタリングしています。
テキスト入力からのテキスト生成
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("人生の意味とは?")
to_markdown(response.text)
-
genai.GenerativeModel
を使用して、特定のモデル(ここではgemini-pro
)をロードします。 -
generate_content
メソッドを使って、質問に対するテキスト応答を生成します。
画像とテキスト入力からのテキスト生成
img = PIL.Image.open('image.jpg')
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content(img)
to_markdown(response.text)
- 画像とテキストの両方を入力として受け取ることができるマルチモーダルモデル(
gemini-pro-vision
)を使用します。 -
generate_content
メソッドに画像を渡して、テキスト応答を生成します。
チャットでの会話
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
response = chat.send_message("幼い子供にコンピューターがどのように機能するかを一文で説明します。")
to_markdown(response.text)
-
genai.GenerativeModel
を使って、マルチターンチャットを行うための会話セッションを開始します。 -
send_message
メソッドを使用して、会話にメッセージを送信し、応答を取得します。
埋め込みの使用
result = genai.embed_content(
model="models/embedding-001",
content="人生の意味とは?",
task_type="retrieval_document",
title="単一文字列の埋め込み")
- Gemini APIを使用してテキストの埋め込み(ベクトル化)を生成します。
- この埋め込みは、検索、分類、クラスタリングなどのタスクに使用できます。
以上の解説で、このコードがどのようにGemini APIを使用しているのかが明確になりました。このガイドは、APIの使用方法を学ぶのに非常に役立つ資料です。
さらに詳しい解説は下記のノートブックを参考にしてください。
ノートブック
参考記事