Génération de texte

Cette page vous explique comment envoyer des requêtes de chat au modèle Gemini à l'aide de la Cloud de Confiance console, de l'API REST et des SDK compatibles.

Pour savoir comment ajouter des images et d'autres contenus multimédias à votre requête, consultez Compréhension des images.

Pour obtenir la liste des langues compatibles avec Gemini, consultez Langues acceptées.


Pour explorer les modèles d'IA générative et les API disponibles sur Gemini Enterprise Agent Platform, accédez à Model Garden dans la Cloud de Confiance console.

Accéder à Model Garden


Si vous souhaitez utiliser Gemini directement à partir de vos applications mobiles et Web, consultez les SDK clients Firebase AI Logic pour les applications Swift, Android, Web, Flutter et Unity.

Générer du texte

Pour tester et effectuer des itérations de requêtes de chat, nous vous recommandons d'utiliser la Cloud de Confiance console. Pour envoyer des requêtes de façon programmatique au modèle, vous pouvez vous servir de l'API REST, du SDK Google Gen AI, du SDK Agent Platform, ou de l'un des autres SDK et bibliothèques compatibles.

Vous pouvez utiliser des instructions système pour orienter le comportement du modèle en fonction d'un besoin ou d'un cas d'utilisation spécifiques. Par exemple, vous pouvez définir un persona ou un rôle pour un chatbot qui répond aux demandes adressées au service client. Pour en savoir plus, consultez les exemples de code d'instructions système.

Vous pouvez utiliser le SDK Google Gen AI pour envoyer des requêtes si vous utilisez Gemini 2.5 Flash.

Voici un exemple de génération de texte.

Console

Pour envoyer une requête de chat dans la Cloud de Confiance console à l'aide d'Agent Studio, procédez comme suit :

  1. Dans la section Agent Platform de la Cloud de Confiance console, accédez à la Agent Studio page.

    Accéder à Agent Studio

  2. Dans Démarrer une conversation, cliquez sur Chat textuel.
  3. Facultatif : Configurez le modèle et les paramètres :

    • Modèle : sélectionnez Gemini Pro.
    • Région : sélectionnez la région que vous souhaitez utiliser.
    • Température : utilisez le curseur ou la zone de texte pour saisir une valeur de température.

      La température est utilisée pour l'échantillonnage pendant la génération des réponses, qui se produit lorsque topP et topK sont appliqués. La température permet de contrôler le degré de hasard dans la sélection des jetons. Les températures inférieures sont idéales pour les requêtes qui nécessitent une réponse moins ouverte ou créative, tandis que des températures plus élevées peuvent conduire à des résultats plus diversifiés ou créatifs. Une température de 0 signifie que les jetons de probabilité les plus élevés sont toujours sélectionnés. Dans ce cas, les réponses à un prompt donné sont principalement déterministes, mais une légère variation est toujours possible.

      Si le modèle renvoie une réponse trop générique ou trop courte, ou s'il renvoie une réponse de remplacement, essayez d'augmenter la température. Si le modèle entre en génération infinie, augmenter la température à au moins 0.1 peut améliorer les résultats.

      1.0 est la valeur de départ recommandée pour la température.
    • Limite de jeton : utilisez le curseur ou la zone de texte pour saisir une valeur correspondant à la limite maximale de sortie.

      Nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.

      Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.

    • Ajouter une séquence d'arrêt : facultatif. Saisissez une séquence d'arrêt, qui est une série de caractères incluant des espaces. Si le modèle rencontre une séquence d'arrêt, la génération de réponse s'arrête. La séquence d'arrêt n'est pas incluse dans la réponse, et vous pouvez ajouter jusqu'à cinq séquences d'arrêt.
  4. Facultatif : pour configurer les paramètres avancés, cliquez sur Avancé , puis configurez les paramètres comme suit :

    Cliquez pour développer les configurations avancées

    • Top-K : utilisez le curseur ou la zone de texte pour saisir une valeur.

      Le top-K modifie la façon dont le modèle sélectionne les jetons pour la sortie. Une valeur top-K de 1 signifie que le prochain jeton sélectionné est le plus probable parmi tous les jetons du vocabulaire du modèle (également appelé décodage glouton), tandis qu'une valeur top-K de 3 signifie que le jeton suivant est sélectionné parmi les trois jetons les plus probables en utilisant la température.

      Pour chaque étape de sélection du jeton, les jetons top-K avec les probabilités les plus élevées sont échantillonnés. Les jetons sont ensuite filtrés en fonction du top-P avec le jeton final sélectionné à l'aide de l'échantillonnage de température.

      Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires.

    • Top-P: utilisez le curseur ou la zone de texte pour saisir une valeur. Les jetons sont sélectionnés du plus probable au moins probable, jusqu'à ce que la somme de leurs probabilités soit égale à la valeur de top-P. Pour obtenir les résultats les moins variables, définissez "Top-P" sur `0`.
    • Activer l'ancrage : ajoutez une source d'ancrage et un chemin pour personnaliser cette fonctionnalité.
  5. Saisissez votre prompt textuel dans le volet Prompt. Le modèle utilise les messages précédents comme contexte pour les nouvelles réponses.
  6. Facultatif : Pour afficher le nombre de jetons de texte, cliquez sur Afficher les jetons. Vous pouvez afficher les jetons ou les ID de jetons de votre prompt de texte.
    • Pour afficher les jetons dans le prompt de texte, qui sont surlignés avec différentes couleurs pour marquer la limite de chaque ID de jeton, cliquez sur ID de jeton en texte. Les jetons multimédias ne sont pas acceptés.
    • Pour afficher les ID de jeton, cliquez sur ID de jeton.

      Pour fermer le volet de l'outil de tokenisation, cliquez sur X ou en dehors du volet.

  7. Cliquez sur Envoyer.
  8. Facultatif : pour enregistrer votre prompt dans Mes prompts, cliquez sur Enregistrer.
  9. Facultatif : pour obtenir le code Python ou la commande curl de votre requête, cliquez sur  Obtenir le code.
  10. Facultatif : pour effacer tous les messages précédents, cliquez sur Effacer la conversation

