Gemini API によるドキュメント処理機能の詳細

<ph type="x-smartling-placeholder"></ph>

Gemini API は、渡された PDF ドキュメントを処理して実行できます。日時 PDF がアップロードされた場合、Gemini API は次のことを行えます。

  • コンテンツについて説明または回答する
  • コンテンツを要約する
  • コンテンツから推定する

このチュートリアルでは、Gemini API にプロンプトを送信する方法をいくつか紹介します。 添付されていますすべての出力はテキストのみです。

始める前に: プロジェクトと API キーを設定する

Gemini API を呼び出す前に、プロジェクトをセットアップして、 取得します。

詳細な技術情報

Gemini 1.5 Pro と 1.5 Flash は、最大 3,600 のドキュメント ページをサポートします。ドキュメント ページは application/pdf MIME タイプでなければなりません。

各ドキュメント ページは 258 トークンに相当します。

ドキュメントのピクセル数に特定の制限はありませんが、 モデルのコンテキスト ウィンドウ。大きなページは最大解像度まで縮小されます。 3072×3072 のアスペクト比で表示できますが、これより小さいページは 1 つずつ 768x768 ピクセルに拡大されます。これより低いページについては費用が削減されません 高帯域幅のページでのパフォーマンスの向上は 解決します。

最良の結果を得るために、次のことを行います。

  • アップロードする前に、ページを正しい向きに回転してください。
  • 不鮮明なページを避ける。
  • 単一ページを使用する場合は、ページの後にテキスト プロンプトを配置します。

File API を使用してドキュメントをアップロードする

File API を使用して任意のサイズのドキュメントをアップロードします。(常に File API を使用する: 送信しようとしているファイルとシステム指示の組み合わせが大きい 20 MB 未満)。

まずは、Gemini に関するこちらのホワイトペーパーをダウンロードしてください 1.5:

!curl -o gemini.pdf https://storage.googleapis.com/cloud-samples-data/generative-ai/pdf/2403.05530.pdf

media.upload を使用してドキュメントをアップロードします。 Gemini API 呼び出しで参照として使用される URI を出力します。

# Upload the file and print a confirmation
sample_file = genai.upload_file(path="gemini.pdf",
                                display_name="Gemini 1.5 PDF")

print(f"Uploaded file '{sample_file.display_name}' as: {sample_file.uri}")

PDF ファイルのアップロードを確認し、メタデータを取得する

アップロードされたファイルが API によって正常に保存されたことを確認し、 files.get を呼び出してメタデータを取得する必要があります。name(および by)のみ uri など)は一意です。次の場合にのみファイルを識別する display_name を使用 自分で一意性を管理します

file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")

ユースケースによっては、URI を dict またはデータベース。

アップロードされたドキュメントを使用して Gemini API にプロンプトを送信する

ファイルのアップロード後、参照ファイルを参照する GenerateContent リクエストを File API URI です。生成モデルを選択し、テキスト プロンプトを提供する およびアップロードされたドキュメント:

# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-flash")

# Prompt the model with text and the previously uploaded image.
response = model.generate_content([sample_file, "Can you summarize this document as a bulleted list?"])

print(response.text)

ローカルに保存されている 1 つ以上のファイルをアップロードする

または、ローカルに保存されている 1 つ以上のファイルをアップロードすることもできます。

送信しようとしているファイルとシステム指示の組み合わせが、 20 MB を超える場合は、以前と同じように File API を使用してファイルをアップロードします。 表示されます。サイズの小さいファイルは、代わりに Gemini API からローカルで呼び出すことができます。

import PyPDF2

def extract_text_from_pdf(pdf_path):
    with open(pdf_path, 'rb') as pdf_file:
        pdf_reader = PyPDF2.PdfReader(pdf_file)
        extracted_text = ""
        for page in pdf_reader.pages:
            text = page.extract_text()
            if text:
                extracted_text += text
        return extracted_text

sample_file_2 = extract_text_from_pdf('example-1.pdf')
sample_file_3 = extract_text_from_pdf('example-2.pdf')

複数のドキュメントに対するプロンプト

Gemini API には、API 呼び出しの一部としてドキュメントとテキストの任意の組み合わせを コンテキスト ウィンドウ内に収まるようにしなければなりません。この例では、1 つの短いテキストが プロンプトと、以前にアップロードされた 3 つのドキュメント:

# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-flash")

prompt = "Summarize the differences between the thesis statements for these documents."

response = model.generate_content([prompt, sample_file, sample_file_2, sample_file_3])

print(response.text)

ファイルの一覧表示

File API を使用してアップロードしたすべてのファイルとその URI のリストを表示するには、 files.list_files():

# List all files
for file in genai.list_files():
    print(f"{file.display_name}, URI: {file.uri}")

ファイルを削除

File API を使用してアップロードしたファイルは、2 日後に自動的に削除されます。マイページ files.delete_file() を使用して手動で削除することもできます。

# Delete file
genai.delete_file(document_file.name)
print(f'Deleted file {document_file.uri}')

次のステップ

このガイドでは、Terraform を使用して generateContent、 を使用して、処理されたドキュメントからテキスト出力を生成します。詳しくは 次のリソースをご覧ください。

  • メディア ファイルを使用したプロンプト: Gemini API は、テキスト、画像、音声、動画データを使用したプロンプトをサポートしています。 マルチモーダル プロンプトと呼ばれます。
  • システム指示: システム 使用することで、特定の状況に基づいてモデルの動作を サポートします。
  • 安全に関するガイダンス: 場合によって生成 AI モデルは、不正確な出力など、予期しない出力を生成する 偏見がある、または不適切であるといったことを判断できます。事後処理と人間による評価が、 そのような出力による害が及ぶリスクを制限します。