Gemini API を使用すると、独自のデータに対してセマンティック検索を行うことができます。なぜなら、 データを保護するうえで、API キーよりも厳密なアクセス制御が必要になります。
このクイックスタートでは、適切な簡素化された認証アプローチを使用します。 おすすめします。本番環境の場合 概要 認証と認可 次の日付より前 アクセス認証情報の選択 選択することもできます
目標
- OAuth 用にクラウド プロジェクトを設定する
- application-default-credentials を設定する
gcloud auth
を使用する代わりに、プログラムでクルデンシャルを管理します
前提条件
このクイックスタートを実行するには、次のものが必要です。
Cloud プロジェクトを設定する
このクイックスタートを完了するには、まず Cloud プロジェクトを設定する必要があります。
1. API を有効にする
Google API を使用する前に、Google Cloud プロジェクトで有効にする必要があります。
Google Cloud コンソールで、Google Generative Language API を有効にします。
2. OAuth 同意画面を構成する
次に、プロジェクトの OAuth 同意画面を構成し、自分自身をテストとして追加します できます。Cloud プロジェクトでこの手順をすでに完了している場合は、次の手順に進んでください。 次のセクションで説明します
Google Cloud コンソールで、メニュー >API とサービス >OAuth 同意画面をご覧ください。
<ph type="x-smartling-placeholder"></ph> OAuth 同意画面に移動
アプリのユーザータイプとして [外部] を選択し、[作成] をクリックします。
アプリ登録フォームに入力(ほとんどのフィールドは空白のままで構いません) [保存して次へ] をクリックします。
現時点では、スコープの追加をスキップして [保存して次へ] をクリックします。 Google Workspace の外部で使用するアプリを作成すると、 認証スコープを組織レベルで追加して、そのスコープに 必要があります。
テストユーザーを追加します。
- [テストユーザー] で [ユーザーを追加] をクリックします。
- メールアドレスと、その他の承認されたテストユーザーを入力します。 [保存して次へ] をクリックします。
アプリ登録の概要を確認します。変更するには、[編集] をクリックします。条件 アプリの登録に問題がないことを確認したら、[Back to Dashboard] をクリックします。
3. デスクトップ アプリケーションの認証情報を承認する
エンドユーザーとして認証を行い、アプリ内でユーザーデータにアクセスするには、1 つ以上の OAuth 2.0 クライアント ID を作成する必要があります。クライアント ID は Google の OAuth サーバーに送信します。アプリが複数のプラットフォームで動作する場合 プラットフォームごとに個別のクライアント ID を作成する必要があります。
Google Cloud コンソールで、メニュー >API とサービス > 認証情報。
<ph type="x-smartling-placeholder"></ph> [認証情報] に移動
[認証情報を作成] をクリックします。OAuth クライアント ID。
[アプリケーションの種類] >デスクトップ アプリ。
[名前] フィールドに、認証情報の名前を入力します。この名前は 表示されます。
[作成] をクリックします。[OAuth クライアントの作成] 画面が表示され、新しい クライアント ID とクライアント シークレット。
[OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント] に表示されます。 あります。
ダウンロード ボタンをクリックして JSON ファイルを保存します。名前を付けて保存
client_secret_<identifier>.json
。名前をclient_secret.json
に変更します。 それを作業ディレクトリに移動します。
アプリケーションのデフォルト認証情報を設定する
client_secret.json
ファイルを使用可能な認証情報に変換するには、このファイルを
gcloud auth application-default login
コマンドの
--client-id-file
引数。
gcloud auth application-default login \
--client-id-file=client_secret.json \
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'
このチュートリアルのプロジェクト設定が簡素化されると、「Google は このアプリを確認しました。」というダイアログが表示されます。これは正常な動作です。[続行] を選択してください。
これにより、生成されたトークンがよく知られた場所に配置され、アクセスできるようになります。
gcloud
またはクライアント ライブラリ。
gcloud auth application-default login
--no-browser
--client-id-file=client_secret.json
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'
アプリケーションのデフォルト認証情報(ACD)を設定したら、 ほとんどの言語のライブラリは、そのようなライブラリを見つけるのに最低限、あるいはまったく必要ありません。
Curl
これが機能していることをテストする最も簡単な方法は、これを使用して REST にアクセスすることです。 curl を使用する API:
access_token=$(gcloud auth application-default print-access-token) project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1/models \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer ${access_token}" \ -H "x-goog-user-project: ${project_id}" | grep '"name"'
Python
Python では、クライアント ライブラリが自動的に見つける必要があります。
pip install google-generativeai
テストを行うための最小限のスクリプトは次のようになります。
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
次のステップ
問題がなければ、 テキストデータのセマンティック取得。
認証情報を自分で管理する [Python]
多くの場合、アクセス権の作成に gcloud
コマンドを使用することはできません。
トークン(client_secret.json
)。Google は、
アプリ内でそのプロセスを管理できるようにしました。このセクション
このプロセスを Python で示します。この並べ替えには同等の例があります。
他の言語については、
Drive API ドキュメント
1. 必要なライブラリのインストール
Python 用の Google クライアント ライブラリと Gemini クライアント ライブラリをインストールします。
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. 認証情報マネージャーを作成する
承認ボタンのクリックの回数を最小限に抑えるには
作業ディレクトリに load_creds.py
というファイルを作成して、
後で再利用したり、期限切れになった場合に更新したりできる token.json
ファイルをキャッシュに保存します。
まず
次のコードは、client_secret.json
ファイルを
genai.configure
:
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = ['https://www.googleapis.com/auth/generative-language.retriever']
def load_creds():
"""Converts `client_secret.json` to a credential object.
This function caches the generated tokens to minimize the use of the
consent screen.
"""
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.json', 'w') as token:
token.write(creds.to_json())
return creds
3. プログラムを作成する
script.py
を作成します。
import pprint
import google.generativeai as genai
from load_creds import load_creds
creds = load_creds()
genai.configure(credentials=creds)
print()
print('Available base models:', [m.name for m in genai.list_models()])
4. プログラムを実行する
作業ディレクトリでサンプルを実行します。
python script.py
スクリプトの初回実行時には、ブラウザ ウィンドウが開き、 アクセスを承認します。
Google アカウントにまだログインしていない場合は、 ログインします。複数のアカウントにログインしている場合は、 「テスト アカウント」として設定したもの必ず確認してください。
認証情報はファイル システムに保存されるため、次回から サンプルコードを実行しても、承認を求められることはありません。
認証が正常に設定されました。