見出し画像

【Gemini API】Python Quickstart 日本語版

はじめに

このコードは、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の使用方法を学ぶのに非常に役立つ資料です。

さらに詳しい解説は下記のノートブックを参考にしてください。

ノートブック


参考記事


この記事が気に入ったらサポートをしてみませんか?