Programa
Claude 3.7 Sonnet es el último modelo de IA de Anthropic, que ofrece capacidades de razonamiento mejoradas a través de su nuevo Modo Pensar. Puede procesar 200.000 tokens de contexto, lo que lo hace ideal para el análisis de investigaciones complejas.
En este tutorial, te explicaré paso a paso cómo construir un Analizador de Trabajos de Investigación utilizando Claude 3.7 Sonnetcapaz de
- Extraer ideas y conclusiones clave de los trabajos de investigación.
- Identificar las limitaciones e inconvenientes de cada documento.
- Encontrar interconexiones y citas compartidas entre varios documentos.
- Generar una idea de investigación novedosa basada en los trabajos analizados.
También integraremos el Modo Pensar de Claude 3.7 Sonnet con Gradio para que los usuarios puedan subir varios trabajos de investigación y recibir perspectivas estructuradas.
En este blog nos centraremos en la parte práctica; si sólo buscas una visión general, te recomiendo este artículo sobre Soneto Claude 3.7.
Desarrollar aplicaciones de IA
Resumen del proyecto: Analizador de Trabajos de Investigación con el Soneto Claude 3.7
Desarrollaremos un Analizador de Trabajos de Investigación basado en Gradio que permita a los usuarios:
- Sube varios trabajos de investigación en formato PDF.
- Extrae las aportaciones y limitaciones clave de cada artículo.
- Identifica conexiones, citas e ideas de investigación superpuestas.
- Genera una idea de investigación novedosa utilizando las ideas de varios artículos.
Optimización de costes
Para optimizar los costes de la API de Sonnet Claude 3.7 tenemos que alinear su uso con las necesidades del proyecto, ya que los tokens de entrada cuestan 3 $/M y los tokens de salida, incluido el Modo Pensar, cuestan 15 $/M.
Necesitamos reducir gastos utilizando caché rápidael procesamiento por lotes y el modo streaming para las respuestas largas. Incluso podemos optimizar el Modo Pensar fijando un presupuesto de fichas más bajo (a partir de 1.024 fichas) y aumentándolo sólo cuando sea necesario.
Puedes obtener más información sobre la optimización del coste de la API en la documentación oficial de Anthropic de Anthropic.
¿Qué es el modo de pensar en el Soneto Claude 3.7?
Antes de empezar, vamos a aclarar qué es el modo pensar, por si no estás familiarizado con él. El Modo Pensar es una nueva función de Claude 3.7 Sonnet que permite razonar paso a paso antes de generar la respuesta final. Permite al modelo
- Desglosa los problemas de investigación complejos en pasos estructurados y lógicos.
- Proporcionar una visión transparente de su razonamiento interno.
- Mejora la precisión científica evitando las alucinaciones en el análisis de la investigación.
En pocas palabras, así es como funciona:
- Generación de bloques de pensamiento: Claude primero produce pasos intermedios de razonamiento en un formato estructurado, facilitando el análisis en profundidad y la descomposición lógica del problema.
- Perfeccionamiento iterativo: El modelo evalúa su propio razonamiento, integrando las ideas relevantes al tiempo que filtra las incoherencias para garantizar la coherencia y la validez científica.
- Síntesis de la respuesta final: Las ideas estructuradas de la fase de reflexión se sintetizan en un resultado bien formulado, mejorando la claridad, la precisión y la relevancia contextual.
Paso 1: Requisitos previos
Antes de empezar, tenemos que configurar la clave API de Anthropic:
1. Empieza por conectarte a la consola de Anthropic: https://console.anthropic.com/
2. Haz clic en Obtener claves API.
3. Serás redirigido a la pestaña Claves API. Haz clic en Crear API Clave e introduce el nombre de tu clave.
4. Copia esta clave y guárdala para futuras consultas.
5. Ahora, añade algo de crédito a tu cuenta de facturación, en la pestaña Facturación. Simplemente haz clic en comprar créditos y añade unos 5 $ a tu cuenta (suficiente para este proyecto).
Ya tenemos la Clave API. Asegurémonos ahora de que tenemos instaladas las dependencias necesarias.
pip install anthropic gradio PyPDF2
Una vez instalado, importa las bibliotecas necesarias:
import anthropic
import PyPDF2
import os
import gradio as gr
Paso 2: Configuración de la API Claude 3.7 Sonnet
Ahora que hemos importado todas las bibliotecas necesarias, configuramos la API Claude.
Si utilizas Google Colab, puedes guardar la clave API en la pestañaSecretos y luego utilizar la función get()
para acceder a ella. De lo contrario, puedes pasar la clave API directamente a tu código (no recomendado).
A continuación, inicializamos el cliente Claude utilizando la biblioteca Anthropic e introducimos la clave 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,
)
Esto completa nuestra parte de configuración. A continuación, trabajamos en la parte de extracción de texto.
Paso 3: Extraer texto de trabajos de investigación
Utilizaremos PyPDF2 para extraer texto de los archivos PDF cargados. Claude 3.7 Sonnet sólo acepta texto e imágenes como entrada. Por tanto, extraemos el texto de antemano para procesarlo con eficacia, al tiempo que maximizamos las capacidades del Soneto Claude 3.7 con el Modo Pensar.
# 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()
La función extract_text_from_pdf()
lee un archivo PDF, extrae el texto de cada página utilizando PyPDF2.PdfReader()
, y devuelve el texto combinado como una cadena.
Paso 4: Ejecución del análisis del trabajo de investigación
Ahora que tenemos el texto extraído, pasamos a utilizar el Soneto de Claude 3.7 modo de pensamiento y transmisión para analizar varios documentos y generar una idea de investigación estructurada.
El modo streaming garantiza una gestión eficaz de las respuestas de gran tamaño mediante la entrega progresiva de resultados, la reducción de los tiempos de espera y la prevención de los tiempos de espera de la API. El modo Pensar mejora el razonamiento complejo al permitir que el modelo genere pensamientos internos estructurados antes de formular una respuesta final, lo que garantiza percepciones bien justificadas.
# 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"]
La función analyze_papers_streaming()
realiza los siguientes pasos:
- Formatea los documentos de entrada: La función recibe una lista de textos de trabajos de investigación extraídos, junto con el número de trabajos, y la estructura según la petición.
- Construye un aviso para el Soneto Claude 3.7: El indicador indica al modelo que:
- Resume cada documento.
- Identifica los principales inconvenientes.
- Encuentra interconexiones entre los documentos.
- Genera una idea de investigación novedosa combinando técnicas de distintos trabajos.
- Inicializa la solicitud de la API de streaming: Una vez establecida la petición, a continuación utilizamos
client.messages.stream()
para enviar la petición a Claude 3.7 Sonnet. Esto permite el modo de pensamiento conbudget_tokens=16000
ymax_tokens=25000
para ampliar la longitud de respuesta. - Procesa las respuestas de streaming: La función itera a través de los eventos de respuesta transmitidos e identifica los diferentes bloques de respuesta. Cuando la transmisión está activada, el modelo envía el contenido progresivamente. Recibimos eventos
content_block_start
para indicar el inicio de un bloque de respuesta. A medida que el modelo genera resultados, los eventosthinking_delta
contienen pasos intermedios de razonamiento, mientras que los eventostext_delta
proporcionan las conclusiones finales de la investigación. El proceso continúa hasta que un eventomessage_stop
señala la finalización de la respuesta. - Resultados del análisis de devoluciones: Los resultados finales son dos respuestas estructuradas que contienen el proceso de razonamiento interno del modelo y la idea final de investigación que combina las ideas de los documentos proporcionados.
Puedes obtener más información sobre cómo perfeccionar las técnicas de incitación al pensamiento ampliado aquí.
Paso 5: Construir la interfaz de usuario de Gradio
Ahora que nuestra lógica principal está construida, continuamos con su integración en Gradio, permitiendo a los usuarios subir trabajos de investigación y recibir perspectivas estructuradas.
# 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)
El código anterior configura una interfaz de usuario de Gradio en la que los usuarios pueden cargar varios PDF, que se procesan para extraer texto, analizar ideas clave y generar nuevas ideas de investigación utilizando modo de pensamiento y streaming.
Conclusión
En este tutorial, hemos creado un Analizador de Documentos de Investigación basado en IA utilizando Claude 3.7 Sonnet, que permite a los investigadores extraer ideas, identificar limitaciones y generar nuevas ideas de investigación a partir de varios documentos. Al utilizar el modo de pensamiento, el modelo realiza un razonamiento profundo, lo que lo convierte en una herramienta eficaz para las revisiones bibliográficas y la síntesis de la investigación.

Soy una Google Developers Expert en ML(Gen AI), una Kaggle 3x Expert y una Women Techmakers Ambassador con más de 3 años de experiencia en tecnología. Cofundé una startup de tecnología sanitaria en 2020 y estoy cursando un máster en informática en Georgia Tech, especializándome en aprendizaje automático.