Ga naar hoofdinhoud

Claude 3.7 Sonnet API: Een gids met demoproject

Leer hoe je de API van Claude 3.7 Sonnet gebruikt door een op Gradio gebaseerde Research Paper Analyzer te bouwen die inzichten uit geüploade PDF's haalt.
Bijgewerkt 2 okt 2026  · 12 min lezen

Verken met AI

ChatGPTClaudePerplexity

Claude 3.7 Sonnet is het nieuwste AI-model van Anthropic, met betere redeneercapaciteiten dankzij de nieuwe Thinking Mode. Het kan 200K tokens aan context verwerken, waardoor het ideaal is voor complexe onderzoeksanalyses.

In deze tutorial leg ik stap voor stap uit hoe je een Research Paper Analyzer met Claude 3.7 Sonnet bouwt, die het volgende kan: 

  • Belangrijkste inzichten en bevindingen uit onderzoekspublicaties extraheren.
  • Beperkingen en nadelen van elke paper identificeren.
  • Verbanden en gedeelde citaties tussen meerdere papers vinden.
  • Een nieuw onderzoeksidee genereren op basis van de geanalyseerde papers.

We integreren ook de Thinking Mode van Claude 3.7 Sonnet met Gradio, zodat gebruikers meerdere papers kunnen uploaden en gestructureerde inzichten ontvangen.

We focussen in deze blog op het praktische gedeelte—als je alleen een overzicht zoekt, raad ik dit artikel over Claude 3.7 Sonnet aan.

En als je op zoek bent naar een duidelijke demo, bekijk dan onze Claude 3.7 Sonnet API-videotutorial en bouw een multimodale onderzoeksassistent. In de video laten we zien hoe je toegang krijgt tot de Anthropic API instelt, PDF's extraheert en verwerkt met PyPDF2 documentverwerking, de thinking mode van Claude 3.7 gebruikt en een echte onderzoeksassistent bouwt met Gradio. Je kunt ook het nieuwste Claude-model bekijken, Claude Sonnet 4.5, en de Claude Agent SDK. 

Projectoverzicht: Research Paper Analyzer met Claude 3.7 Sonnet

We ontwikkelen een op Gradio gebaseerde Research Paper Analyzer waarmee gebruikers het volgende kunnen: 

  • Meerdere onderzoekspublicaties in PDF-formaat uploaden.
  • Belangrijkste bijdragen en beperkingen uit elke paper extraheren.
  • Verbanden, citaties en overlappende onderzoeksideeën identificeren.
  • Een nieuw onderzoeksidee genereren op basis van inzichten uit meerdere papers.

Kosten optimaliseren

Om de kosten voor de Claude 3.7 Sonnet API te optimaliseren, moeten we het gebruik afstemmen op de projectbehoeften, omdat invoertokens $3/M kosten en uitvoertokens, inclusief Thinking Mode, $15/M kosten.

We verlagen de kosten door prompt caching, batchverwerking en streamingmodus voor lange antwoorden te gebruiken. We kunnen Thinking Mode zelfs optimaliseren door een lager tokenbudget in te stellen (vanaf 1.024 tokens) en dit alleen te verhogen wanneer nodig.

Je kunt meer leren over het optimaliseren van API-kosten via Anthropics officiële documentatie.

Wat is Thinking Mode in Claude 3.7 Sonnet?

Voordat we beginnen, lichten we kort toe wat thinking mode is, voor het geval je er niet mee bekend bent. Thinking Mode is een nieuwe functie in Claude 3.7 Sonnet die stapsgewijs redeneren mogelijk maakt voordat het definitieve antwoord wordt gegenereerd. Het stelt het model in staat om: 

  • Complexe onderzoeksproblemen op te delen in gestructureerde, logische stappen.
  • Transparante inzichten te geven in zijn interne redenering.
  • De wetenschappelijke nauwkeurigheid te verbeteren door hallucinaties in onderzoeksanalyses te vermijden.

Kort samengevat werkt het zo:

  • Generatie van thinking-blokken: Claude produceert eerst tussentijdse redeneerstappen in een gestructureerd formaat, wat diepgaande analyse en logische opsplitsing van het probleem faciliteert.
  • Iteratieve verfijning: Het model beoordeelt zijn eigen redenering, integreert relevante inzichten en filtert inconsistenties om coherentie en wetenschappelijke geldigheid te waarborgen.
  • Synthese van het eindantwoord: De gestructureerde inzichten uit de thinking-fase worden samengebracht tot een goed geformuleerd resultaat, met meer helderheid, nauwkeurigheid en contextuele relevantie.

Stap 1: Vereisten

Voordat we beginnen, moeten we de Anthropic API-sleutel instellen:

1. Log eerst in op de Anthropic-console: https://console.anthropic.com/

2. Klik op Get API Keys.

Venster API Key ophalen

3. Je wordt doorgestuurd naar het tabblad API Keys. Klik op Create API Key en voer de naam van je sleutel in.

Venster API Key aanmaken

4. Kopieer deze sleutel en bewaar hem voor later gebruik.

5. Voeg nu tegoed toe aan je factureringsaccount, onder het tabblad Billing. Klik op "buy credits" en voeg ongeveer $5 toe aan je account (voldoende voor dit project).

We hebben nu de API-sleutel klaarstaan. Laten we ervoor zorgen dat de vereiste dependencies zijn geïnstalleerd.

pip install anthropic gradio PyPDF2

