Geração de texto

A API Gemini pode gerar saída de texto quando fornece texto, imagens, vídeo e áudio como entrada.

Este guia mostra como gerar texto usando os métodos generateContent e streamGenerateContent. Para saber como trabalhar com os recursos de visão e áudio do Gemini, consulte os guias Vision e Áudio.

Gerar texto com base em uma entrada somente de texto

A maneira mais simples de gerar texto usando a API Gemini é fornecer ao modelo uma única entrada de texto, conforme mostrado neste exemplo:

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("How does AI work?")
print(response.text)

Nesse caso, a instrução ("Explique como a IA funciona") não inclui exemplos de saída, instruções do sistema ou informações de formatação. É uma abordagem zero-shot. Para alguns casos de uso, uma solicitação one-shot ou few-shot pode produzir uma saída mais alinhada às expectativas do usuário. Em alguns casos, também é possível fornecer instruções do sistema para ajudar o modelo a entender a tarefa ou seguir diretrizes específicas.

Gerar texto com base em entradas de texto e imagem

A API Gemini oferece suporte a entradas multimodais que combinam arquivos de texto e mídia. O exemplo a seguir mostra como gerar texto com base em uma entrada de texto e imagem:

import google.generativeai as genai
import PIL.Image

genai.configure(api_key="GEMINI_API_KEY")

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

Gerar um stream de texto

Por padrão, o modelo retorna uma resposta após concluir todo o processo de geração de texto. É possível conseguir interações mais rápidas sem esperar pelo resultado completo e, em vez disso, usar o streaming para processar resultados parciais.

O exemplo a seguir mostra como implementar o streaming usando o método streamGenerateContent para gerar texto de um comando de entrada somente texto.

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Explain how AI works", stream=True)
for chunk in response:
    print(chunk.text, end="")

Criar uma conversa

O SDK do Gemini permite coletar várias rodadas de perguntas e respostas, permitindo que os usuários avancem gradualmente para as respostas ou recebam ajuda com problemas de várias partes. Esse recurso do SDK oferece uma interface para acompanhar o histórico de conversas, mas, nos bastidores, usa o mesmo método generateContent para criar a resposta.

O exemplo de código a seguir mostra uma implementação básica de chat:

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

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)
response2 = chat.send_message("How many paws are in my house?")
print(response2.text)

Também é possível usar o streaming com chat, conforme mostrado no exemplo a seguir:

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

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.", stream=True)
for chunk in response:
    print(chunk.text, end="")

response2 = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response2:
    print(chunk.text, end="")

print(chat.history)

Configurar a geração de texto

Cada comando enviado ao modelo inclui parâmetros que controlam como o modelo gera respostas. Use GenerationConfig para configurar esses parâmetros. Se você não configurar os parâmetros, o modelo usará as opções padrão, que podem variar de acordo com o modelo.

O exemplo a seguir mostra como configurar várias das opções disponíveis.

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Explain how AI works",
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

print(response.text)

Adicionar instruções do sistema

As instruções do sistema permitem orientar o comportamento de um modelo com base nas suas necessidades e casos de uso específicos.

Ao fornecer instruções do sistema ao modelo, você proporciona ao modelo mais contexto para entender a tarefa, gerar respostas mais personalizadas e aderir a diretrizes específicas sobre toda a interação do usuário com o modelo. Também é possível especificar o comportamento no nível do produto definindo instruções do sistema, separadas dos comandos fornecidos pelos usuários finais.

É possível definir instruções do sistema ao inicializar o modelo:

model=genai.GenerativeModel(
  model_name="gemini-1.5-flash",
  system_instruction="You are a cat. Your name is Neko.")

Em seguida, é possível enviar solicitações ao modelo normalmente.

Para conferir um exemplo completo e interativo de uso de instruções do sistema, consulte o colab de instruções do sistema.

A seguir

Agora que você já aprendeu o básico da API Gemini, tente o seguinte:

  • Compreensão visual: aprenda a usar a compreensão visual nativa do Gemini para processar imagens e vídeos.
  • Entendimento de áudio: aprenda a usar o entendimento de áudio nativo do Gemini para processar arquivos de áudio.