Python

Installer

pip install --upgrade google-genai

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="How does AI work?",
)
print(response.text)
# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

Go

Découvrez comment installer ou mettre à jour Go.

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import (
	"context"
	"fmt"
	"io"

	"google.golang.org/genai"
)

// generateWithText shows how to generate text using a text prompt.
func generateWithText(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	resp, err := client.Models.GenerateContent(ctx,
		"gemini-2.5-flash",
		genai.Text("How does AI work?"),
		nil,
	)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)
	// Example response:
	// That's a great question! Understanding how AI works can feel like ...
	// ...
	// **1. The Foundation: Data and Algorithms**
	// ...

	return nil
}

Node.js

Installer

npm install @google/genai

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const response = await client.models.generateContent({
    model: 'gemini-3-flash-preview',
    contents: 'How does AI work?',
  });

  console.log(response.text);

  return response.text;
}

Java

Découvrez comment installer ou mettre à jour Java.

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True


import com.google.genai.Client;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;

public class TextGenerationWithText {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with text input
  public static String generateContent(String modelId) {
    // 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 (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(modelId, "How does AI work?", null);

      System.out.print(response.text());
      // Example response:
      // Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
      //
      // Here's a simplified overview:
      // ...
      return response.text();
    }
  }
}

C#

Découvrez comment installer ou mettre à jour C#.

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True


using Google.GenAI;
using Google.GenAI.Types;
using System;
using System.Threading.Tasks;