Na installatie importeren we de benodigde libraries:

import anthropic
import PyPDF2
import os
import gradio as gr

Stap 2: Claude 3.7 Sonnet API instellen

Nu we alle vereiste libraries hebben geïmporteerd, stellen we vervolgens de Claude API in.

Als je Google Colab gebruikt, kun je de API-sleutel opslaan in het tabblad Secrets en vervolgens de functie get() gebruiken om deze op te halen. Anders kun je de API-sleutel direct in je code opnemen (niet aanbevolen).

We initialiseren vervolgens de Claude-client met de Anthropic-library en geven de API-sleutel door.

# 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,
)

Hiermee is de setup afgerond. Vervolgens werken we aan het gedeelte voor tekstextractie.

Stap 3: Tekst uit onderzoekspublicaties extraheren

We gebruiken PyPDF2 om tekst uit geüploade PDF-bestanden te halen. Claude 3.7 Sonnet accepteert alleen tekst en afbeeldingen als invoer. Daarom extraheren we de tekst vooraf voor efficiënte verwerking, terwijl we de mogelijkheden van Claude 3.7 Sonnet met Thinking Mode maximaliseren.

# 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()

De functie extract_text_from_pdf() leest een PDF-bestand, extraheert tekst van elke pagina met PyPDF2.PdfReader() en geeft de gecombineerde tekst terug als een string. 

Stap 4: De onderzoeksanalyse uitvoeren

Nu we de geëxtraheerde tekst hebben, gaan we verder met het gebruiken van de thinking- en streamingmodus van Claude 3.7 Sonnet om meerdere papers te analyseren en een gestructureerd onderzoeksidee te genereren.

De streamingmodus zorgt voor efficiënte afhandeling van grote antwoorden door resultaten geleidelijk te leveren, waardoor wachttijden afnemen en API-time-outs worden voorkomen. Thinking mode verbetert complex redeneren door het model toe te staan gestructureerde interne gedachten te genereren voordat een definitief antwoord wordt geformuleerd, wat goed onderbouwde inzichten oplevert. 

# 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"]

De functie analyze_papers_streaming() voert de volgende stappen uit: 

  1. Inputpapers formatteren: De functie neemt een lijst met geëxtraheerde teksten van onderzoekspublicaties en het aantal papers, en structureert dit voor de prompt.
  2. Een prompt voor Claude 3.7 Sonnet opstellen: De prompt instrueert het model om:
  • Elke paper samen te vatten.
  • Belangrijkste nadelen te identificeren.
  • Verbindingen tussen papers te vinden.
  • Een nieuw onderzoeksidee te genereren dat technieken uit verschillende papers combineert.
  1. Streaming API-verzoek initialiseren: Zodra de prompt klaar is, gebruiken we client.messages.stream() om het verzoek naar Claude 3.7 Sonnet te sturen. Dit schakelt thinking mode in met budget_tokens=16000 en max_tokens=25000 voor een langere respons.
  2. Streamingantwoorden verwerken: De functie loopt door de gestreamde events en herkent verschillende responsblokken. Wanneer streaming is ingeschakeld, stuurt het model inhoud geleidelijk. We ontvangen content_block_start-events om het begin van een blok aan te geven. Terwijl het model output genereert, bevatten thinking_delta-events tussentijdse redeneerstappen, terwijl text_delta-events de uiteindelijke onderzoeksinzichten geven. Het proces gaat door tot een message_stop-event het einde van de respons aangeeft.
  3. Analyseresultaten retourneren: De uiteindelijke outputs zijn twee gestructureerde antwoorden met het interne redeneerproces van het model en het eindresultaat: een onderzoeksidee dat inzichten uit de aangeleverde papers combineert.

Je kunt meer leren over het verfijnen van promptingtechnieken voor extended thinking hier.

Stap 5: De Gradio-interface bouwen

Nu onze hoofdlogica staat, gaan we deze integreren in Gradio, zodat gebruikers papers kunnen uploaden en gestructureerde inzichten ontvangen.

# 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)

De bovenstaande code zet een Gradio-UI op waar gebruikers meerdere PDF's kunnen uploaden, die worden verwerkt om tekst te extraheren, kerninzichten te analyseren en nieuwe onderzoeksideeën te genereren met behulp van thinking- en streamingmodus.

Gradio-UI van demo

Conclusie

In deze tutorial bouwden we een AI-aangedreven Research Paper Analyzer met Claude 3.7 Sonnet, waarmee onderzoekers efficiënt inzichten kunnen extraheren, beperkingen identificeren en nieuwe onderzoeksideeën genereren uit meerdere papers. Door thinking mode te gebruiken, voert het model diepgaande redenering uit, waardoor het een effectief hulpmiddel is voor literatuuronderzoek en het synthetiseren van research.


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Ik ben een Google Developers Expert in ML (Gen AI), een Kaggle 3x Expert en een Women Techmakers Ambassador met meer dan 3 jaar ervaring in tech. In 2020 heb ik een healthtech-startup mee opgericht en ik volg een master computer science aan Georgia Tech, met als specialisatie machine learning.

Onderwerpen
Kunstmatige intelligentie
Large Language Models

Leer AI met deze cursussen!

Leerpad

AI-toepassingen ontwikkelen

21 uur
Leer AI-apps maken met de nieuwste AI-ontwikkelaarstools, zoals de OpenAI API, Hugging Face en LangChain.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken