Gemini 2.0 Flash Thinking

O modelo de pensamento rápido Gemini 2.0 é um modelo experimental treinado para gerar o "processo de pensamento" que o modelo passa como parte da resposta. Como resultado, o modelo de pensamento rápido tem capacidades de raciocínio mais fortes nas respostas do que o modelo experimental do Gemini 2.0 Flash.

Usar modelos de pensamento

Os modelos de pensamento rápido estão disponíveis no Google AI Studio e na API Gemini. Uma das principais considerações ao usar um modelo que retorna o processo de pensamento é a quantidade de informações que você quer expor aos usuários finais, já que o processo de pensamento pode ser bastante detalhado.

Por padrão, a API Gemini não retorna pensamentos na resposta. Para incluir pensamentos na resposta, defina o campo include_thoughts como verdadeiro, conforme mostrado nos exemplos.

Enviar uma solicitação básica

Python

Este exemplo usa o novo SDK do Google Genai, que é útil neste contexto para analisar "pensamentos" de forma programática. Para usar o novo parâmetro thought, você precisa usar a versão v1alpha da API Gemini.

from google import genai

client = genai.Client(api_key='GEMINI_API_KEY', http_options={'api_version':'v1alpha'})

config = {'thinking_config': {'include_thoughts': True}}
response = client.models.generate_content(
    model='gemini-2.0-flash-thinking-exp',
    contents='Explain how RLHF works in simple terms.',
    config=config
)

# Usually the first part is the thinking process, but it's not guaranteed
print(response.candidates[0].content.parts[0].text)
print(response.candidates[0].content.parts[1].text)

Trabalhar com pensamentos

Em uma solicitação padrão, o modelo responde com duas partes, os pensamentos e a resposta do modelo. É possível verificar programaticamente se uma parte é um pensamento ou não verificando se o campo part.thought está definido como True.

Python

Para usar o novo parâmetro thought, é necessário usar a versão v1alpha da API Gemini com o novo SDK do Google Genai.

from google import genai

client = genai.Client(api_key='GEMINI_API_KEY', http_options={'api_version':'v1alpha'})

config = {'thinking_config': {'include_thoughts': True}}
response = client.models.generate_content(
    model='gemini-2.0-flash-thinking-exp',
    contents='Explain how RLHF works in simple terms.',
    config=config
)

for part in response.candidates[0].content.parts:
    if part.thought:
        print(f"Model Thought:\n{part.text}\n")
    else:
        print(f"\nModel Response:\n{part.text}\n")

Pensamento de modelo de fluxo

Os modelos de pensamento geralmente levam mais tempo para responder do que os modelos padrão. Para transmitir o modelo de pensamento, use o método generate_content_stream.

Python

Para usar o novo parâmetro thought, é necessário usar a versão v1alpha da API Gemini com o novo SDK do Google Genai.

from google import genai

client = genai.Client(api_key='GEMINI_API_KEY', http_options={'api_version':'v1alpha'})

config = {'thinking_config': {'include_thoughts': True}}

for chunk in client.models.generate_content_stream(
    model='gemini-2.0-flash-thinking-exp',
    contents='What is your name?',
    config=config
):
    for part in chunk.candidates[0].content.parts:
        if part.thought:
            print(f"Model Thought Chunk:\n{part.text}\n")
        else:
            print(f"\nModel Response:\n{part.text}\n")

Conversas de pensamento com vários turnos

Durante conversas com várias falas, o modelo não transmite por padrão os pensamentos da fala anterior para a próxima, mas você ainda pode conferir os pensamentos na fala mais recente.

Python

O novo SDK do Google GenAI permite criar uma sessão de chat com várias interações, o que é útil para gerenciar o estado de uma conversa.

import asyncio
from google import genai

client = genai.Client(api_key='GEMINI_API_KEY', http_options={'api_version':'v1alpha'})

config = {'thinking_config': {'include_thoughts': True}}

async def main():
    chat = client.aio.chats.create(
        model='gemini-2.0-flash-thinking-exp',
        config=config
    )
    response = await chat.send_message('What is your name?')
    print(response.text)
    response = await chat.send_message('What did you just say before this?')
    print(response.text)

asyncio.run(main())

Limitações

O modelo de pensamento rápido é experimental e tem as seguintes limitações:

  • Somente entrada de texto e imagem
  • Saída somente de texto
  • Nenhum modo JSON ou base de pesquisa

A seguir