Text mit der Vertex AI Gemini API generieren

In dieser Anleitung senden Sie eine Text-Prompt-Anfrage und eine multimodale Prompt- und Bildanfrage an die Vertex AI Gemini API und sehen sich die Antworten an.

Vorbereitung

Für diese Anleitung benötigen Sie ein Google Cloud -Projekt mit aktivierter Vertex AI API. Folgen Sie der Anleitung zur Einrichtung von Vertex AI, um diese Schritte auszuführen.

Vertex AI-Clientbibliothek als Abhängigkeit hinzufügen

Die Vertex AI-Clientbibliothek enthält viele Funktionen. Wenn Sie die Kompilierung beschleunigen möchten, aktivieren Sie nur die Funktionen, die Sie benötigen:

cargo add google-cloud-aiplatform-v1 --no-default-features --features prediction-service

Prompt an die Vertex AI Gemini API senden

  1. Initialisieren Sie den Client mit den Standardeinstellungen:
let client = PredictionService::builder().build().await?;
  1. Erstellen Sie den Modellnamen. In diesem Beispiel wird die Projekt-ID als Argument empfangen, ein fester Standort (global) verwendet und das Modell auf eine bestimmte Version von Gemini festgelegt:
const MODEL: &str = "gemini-3.8-flash";
let model = format!("projects/{project_id}/locations/global/publishers/google/models/{MODEL}");

Wenn Sie diese Funktion in Ihrem eigenen Code ausführen, übergeben Sie die Projekt-ID (ohne das Präfix projects/) des Projekts, das Sie in den Voraussetzungen ausgewählt haben.

  1. Senden Sie diese Anfrage:
let response = client
    .generate_content()
    .set_model(&model)
    .set_contents([Content::new()
        .set_role("user")
        .set_parts([Part::new().set_text(
            "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?",
        )])])
    .send()
    .await;
  1. Antwort drucken Mit dem Formatspezifizierer :#? können Sie die verschachtelten Antwortobjekte formatieren:
println!("RESPONSE = {response:#?}");

Text-Prompt: Code vervollständigen

use google_cloud_aiplatform_v1::client::PredictionService;
use google_cloud_aiplatform_v1::model::{Content, Part};

pub async fn sample(project_id: &str) -> anyhow::Result<()> {
    let client = PredictionService::builder().build().await?;

    const MODEL: &str = "gemini-3.8-flash";
    let model = format!("projects/{project_id}/locations/global/publishers/google/models/{MODEL}");

    let response = client
        .generate_content()
        .set_model(&model)
        .set_contents([Content::new()
            .set_role("user")
            .set_parts([Part::new().set_text(
                "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?",
            )])])
        .send()
        .await;
    println!("RESPONSE = {response:#?}");

    Ok(())
}

Prompt und Bild an die Vertex AI Gemini API senden

  1. Initialisieren Sie den Client mit den Standardeinstellungen:
let client = PredictionService::builder().build().await?;
  1. Modellnamen erstellen:
const MODEL: &str = "gemini-3.8-flash";
let model = format!("projects/{project_id}/locations/global/publishers/google/models/{MODEL}");
  1. Erstellen Sie den Bildteil der Anfrage:
Part::new().set_file_data(
    FileData::new()
        .set_mime_type("image/jpeg")
        .set_file_uri("gs://generativeai-downloads/images/scones.jpg"),
),
  1. Erstellen Sie den Text-Prompt-Teil der Anfrage:
Part::new().set_text("Describe this picture."),
  1. Senden Sie die vollständige Anfrage:
let response = client
    .generate_content()
    .set_model(&model)
    .set_contents([Content::new().set_role("user").set_parts([
        Part::new().set_file_data(
            FileData::new()
                .set_mime_type("image/jpeg")
                .set_file_uri("gs://generativeai-downloads/images/scones.jpg"),
        ),
        Part::new().set_text("Describe this picture."),
    ])])
    .send()
    .await;
  1. Vollständige Antwort ausgeben lassen:
println!("RESPONSE = {response:#?}");

Prompt und Bild: vollständiger Code

use google_cloud_aiplatform_v1::client::PredictionService;
use google_cloud_aiplatform_v1::model::{Content, FileData, Part};

pub async fn sample(project_id: &str) -> anyhow::Result<()> {
    let client = PredictionService::builder().build().await?;

    const MODEL: &str = "gemini-3.8-flash";
    let model = format!("projects/{project_id}/locations/global/publishers/google/models/{MODEL}");

    let response = client
        .generate_content()
        .set_model(&model)
        .set_contents([Content::new().set_role("user").set_parts([
            Part::new().set_file_data(
                FileData::new()
                    .set_mime_type("image/jpeg")
                    .set_file_uri("gs://generativeai-downloads/images/scones.jpg"),
            ),
            Part::new().set_text("Describe this picture."),
        ])])
        .send()
        .await;
    println!("RESPONSE = {response:#?}");

    Ok(())
}