Pemahaman dokumen

Anda dapat menambahkan PDF ke permintaan Gemini untuk melakukan tugas yang melibatkan pemahaman isi PDF yang disertakan. Halaman ini menunjukkan cara menambahkan PDF ke permintaan tambahan ke Gemini di Vertex AI menggunakan Konsol Google Cloud dan Vertex AI API.

Model yang didukung

Tabel berikut mencantumkan model yang mendukung pemahaman dokumen:

Model Detail modalitas PDF

Flash Gemini 1.5

Buka kartu model Flash Gemini 1.5

Halaman maksimum per perintah: 300

Ukuran file PDF maksimum: 30 MB

Gemini 1.5 Pro

Buka kartu model Gemini 1.5 Pro

Halaman maksimum per perintah: 300

Ukuran file PDF maksimum: 30 MB

Gemini 1.0 Pro Vision

Buka kartu model Gemini 1.0 Pro Vision

Jumlah halaman maksimum per perintah: 16

Ukuran file PDF maksimum: 30 MB

Untuk daftar bahasa yang didukung oleh model Gemini, lihat informasi model Model Google. Untuk mempelajari selengkapnya tentang cara mendesain prompt multimodal. Mendesain prompt multimodal. Jika Anda mencari cara untuk menggunakan Gemini langsung dari perangkat seluler Anda dan aplikasi web, lihat Vertex AI for Firebase SDK untuk Aplikasi Android, Swift, web, dan Flutter.

Menambahkan dokumen ke permintaan

Contoh kode berikut menunjukkan cara menyertakan PDF dalam permintaan prompt. Contoh PDF ini berfungsi dengan semua model multimodal Gemini.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Vertex AI SDK untuk Python dokumentasi referensi API.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan parameter stream di generate_content.

  response = model.generate_content(contents=[...], stream = True)
  

Untuk respons non-streaming, hapus parameter, atau setel parameter ke False.

Kode contoh

import vertexai

from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

prompt = """
You are a very professional document summarization specialist.
Please summarize the given document.
"""

pdf_file_uri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf"
pdf_file = Part.from_uri(pdf_file_uri, mime_type="application/pdf")
contents = [pdf_file, prompt]

response = model.generate_content(contents)
print(response.text)

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi Java SDK untuk Gemini.

Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan metode generateContentStream.

  public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
  

Untuk respons non-streaming, gunakan metode generateContent.

  public GenerateContentResponse generateContent(Content content)
  

Kode contoh


import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;
import com.google.cloud.vertexai.generativeai.ResponseHandler;
import java.io.IOException;

public class PdfInput {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    pdfInput(projectId, location, modelName);
  }

  // Analyzes the given video input.
  public static String pdfInput(String projectId, String location, String modelName)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs
    // to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      String pdfUri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(
          ContentMaker.fromMultiModalData(
              "You are a very professional document summarization specialist.\n"
                  + "Please summarize the given document.",
              PartMaker.fromMimeTypeAndData("application/pdf", pdfUri)
          ));

      String output = ResponseHandler.getText(response);
      System.out.println(output);
      return output;
    }
  }
}

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di halaman AI Generatif panduan memulai menggunakan Node.js SDK. Untuk informasi selengkapnya, lihat referensi Node.js SDK untuk Gemini dokumentasi tambahan.

Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan generateContentStream.

  const streamingResp = await generativeModel.generateContentStream(request);
  

Untuk respons non-streaming, gunakan metode generateContent.

  const streamingResp = await generativeModel.generateContent(request);
  

Kode contoh

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function analyze_pdf(projectId = 'PROJECT_ID') {
  const vertexAI = new VertexAI({project: projectId, location: 'us-central1'});

  const generativeModel = vertexAI.getGenerativeModel({
    model: 'gemini-1.5-flash-001',
  });

  const filePart = {
    file_data: {
      file_uri: 'gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf',
      mime_type: 'application/pdf',
    },
  };
  const textPart = {
    text: `
    You are a very professional document summarization specialist.
    Please summarize the given document.`,
  };

  const request = {
    contents: [{role: 'user', parts: [filePart, textPart]}],
  };

  const resp = await generativeModel.generateContent(request);
  const contentResponse = await resp.response;
  console.log(JSON.stringify(contentResponse));
}

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Go SDK untuk dokumentasi referensi Gemini.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan GenerateContentStream.

  iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
  

Untuk respons non-streaming, gunakan metode GenerateContent.

  resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
  

Kode contoh

