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 Visão e Áudio.
Antes de começar: configure o projeto e a chave de API
Antes de chamar a API Gemini, você precisa configurar seu projeto e a chave de API.
Gerar texto com base em 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:
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 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 texto com arquivos de mídia. O exemplo a seguir 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 desse exemplo, talvez seja necessário adicionar etapas ao comando ou ser mais específico nas instruções. Para saber mais, consulte Estratégias de solicitação de arquivo.
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.
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 interativo para seus usuários. Usando o recurso de chat da API, você pode 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 é ideal para aplicativos que exigem comunicação contínua, como bots de chat, instrutores interativos ou assistentes de suporte ao cliente.
O exemplo de código a seguir 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)
Ativar o streaming de chat
Também é possível usar o streaming com chat, conforme mostrado no exemplo a seguir:
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)
print("_" * 80)
response = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
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.
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
interrompe a geração de saída. Se especificado, a API vai parar na primeira aparição
de um stop_sequence
. A sequência de paradas não será incluída como parte da
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
mais criativas e valores mais baixos para respostas mais deterministas. Os valores
podem 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
Agora que você já aprendeu os conceitos básicos 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.
- Instruções do sistema: as instruções do sistema permitem orientar o comportamento do modelo com base nas suas necessidades e casos de uso específicos.
- Entendimento de áudio: aprenda a usar o entendimento de áudio nativo do Gemini para processar arquivos de áudio.