Saltar al contenido principal

Claude 3.7 API Sonnet: Una guía con proyecto de demostración

Aprende a utilizar la API de Claude 3.7 Sonnet construyendo un Analizador de Documentos de Investigación basado en Gradio para extraer información de los PDF cargados.
Actualizado 25 feb 2025  · 12 min de lectura

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

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a hacer Upskilling gratis

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.

Ventana Obtener clave API

3. Serás redirigido a la pestaña Claves API. Haz clic en Crear API Clave e introduce el nombre de tu clave.

Ventana Crear clave API

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: 

  1. 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.
  2. 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.
  1. 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 con budget_tokens=16000 y max_tokens=25000 para ampliar la longitud de respuesta.
  2. 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 eventos thinking_delta contienen pasos intermedios de razonamiento, mientras que los eventos text_delta proporcionan las conclusiones finales de la investigación. El proceso continúa hasta que un evento message_stop señala la finalización de la respuesta.
  3. 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.

Gradio UI de la demo

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.


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

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.

Temas

Aprende IA con estos cursos

programa

Developing AI Applications

23hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

tutorial

Primeros pasos con Claude 3 y la API de Claude 3

Conozca los modelos Claude 3, las pruebas de rendimiento detalladas y cómo acceder a ellas. Además, descubra la nueva API Python de Claude 3 para generar texto, acceder a funciones de visión y streaming.
Abid Ali Awan's photo

Abid Ali Awan

tutorial

Tutorial de Generación de nubes de palabras en Python

Aprende a realizar Análisis exploratorios de datos para el Procesamiento del lenguaje natural utilizando WordCloud en Python.
Duong Vu's photo

Duong Vu

21 min

tutorial

RAG Con Llama 3.1 8B, Ollama y Langchain: Tutorial

Aprende a crear una aplicación RAG con Llama 3.1 8B utilizando Ollama y Langchain, configurando el entorno, procesando documentos, creando incrustaciones e integrando un recuperador.
Ryan Ong's photo

Ryan Ong

12 min

tutorial

Tutorial de DeepSeek-Coder-V2: Ejemplos, instalación, puntos de referencia

DeepSeek-Coder-V2 es un modelo de lenguaje de código de código abierto que rivaliza con el rendimiento de GPT-4, Gemini 1.5 Pro, Claude 3 Opus, Llama 3 70B o Codestral.
Dimitri Didmanidze's photo

Dimitri Didmanidze

8 min

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

Ver másVer más