Générer du texte à l'aide de l'API Gemini

L'API Gemini peut générer une sortie textuelle à partir de différents types d'entrées, y compris du texte, des images, de la vidéo et de l'audio. Vous pouvez utiliser la génération de texte y compris:

  • Écriture créative
  • Décrire ou interpréter des éléments multimédias
  • Saisie automatique de texte
  • Résumer du texte au format libre
  • Traduire d'une langue à une autre
  • chatbots
  • Vos nouveaux cas d'utilisation

Ce guide vous explique comment générer du texte à l'aide de la propriété generateContent et streamGenerateContent et le SDK côté serveur de votre choix. L'accent est mis sur la sortie textuelle de texte seul et de texte et d'image. Pour en savoir plus sur les requêtes multimodales avec des fichiers vidéo et audio, consultez Créer des invites avec des fichiers multimédias.

Avant de commencer: configurer votre projet et votre clé API

Avant d'appeler l'API Gemini, vous devez configurer votre projet et configurer votre clé API.

Générer du texte à partir d'une entrée textuelle uniquement

Le moyen le plus simple de générer du texte à l'aide de l'API Gemini est de fournir le modèle avec une seule entrée textuelle, comme illustré dans cet exemple:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

Dans ce cas, la requête ("Écrire une histoire sur un sac à dos magique") n'a pas inclure des exemples de sortie, des instructions système ou des informations de formatage. C'est un zéro objectif approche. Dans certains cas d'utilisation, one-shot ou Requête few-shot peut produire une sortie plus conforme aux attentes des utilisateurs. Dans certains cas, vous voudrez peut-être également fournir des instructions système pour que le modèle comprendre la tâche ou suivre des directives spécifiques.

Générer du texte à partir d'une entrée de texte et d'image

L'API Gemini accepte les entrées multimodales qui combinent du texte et des fichiers multimédias. L'exemple suivant montre comment générer du texte à partir d'une entrée de texte et d'image:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

Comme pour les requêtes contenant uniquement du texte, les requêtes multimodales peuvent impliquer différentes approches et améliorations. Selon le résultat de cet exemple, vous souhaiterez peut-être ajouter des étapes à la requête ou être plus précis dans vos instructions. Pour en savoir plus, consultez la page Stratégies d'invite de fichiers.

Générer un flux de texte

Par défaut, le modèle renvoie une réponse une fois que l'intégralité du texte a été saisie. de génération de texte. Vous pouvez obtenir des interactions plus rapides en n'attendant pas l'intégralité du résultat, et utilisez plutôt le traitement par flux pour gérer des résultats partiels.

L'exemple suivant montre comment implémenter un flux de données à l'aide de la méthode streamGenerateContent pour générer du texte à partir d'une requête d'entrée textuelle uniquement.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Créer une discussion interactive

Vous pouvez utiliser l'API Gemini pour créer des expériences de discussion interactives pour vos utilisateurs. La fonctionnalité de chat de l'API vous permet de recueillir plusieurs séries de questions et réponses, ce qui permet aux utilisateurs d'obtenir progressivement des réponses ou d'obtenir de l'aide avec des problèmes en plusieurs parties. Cette fonctionnalité est idéale pour les applications Communication continue, par exemple via des chatbots, des tuteurs interactifs ou un service client de l'IA générative.

L'exemple de code suivant illustre une implémentation de base du chat:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Configurer la génération de texte

Chaque requête envoyée au modèle inclut paramètres qui pour contrôler la façon dont le modèle génère les réponses. Vous pouvez utiliser GenerationConfig jusqu'à configurer ces paramètres. Si vous ne configurez pas ces paramètres, le modèle utilise des options par défaut, qui peuvent varier selon le modèle.

L'exemple suivant montre comment configurer plusieurs des options disponibles.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount spécifie le nombre de réponses générées à renvoyer. Actuellement, cette valeur ne peut être définie que sur 1. Si cette règle n'est pas configurée, la valeur par défaut est 1.

stopSequences spécifie l'ensemble de séquences de caractères (jusqu'à 5) qui devront et d'arrêter la génération du résultat. Si spécifié, l'API s'arrête à la première apparition d'un stop_sequence. La séquence d'arrêt ne sera pas incluse dans de réponse.

maxOutputTokens définit le nombre maximal de jetons à inclure dans un candidat.

temperature contrôle le caractère aléatoire de la sortie. Utilisez des valeurs plus élevées pour des réponses créatives et des valeurs inférieures pour des réponses plus déterministes. Valeurs peut être comprise entre [0,0 et 2,0].

Vous pouvez également configurer des appels individuels à generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Toutes les valeurs définies sur l'appel individuel remplacent les valeurs au niveau du constructeur de modèle.

Étape suivante

Ce guide vous explique comment utiliser generateContent et streamGenerateContent pour générer des sorties textuelles à partir d'entrées textuelles uniquement et d'entrées textuelles et illustrées. Pour en savoir plus sur la génération de texte à l'aide de l'API Gemini, consultez les ressources suivantes:

  • Invite avec des fichiers multimédias: l'option L'API Gemini prend en charge les requêtes contenant du texte, des images, de l'audio et de la vidéo, appelées requêtes multimodales.
  • Instructions relatives au système: Système vous permettent de contrôler le comportement du modèle en fonction besoins et cas d'utilisation.
  • Conseils de sécurité: parfois, l'IA générative les modèles produisent des résultats inattendus, tels que des résultats inexacts, biaisées ou choquantes. Le post-traitement et l'évaluation humaine sont essentiels pour limiter le risque de préjudice causé par de tels résultats.