import (
	"context"
	"errors"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

// pdfPrompt is a sample prompt type consisting of one PDF asset, and a text question.
type pdfPrompt struct {
	// pdfPath is a Google Cloud Storage path starting with "gs://"
	pdfPath string
	// question asked to the model
	question string
}

// generateContentFromPDF generates a response into the provided io.Writer, based upon the PDF
// asset and the question provided in the multimodal prompt.
func generateContentFromPDF(w io.Writer, prompt pdfPrompt, projectID, location, modelName string) error {
	// prompt := pdfPrompt{
	// 	pdfPath: "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf",
	// 	question: `
	// 		You are a very professional document summarization specialist.
	// 		Please summarize the given document.
	// 	`,
	// }
	// location := "us-central1"
	// modelName := "gemini-1.5-flash-001"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	model := client.GenerativeModel(modelName)

	part := genai.FileData{
		MIMEType: "application/pdf",
		FileURI:  prompt.pdfPath,
	}

	res, err := model.GenerateContent(ctx, part, genai.Text(prompt.question))
	if err != nil {
		return fmt.Errorf("unable to generate contents: %w", err)
	}

	if len(res.Candidates) == 0 ||
		len(res.Candidates[0].Content.Parts) == 0 {
		return errors.New("empty response from model")
	}

	fmt.Fprintf(w, "generated response: %s\n", res.Candidates[0].Content.Parts[0])
	return nil
}

C#

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi C#.

Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan metode StreamGenerateContent.

  public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
  

Untuk respons non-streaming, gunakan metode GenerateContentAsync.

  public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
  

Untuk informasi selengkapnya tentang cara server dapat menstreaming respons, lihat RPC Streaming.

Kode contoh


using Google.Cloud.AIPlatform.V1;
using System;
using System.Threading.Tasks;

public class PdfInput
{
    public async Task<string> SummarizePdf(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-flash-001")
    {

        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        string prompt = @"You are a very professional document summarization specialist.
Please summarize the given document.";

        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = prompt },
                        new Part { FileData = new() { MimeType = "application/pdf", FileUri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf" }}
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);

        return responseText;
    }
}

REST

Setelah Anda menyiapkan lingkungan Anda, Anda dapat menggunakan REST untuk menguji prompt teks. Contoh berikut mengirim permintaan ke penayang endpoint model Google Cloud.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan. Masukkan wilayah yang didukung. Untuk mengetahui daftar lengkap wilayah yang didukung, lihat Lokasi yang tersedia.

    Klik untuk meluaskan daftar sebagian wilayah yang tersedia

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: Project ID Anda.
  • FILE_URI: URI Cloud Storage file yang akan disertakan dalam perintah. Objek bucket harus berupa dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus tentukan jenis media (mimeType) file.

    Jika belum memiliki file PDF di Cloud Storage, Anda dapat menggunakan file yang tersedia untuk publik: gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf dengan jenis mime application/pdf. Untuk melihat PDF ini, buka PDF contoh .

  • MIME_TYPE: Jenis media file yang ditentukan dalam data atau fileUri kolom. Nilai yang dapat diterima mencakup:

    Klik untuk meluaskan jenis MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: Petunjuk teks yang harus disertakan dalam perintah. Misalnya, You are a very professional document summarization specialist. Please summarize the given document.

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"

PowerShell

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Perhatikan hal berikut dalam URL untuk contoh ini:
  • Gunakan generateContent untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi kepada audiens manusia, streaming respons secara langsung yang dibuat dengan menggunakan streamGenerateContent .
  • ID model multimodal terletak di akhir URL sebelum metode (misalnya, gemini-1.5-flash atau gemini-1.0-pro-vision). Contoh ini dapat mendukung model dasar juga.

Konsol

Untuk mengirim prompt multimodal menggunakan Konsol Google Cloud, lakukan berikut ini:

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di bagian Prompt design (single turn), klik Open.
  3. Opsional: Konfigurasi model dan parameter:

    • Model: Pilih model.
    • Region: Pilih wilayah yang ingin Anda gunakan.
    • Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.

      Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

      Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan fallback respons, coba tingkatkan suhunya.

    • Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk {i>max output limit<i}.

      Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

      Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang berpotensi lebih lama yang dihasilkan.

    • Tambahkan urutan perhentian: Opsional. Masukkan urutan perhentian, yang merupakan serangkaian karakter yang menyertakan spasi. Jika model menemukan urutan perhentian, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.
  4. Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasikan sebagai berikut:
  5. Klik untuk meluaskan konfigurasi lanjutan

    • Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K. (tidak didukung untuk Gemini 1.5).

      Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

      Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

      Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

    • Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P. Token dipilih dari yang paling mungkin hingga yang paling kecil hingga jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil yang paling sedikit variabel, setel top-P ke 0.
    • Aktifkan Grounding: Grounding tidak didukung untuk multimodal prompt.
  6. Untuk mengupload media, seperti file PDF, lakukan langkah berikut:
    1. Klik Sisipkan Media, lalu pilih sumber.

      Jika Anda memilih Google Drive sebagai sumber, Anda harus memilih akun dan memberikan izin untuk Vertex AI Studio akan mengakses akun Anda saat pertama kali pilih opsi ini. Anda dapat mengupload beberapa file media yang memiliki berukuran hingga 10 MB. Satu file tidak boleh melebihi 7 MB.

    2. Klik file yang ingin ditambahkan.
    3. Klik Select.

      Thumbnail file akan ditampilkan di panel Prompt. Jumlah total token juga akan ditampilkan. Jika data perintah Anda melebihi batas token, token akan dipotong dan tidak disertakan dalam pemrosesan data Anda.

    4. Opsional: Untuk menampilkan jumlah token yang dihitung di file dokumen dan jumlah semua token, klik View tokens.

      Tampilan ID Token ke teks dan ID Token tidak menampilkan output yang berharga, karena token media tidak didukung.

      Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.

  7. Masukkan perintah teks Anda di panel Prompt. Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru.
  8. Opsional: Untuk menampilkan jumlah token yang dihitung di dokumen Anda, jumlah token teks, dan jumlah semua token, klik Lihat token. Anda dapat melihat token atau ID token dari perintah teks Anda.
    • Untuk melihat token dalam perintah teks yang ditandai dengan warna berbeda yang menandai batas setiap ID token, klik Token ID to text. Token media tidak didukung.
    • Untuk melihat ID token, klik ID Token.

      Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.

  9. Klik Kirim.
  10. Opsional: Untuk menyimpan perintah Anda ke Perintah saya, klik Simpan.
  11. Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Dapatkan kode.
  12. Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan.

Menetapkan parameter model

Parameter model berikut dapat ditetapkan pada model multimodal:

Top-P

Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K) hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 dengan nilai top-P 0.5, model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

Top-K

Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

Temperature (suhu)

Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan fallback respons, coba tingkatkan suhunya.

Parameter value yang valid

Parameter Gemini 1.0 Pro Vision Gemini 1.5 Pro Flash Gemini 1.5
Top-K 1 - 40 (default 32) Tidak didukung Tidak didukung
Top-P 0 - 1.0 (default 1.0) 0 - 1.0 (default 0.95) 0 - 1.0 (default 0.95)
Temperature (suhu) 0 - 1.0 (default 0.4) 0 - 2.0 (default 1.0) 0 - 2.0 (default 1.0)

Persyaratan dokumen

Jenis MIME yang diperlukan untuk PDF adalah application/pdf.

Praktik terbaik PDF

Saat menggunakan PDF, gunakan praktik terbaik dan informasi berikut untuk memperoleh hasil:

  • PDF diperlakukan sebagai gambar, sehingga satu halaman PDF dianggap sebagai satu halaman gambar.
    • Jumlah halaman yang didukung terbatas pada jumlah gambar yang didukung model dapat didukung. Untuk Gemini 1.0 Pro Vision, batasnya adalah 16. Sebagai Gemini 1.5 Pro dan Gemini 1.5 Flash batasnya adalah 300. Jika Anda memiliki dokumen, pertimbangkan untuk membaginya menjadi beberapa PDF untuk memprosesnya.
    • Saat menggunakan PDF sebagai input, biayanya mengikuti harga gambar Gemini. Sebagai misalnya, jika Anda menyertakan PDF dua halaman dalam panggilan Gemini API, Anda dikenai biaya input atas pemrosesan dua gambar.
  • Jika perintah Anda berisi satu PDF, tempatkan PDF sebelum teks .
  • Gunakan PDF yang dibuat dengan teks yang dirender sebagai teks, bukan menggunakan teks yang dipindai gambar. Format ini memastikan teks dapat dibaca oleh mesin sehingga lebih mudah untuk diedit, ditelusuri, dan dimanipulasi dibandingkan dengan PDF gambar yang dipindai. Ini memberikan hasil yang optimal saat bekerja dengan dokumen yang penuh teks seperti untuk kontrak.

Batasan

Meskipun model multimodal Gemini sangat canggih dalam banyak kasus penggunaan multimodal, penting untuk memahami keterbatasan model:

  • Penalaran spasial: Model ini tidak tepat dalam menemukan teks atau objek dalam PDF. Metode ini mungkin hanya menampilkan perkiraan jumlah objek.
  • Akurasi: Model mungkin berhalusinasi saat menafsirkan teks tulisan tangan dalam dokumen PDF.

Langkah selanjutnya