Gerar texto usando a API Gemini

A API Gemini pode gerar uma saída de texto com base em vários tipos de entrada, incluindo como textos, imagens, vídeos e áudios. Você pode usar a geração de texto para vários aplicativos, incluindo:

  • Escrita criativa
  • Descrição ou interpretação de recursos de mídia
  • Preenchimento automático de texto
  • Resumir texto em formato livre
  • Como traduzir entre idiomas
  • Chatbots
  • Seus próprios novos casos de uso

Este guia mostra como gerar texto usando a generateContent e streamGenerateContent APIs e o SDK do lado do servidor de sua escolha. O foco está na saída de texto apenas texto e entrada de texto e imagem. Para saber mais sobre comandos multimodais com arquivos de áudio e vídeo, confira Como executar comandos com arquivos de mídia.

Antes de começar: configurar o projeto e a chave de API

Antes de chamar a API Gemini, você precisa definir seu projeto e configurar sua chave de API.

Gerar texto com base em uma entrada somente de texto

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

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

Nesse caso, a instrução ("Escreva uma história sobre uma mochila mágica") não inclua exemplos de saída, instruções do sistema ou informações de formatação. É zero-shot abordagem humilde. Para alguns casos de uso, one-shot ou comando few-shot pode produzir uma saída mais alinhada com as expectativas do usuário. Em alguns casos, talvez você também queira fornecer instruções do sistema para ajudar o modelo 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 texto com arquivos de mídia. O exemplo abaixo mostra como gerar texto com base em uma entrada de texto e imagem:

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)

Assim como os comandos somente de texto, os comandos multimodais podem envolver várias abordagens e refinamentos. Dependendo da saída deste exemplo, talvez você queira adicionar etapas ao comando ou dar instruções mais específicas. Para saber mais, consulte Estratégias de comandos de arquivos.

Gerar um stream de texto

Por padrão, o modelo retorna uma resposta depois de preencher todo o texto. processo de geração de demanda. Para ter interações mais rápidas, não espere resultado inteiro e, em vez disso, usar streaming para lidar com resultados parciais.

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

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)

Crie um chat interativo

Você pode usar a API Gemini para criar experiências de chat interativas para seus usuários. Usar o recurso de chat da API permite coletar várias rodadas de perguntas. e respostas, permitindo que os usuários caminham em direção às respostas ou obtenham ajuda com problemas de várias partes. Esse recurso é ideal para aplicativos que precisam comunicação contínua, como chatbots, instrutores interativos ou suporte ao cliente como assistentes de rede.

O exemplo de código abaixo mostra uma implementação básica de 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)

Configurar a geração de texto

Cada comando que você envia ao modelo inclui parâmetros que e controlam como o modelo gera respostas. Você pode usar GenerationConfig para configure esses parâmetros. Se você não configurar os parâmetros, o modelo usa 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.

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 especifica o número de respostas geradas a serem retornadas. Atualmente, esse valor só pode ser definido como 1. Se não for definido, o padrão será 1.

stopSequences especifica o conjunto de sequências de caracteres (até 5) que serão e interromper a geração de saídas. Se especificado, a API para na primeira aparição de um stop_sequence. A sequência de paradas não será incluída como parte do resposta.

maxOutputTokens define o número máximo de tokens a serem incluídos em um candidato.

temperature controla a aleatoriedade da saída. Use valores mais altos para respostas criativas e valores menores para respostas mais deterministas. Valores pode variar de [0,0, 2,0].

Também é possível configurar chamadas individuais para generateContent:

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

Todos os valores definidos na chamada individual substituem os valores no construtor do modelo.

A seguir

Neste guia, mostramos como usar generateContent e streamGenerateContent para gerar saídas de texto com base em entradas somente de texto e de texto e imagem. Para saber mais sobre como gerar texto usando a API Gemini, acesse os recursos abaixo:

  • Como executar comandos com arquivos de mídia: o A API Gemini oferece suporte a comandos com dados de texto, imagem, áudio e vídeo, também conhecidos como comandos multimodais.
  • Instruções do sistema: System permitem que você direcione o comportamento do modelo com base necessidades e casos de uso.
  • Orientação de segurança: às vezes, a IA generativa os modelos produzem saídas inesperadas, como saídas imprecisas, enviesada ou ofensiva. O pós-processamento e a avaliação humana são essenciais e limitar o risco de danos desses resultados.