public class TextGenWithTxt
{
    public async Task<string> GenerateContent(
        string projectId = "your-project-id",
        string location = "global",
        string model = "gemini-2.5-flash")
    {
        await using var client = new Client(
            project: projectId,
            location: location,
            vertexAI: true,
            httpOptions: new HttpOptions { ApiVersion = "v1" });

        GenerateContentResponse response = await client.Models.GenerateContentAsync(model: model, contents: "How does AI work?");

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);
        // Example response:
        // AI, or Artificial Intelligence, at its core, is about creating machines that can perform...
        // Here's a breakdown of how it generally works...
        return responseText;
    }
}

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • GENERATE_RESPONSE_METHOD : type de réponse que le modèle doit générer. Choisissez la méthode de renvoi de la réponse du modèle :
    • streamGenerateContent : la réponse s'affiche progressivement à mesure qu'elle est générée afin que les utilisateurs ressentent moins la latence.
    • generateContent : la réponse est renvoyée une fois qu'elle a été entièrement générée.
  • LOCATION : région dans laquelle traiter la requête.
  • PROJECT_ID : Votre ID de projet. .
  • MODEL_ID : ID du modèle multimodal que vous souhaitez utiliser.
  • TEXT1
    Instructions textuelles à inclure dans le premier prompt de la conversation multitours. Par exemple, What are all the colors in a rainbow?.
  • TEXT2
    Instructions textuelles à inclure dans le prompt. Par exemple, Why does it appear when it rains?.
  • TEMPERATURE : la température est utilisée pour l'échantillonnage pendant la génération des réponses, qui se produit lorsque topP et topK sont appliqués. La température permet de contrôler le degré de hasard dans la sélection des jetons. Les températures inférieures sont idéales pour les requêtes qui nécessitent une réponse moins ouverte ou créative, tandis que des températures plus élevées peuvent conduire à des résultats plus diversifiés ou créatifs. Une température de 0 signifie que les jetons de probabilité les plus élevés sont toujours sélectionnés. Dans ce cas, les réponses à un prompt donné sont principalement déterministes, mais une légère variation est toujours possible.

    Si le modèle renvoie une réponse trop générique ou trop courte, ou s'il renvoie une réponse de remplacement, essayez d'augmenter la température. Si le modèle entre en génération infinie, augmenter la température à au moins 0.1 peut améliorer les résultats.

    1.0 est la valeur de départ recommandée pour la température.

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

cat > request.json << 'EOF'
{
  "contents": [
    {
      "role": "user",
      "parts": { "text": "TEXT1" }
    },
    {
      "role": "model",
      "parts": { "text": "What a great question!" }
    },
    {
      "role": "user",
      "parts": { "text": "TEXT2" }
    }
  ],
  "generation_config": {
    "temperature": TEMPERATURE
  }
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

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/MODEL_ID:GENERATE_RESPONSE_METHOD"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

@'
{
  "contents": [
    {
      "role": "user",
      "parts": { "text": "TEXT1" }
    },
    {
      "role": "model",
      "parts": { "text": "What a great question!" }
    },
    {
      "role": "user",
      "parts": { "text": "TEXT2" }
    }
  ],
  "generation_config": {
    "temperature": TEMPERATURE
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

$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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON semblable à la suivante.

Réponses en streaming et sans streaming

Vous pouvez choisir si le modèle génère des réponses qui s'affichent progressivement ou en une fois. Pour les réponses qui s'affichent progressivement, vous recevez chaque réponse dès que son jeton de sortie est généré. Pour les réponses qui s'affichent en une fois, vous recevez toutes les réponses lorsque l'ensemble des jetons de sortie sont générés.

Voici un exemple de génération de texte en streaming.

Python

Avant d'essayer cet exemple, suivez les instructions de configuration Python décrites dans le guide de démarrage rapide d'Agent Platform à l'aide des bibliothèques clientes.

Pour vous authentifier auprès d'Agent Platform, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
chat_session = client.chats.create(model="gemini-3.5-flash")

for chunk in chat_session.send_message_stream("Why is the sky blue?"):
    print(chunk.text, end="")
# Example response:
# The
#  sky appears blue due to a phenomenon called **Rayleigh scattering**. Here's
#  a breakdown of why:
# ...

Comportement de chat multitours de Gemini

Lorsque vous utilisez le chat multitours, Gemini Enterprise Agent Platform stocke localement le contenu initial et les requêtes que vous avez envoyés au modèle. Gemini Enterprise Agent Platform envoie toutes ces données avec chaque requête suivante au modèle. Par conséquent, les coûts d'entrée pour chaque message que vous envoyez correspondent à un total cumulé de toutes les données déjà envoyées au modèle. Si votre contenu initial est suffisamment volumineux, envisagez d'utiliser la mise en cache du contexte lorsque vous créez l'objet de modèle initial pour mieux contrôler les coûts d'entrée.

Étape suivante