Programa
O Claude 3.7 Sonnet é o mais recente modelo de IA da Anthropic, oferecendo recursos de raciocínio aprimorados por meio do novo Thinking Mode. Ele pode processar 200 mil tokens de contexto, o que o torna ideal para análises de pesquisas complexas.
Neste tutorial, explicarei passo a passo como você pode criar um Analisador de artigos de pesquisa usando o Claude 3.7 Sonnetdo Claude, capaz de:
- Extração de insights e descobertas importantes de documentos de pesquisa.
- Identificar as limitações e desvantagens de cada documento.
- Encontrar interconexões e citações compartilhadas entre vários artigos.
- Geração de uma nova ideia de pesquisa com base nos artigos analisados.
Também integraremos o Thinking Mode do Claude 3.7 Sonnet ao Gradio para permitir que os usuários carreguem vários documentos de pesquisa e recebam insights estruturados.
Neste blog, vamos nos concentrar na parte prática. Se você estiver procurando apenas uma visão geral, recomendo este artigo sobre Soneto do Claude 3.7.
Desenvolver aplicativos de IA
Visão geral do projeto: Analisador de trabalhos de pesquisa com o soneto de Claude 3.7
Desenvolveremos um analisador de trabalhos de pesquisa com base no Gradio que permite aos usuários:
- Faça upload de vários trabalhos de pesquisa em formato PDF.
- Extraia as principais contribuições e limitações de cada documento.
- Identificar conexões, citações e ideias de pesquisa que se sobrepõem.
- Gerar uma nova ideia de pesquisa usando insights de vários documentos.
Otimização de custos
Para otimizar os custos da API Sonnet do Claude 3.7, precisamos alinhar seu uso com as necessidades do projeto, pois os tokens de entrada custam US$ 3/M e os tokens de saída, incluindo o Thinking Mode, custam US$ 15/M.
Precisamos reduzir as despesas usando cache imediatoprocessamento em lote e modo de streaming para respostas longas. Podemos até mesmo otimizar o Thinking Mode definindo um orçamento de tokens menor (a partir de 1.024 tokens) e aumentando-o somente quando necessário.
Você pode saber mais sobre como otimizar o custo da API na documentação oficial do Anthropic documentação.
O que é o modo de pensamento no Soneto de Claude 3.7?
Antes de começarmos, vamos esclarecer o que é o modo de pensamento, caso você não esteja familiarizado com ele. O Thinking Mode é um novo recurso do Claude 3.7 Sonnet que permite o raciocínio passo a passo antes de gerar a resposta final. Ele permite que o modelo:
- Decompor problemas complexos de pesquisa em etapas estruturadas e lógicas.
- Fornecer insights transparentes sobre seu raciocínio interno.
- Melhore a precisão científica evitando alucinações na análise de pesquisas.
Em poucas palavras, é assim que funciona:
- Geração de blocos de pensamento: Claude primeiro produz etapas intermediárias de raciocínio em um formato estruturado, facilitando a análise aprofundada e a decomposição lógica do problema.
- Refinamento iterativo: O modelo avalia seu próprio raciocínio, integrando percepções relevantes e filtrando as inconsistências para garantir a coerência e a validade científica.
- Síntese da resposta final: As percepções estruturadas da fase de raciocínio são sintetizadas em um resultado bem formulado, aumentando a clareza, a precisão e a relevância contextual.
Etapa 1: Pré-requisitos
Antes de começar, precisamos configurar a chave da API do Anthropic:
1. Comece fazendo login no console do Anthropic: https://console.anthropic.com/
2. Clique em Get API Keys (Obter chaves de API).
3. Você será redirecionado para a guia API Keys (Chaves de API). Clique em Create API Key e digite o nome da chave.
4. Copie essa chave e salve-a para referência futura.
5. Agora, adicione algum crédito à sua conta de faturamento, na guia Billing. Basta clicar em comprar créditos e adicionar cerca de US$ 5 à sua conta (suficiente para este projeto).
Agora você tem a chave de API instalada. Agora, vamos nos certificar de que temos as dependências necessárias instaladas.
pip install anthropic gradio PyPDF2
Depois de instalado, importe as bibliotecas necessárias:
import anthropic
import PyPDF2
import os
import gradio as gr
Etapa 2: Configuração da API do Claude 3.7 Sonnet
Agora que importamos todas as bibliotecas necessárias, vamos configurar a API do Claude.
Se estiver usando o Google Colab, você poderá salvar a chave da API na guiaSecrets e, em seguida, usar a função get()
para acessá-la. Caso contrário, você pode passar a chave da API diretamente para o seu código (não recomendado).
Em seguida, inicializamos o cliente Claude usando a biblioteca Anthropic e passamos a chave da API.
# If using Google Colab Secrets
from google.colab import userdata
API_KEY = userdata.get('claude-3.7-sonnet')
client = anthropic.Anthropic(
api_key=API_KEY,
)
Isso conclui nossa parte de configuração. Em seguida, trabalhamos na parte de extração de texto.
Etapa 3: Extração de texto de documentos de pesquisa
Usaremos o PyPDF2 para extrair texto de arquivos PDF carregados. Claude 3.7 O Sonnet aceita apenas texto e imagens como entrada. Portanto, extraímos o texto antecipadamente para um processamento eficiente e, ao mesmo tempo, maximizamos os recursos do Claude 3.7 Sonnet with Thinking Mode.
# Function to extract text from a PDF file
def extract_text_from_pdf(pdf_path):
"""Extracts text from a given PDF file."""
text = ""
with open(pdf_path, "rb") as f:
reader = PyPDF2.PdfReader(f)
for page in reader.pages:
text += page.extract_text() + "\n"
return text.strip()
A função extract_text_from_pdf()
lê um arquivo PDF, extrai o texto de cada página usando PyPDF2.PdfReader()
e retorna o texto combinado como uma cadeia de caracteres.
Etapa 4: Execução da análise do trabalho de pesquisa
Agora que temos o texto extraído, passamos a usar o modo de pensamento do Soneto de Claude 3.7 modo de pensamento e fluxo para analisar vários documentos e gerar uma ideia de pesquisa estruturada.
O modo de streaming garante o tratamento eficiente de grandes respostas, fornecendo resultados progressivamente, reduzindo os tempos de espera e evitando o tempo limite da API. O modo de pensamento aprimora o raciocínio complexo, permitindo que o modelo gere pensamentos internos estruturados antes de formular uma resposta final, garantindo insights bem justificados.
# Function to analyze research papers with streaming
def analyze_papers_streaming(paper_texts, paper_count):
"""Uses Claude 3.7 Sonnet with Thinking Mode in streaming mode to analyze papers, find drawbacks, and generate a research project."""
formatted_papers = "\n\n".join([f"### Paper {i+1}:\n{paper}" for i, paper in enumerate(paper_texts)])
prompt = f"""
You are an AI research assistant. You have been provided with {paper_count} research papers.
Your task is to analyze these papers and perform the following:
1. **Summarize each paper** with its core contributions and findings.
2. **Identify key drawbacks** of each paper, focusing on limitations, gaps, or areas needing improvement.
3. **Find interconnections and citations** between the papers—what ideas, methods, or datasets do they share?
4. **Propose a novel research idea** that addresses a major limitation across these papers.
- Suggest how techniques from different papers can be combined to solve a problem.
- Ensure the idea is practical and feasible for further research.
- Justify why this approach is promising.
Below are the research papers
{formatted_papers}
"""
results = {"thinking": "", "research_idea": ""}
with client.messages.stream(
model="claude-3-7-sonnet-20250219",
max_tokens=25000,
thinking={
"type": "enabled",
"budget_tokens": 16000 # Large budget for deep reasoning
},
messages=[{"role": "user", "content": prompt}]
) as stream:
current_block_type = None
for event in stream:
if event.type == "content_block_start":
current_block_type = event.content_block.type
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
results["thinking"] += event.delta.thinking
elif event.delta.type == "text_delta":
results["research_idea"] += event.delta.text
elif event.type == "message_stop":
break
return results["thinking"], results["research_idea"]
A função analyze_papers_streaming()
executa as seguintes etapas:
- Formata os papéis de entrada: A função recebe uma lista de textos de artigos de pesquisa extraídos, juntamente com o número de artigos, e a estrutura para o prompt.
- Constrói um prompt para o Soneto de Claude 3.7: O prompt instrui o modelo a:
- Faça um resumo de cada documento.
- Identificar as principais desvantagens.
- Encontre interconexões entre os documentos.
- Gerar uma nova ideia de pesquisa combinando técnicas de diferentes documentos.
- Inicializa a solicitação de API de streaming: Uma vez definido o prompt, em seguida, usamos
client.messages.stream()
para enviar a solicitação ao Claude 3.7 Sonnet. Isso permite o modo de raciocínio combudget_tokens=16000
emax_tokens=25000
para aumentar a duração da resposta. - Processa respostas de fluxo contínuo: A função itera pelos eventos de resposta transmitidos e identifica diferentes blocos de resposta. Quando o streaming está ativado, o modelo envia conteúdo progressivamente. Recebemos eventos
content_block_start
para indicar o início de um bloco de resposta. À medida que o modelo gera resultados, os eventosthinking_delta
contêm etapas intermediárias de raciocínio, enquanto os eventostext_delta
fornecem os insights finais da pesquisa. O processo continua até que um eventomessage_stop
sinalize a conclusão da resposta. - Resultados da análise de retornos: Os resultados finais são duas respostas estruturadas que contêm o processo de raciocínio interno do modelo e a ideia de pesquisa final que combina as percepções dos documentos fornecidos.
Você pode saber mais sobre como refinar as técnicas de estímulo para o pensamento ampliado aqui.
Etapa 5: Criando a interface do usuário do Gradio
Agora que nossa lógica principal foi criada, continuamos a integrá-la ao Gradio, permitindo que os usuários façam upload de artigos de pesquisa e recebam insights estruturados.
# Gradio UI function
def gradio_interface(pdfs):
paper_texts = [extract_text_from_pdf(pdf.name) for pdf in pdfs]
paper_count = len(paper_texts) # Count number of provided papers
thinking, research_idea = analyze_papers_streaming(paper_texts, paper_count)
return thinking, research_idea
# Set up the Gradio app
demo = gr.Interface(
fn=gradio_interface,
inputs=gr.File(file_types=[".pdf"], label="Upload Research Papers", file_count="multiple"),
outputs=[gr.Textbox(label="Thinking Process"), gr.Textbox(label="Research Idea")],
title="Claude 3.7 Sonnet - Powered Research Paper Analyzer",
description="Upload multiple research papers to extract insights, identify key limitations, and generate a novel research idea."
)
if __name__ == "__main__":
demo.launch(debug=True)
O código acima configura uma UI do Gradio em que os usuários podem carregar vários PDFs, que são processados para extrair texto, analisar insights importantes e gerar novas ideias de pesquisa usando o modo pensamento e modo de fluxo.
Conclusão
Neste tutorial, criamos um analisador de artigos de pesquisa com tecnologia de IA usando o Claude 3.7 Sonnet, permitindo que os pesquisadores extraiam insights com eficiência, identifiquem limitações e gerem novas ideias de pesquisa a partir de vários artigos. Ao usar o modo de pensamento, o modelo executa um raciocínio profundo, tornando-o uma ferramenta eficaz para revisões de literatura e síntese de pesquisa.

Sou Google Developers Expert em ML (Gen AI), Kaggle 3x Expert e Women Techmakers Ambassador com mais de 3 anos de experiência em tecnologia. Fui cofundador de uma startup de tecnologia de saúde em 2020 e estou fazendo mestrado em ciência da computação na Georgia Tech, com especialização em machine learning.