Direkt zum Inhalt

Claude 3.7 Sonnet API: Ein Leitfaden mit Demo-Projekt

Lerne, wie du die API von Claude 3.7 Sonnet nutzen kannst, indem du einen Gradio-basierten Research Paper Analyzer baust, um Erkenntnisse aus hochgeladenen PDFs zu gewinnen.
Aktualisierte 25. Feb. 2025  · 12 Min. Lesezeit

Claude 3.7 Sonnet ist das neueste KI-Modell von Anthropic, das mit seinem neuen Thinking Mode verbesserte Denkfähigkeiten bietet. Sie kann 200K Token an Kontext verarbeiten und ist damit ideal für komplexe Forschungsanalysen.

In diesem Tutorial erkläre ich Schritt für Schritt, wie man einen Research Paper Analyzer mit Claude 3.7 Sonnetder Folgendes kann:

  • Die wichtigsten Erkenntnisse und Ergebnisse aus Forschungsarbeiten extrahieren.
  • Grenzen und Nachteile der einzelnen Papiere aufzeigen.
  • Suche nach Verbindungen und gemeinsamen Zitaten zwischen mehreren Artikeln.
  • Entwickeln einer neuen Forschungsidee auf der Grundlage der analysierten Papiere.

Außerdem werden wir den Thinking Mode von Claude 3.7 Sonnet in Gradio integrieren, damit die Nutzer/innen mehrere Forschungsarbeiten hochladen und strukturierte Erkenntnisse erhalten können.

Wir werden uns in diesem Blog auf den praktischen Teil konzentrieren - wenn du nur einen Überblick suchst, empfehle ich dir diesen Artikel über Claude 3.7 Sonnet.

KI-Anwendungen entwickeln

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling For Free

Projektübersicht: Research Paper Analyzer mit Claude 3.7 Sonnet

Wir werden einen Gradio-basierten Research Paper Analyzer entwickeln, der es den Nutzern ermöglicht: 

  • Lade mehrere Forschungsarbeiten im PDF-Format hoch.
  • Nimm die wichtigsten Beiträge und Einschränkungen aus jeder Arbeit heraus.
  • Erkenne Verbindungen, Zitate und sich überschneidende Forschungsideen.
  • Erarbeite eine neue Forschungsidee, indem du Erkenntnisse aus mehreren Artikeln verwendest.

Kosten optimieren

Um die Kosten für die Claude 3.7 Sonnet API zu optimieren, müssen wir ihre Nutzung an die Projektbedürfnisse anpassen, denn Input-Token kosten $3/M und Output-Token, einschließlich Thinking Mode, kosten $15/M.

Wir müssen die Kosten reduzieren, indem wir prompte Zwischenspeicherung, Stapelverarbeitung und Streaming-Modus für lange Antworten. Wir können den Thinking Mode sogar optimieren, indem wir ein niedrigeres Token-Budget festlegen (ab 1.024 Token) und es nur bei Bedarf erhöhen.

Mehr über die Optimierung der API-Kosten erfährst du in der offiziellen Dokumentation von Anthropic Dokumentation.

Was ist der Denkmodus in Claude 3.7 Sonnet?

Bevor wir anfangen, wollen wir erst einmal klären, was der Denkmodus ist, falls du ihn nicht kennst. Der Denkmodus ist eine neue Funktion in Claude 3.7 Sonnet, die es ermöglicht, Schritt für Schritt zu denken, bevor die endgültige Antwort generiert wird. Es ermöglicht dem Modell,..: 

  • Zerlege komplexe Forschungsprobleme in strukturierte, logische Schritte.
  • transparente Einblicke in seine internen Überlegungen geben.
  • Verbessere die wissenschaftliche Genauigkeit, indem du Halluzinationen bei der Forschungsanalyse vermeidest.

Kurz gesagt: So funktioniert es:

  • Denkblöcke Generation: Claude erzeugt zunächst Zwischenschritte in einem strukturierten Format, die eine gründliche Analyse und logische Zerlegung des Problems erleichtern.
  • Iterative Verfeinerung: Das Modell bewertet seine eigene Argumentation, integriert relevante Erkenntnisse und filtert gleichzeitig Ungereimtheiten heraus, um Kohärenz und wissenschaftliche Gültigkeit zu gewährleisten.
  • Endgültige Antwortsynthese: Die strukturierten Erkenntnisse aus der Denkphase werden zu einem gut formulierten Ergebnis zusammengefasst, das die Klarheit, Genauigkeit und Kontextrelevanz verbessert.

Schritt 1: Voraussetzungen

Bevor wir beginnen, müssen wir den Anthropic-API-Schlüssel einrichten:

1. Beginne damit, dich in der Anthropic-Konsole anzumelden: https://console.anthropic.com/

2. Klicke auf Get API Keys.

Fenster "API-Schlüssel erhalten

3. Du wirst zur Registerkarte "API-Schlüssel" weitergeleitet. Klicke auf APIerstellen Schlüssel und gib deinen Schlüsselnamen ein.

Fenster API-Schlüssel erstellen

4. Kopiere diesen Schlüssel und speichere ihn für spätere Zwecke.

5. Füge deinem Rechnungskonto auf der Registerkarte Abrechnung ein Guthaben hinzu. Klicke einfach auf Credits kaufen und füge deinem Konto etwa 5$ hinzu (das reicht für dieses Projekt).

Wir haben jetzt den API-Schlüssel. Stellen wir nun sicher, dass wir die erforderlichen Abhängigkeiten installiert haben.

pip install anthropic gradio PyPDF2

Nach der Installation importierst du die erforderlichen Bibliotheken:

import anthropic
import PyPDF2
import os
import gradio as gr

Schritt 2: Einrichten von Claude 3.7 Sonnet API

Nachdem wir nun alle erforderlichen Bibliotheken importiert haben, richten wir als Nächstes die Claude-API ein.

Wenn du Google Colab verwendest, kannst du den API-Schlüssel in der RegisterkarteSecrets speichern und dann die Funktion get() verwenden, um darauf zuzugreifen. Andernfalls kannst du den API-Schlüssel direkt an deinen Code übergeben (nicht empfohlen).

Dann initialisieren wir den Claude-Client mit der Anthropic-Bibliothek und geben den API-Schlüssel ein.

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

Damit ist der Teil der Einrichtung abgeschlossen. Als Nächstes arbeiten wir an der Textextraktion.

Schritt 3: Text aus Forschungspapieren extrahieren

Wir werden PyPDF2 verwenden, um Text aus hochgeladenen PDF-Dateien zu extrahieren. Claude 3.7 Sonnet akzeptiert nur Text und Bilder als Eingabe. Deshalb extrahieren wir den Text vorher, um ihn effizient zu verarbeiten und gleichzeitig die Fähigkeiten von Claude 3.7 Sonnet with Thinking Mode zu maximieren.

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

Die Funktion extract_text_from_pdf() liest eine PDF-Datei, extrahiert mit PyPDF2.PdfReader() Text aus jeder Seite und gibt den kombinierten Text als String zurück. 

Schritt 4: Durchführung der Analyse der Forschungsarbeit

Jetzt, da wir den extrahierten Text haben, fahren wir damit fort, Claude 3.7 Sonnets Denk- und Streaming-Modus um mehrere Texte zu analysieren und eine strukturierte Forschungsidee zu entwickeln.

Der Streaming-Modus sorgt für eine effiziente Bearbeitung großer Antworten, indem er die Ergebnisse nach und nach liefert, Wartezeiten verkürzt und API-Timeouts verhindert. Der Denkmodus verbessert das komplexe Denken, indem er es dem Modell ermöglicht, strukturierte interne Gedanken zu entwickeln, bevor es eine endgültige Antwort formuliert, um gut begründete Erkenntnisse zu erhalten. 

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

Die Funktion analyze_papers_streaming() führt die folgenden Schritte aus: 

  1. Formatiert Eingangspapiere: Die Funktion nimmt eine Liste mit extrahierten Texten für Forschungsarbeiten zusammen mit der Anzahl der Arbeiten auf und strukturiert sie für die Aufforderung.
  2. Konstruiert eine Eingabeaufforderung für Claude 3.7 Sonnet: Die Aufforderung weist das Modell an,:
  • Fasse jedes Papier zusammen.
  • Erkenne die wichtigsten Nachteile.
  • Finde Zusammenhänge zwischen den Papieren.
  • Erarbeite eine neue Forschungsidee, indem du Techniken aus verschiedenen Arbeiten kombinierst.
  1. Initialisiert die Streaming-API-Anfrage: Sobald die Eingabeaufforderung eingestellt ist, verwenden wir client.messages.stream() , um die Anfrage an Claude 3.7 Sonnet zu senden. Dies ermöglicht den Denkmodus mit budget_tokens=16000 und max_tokens=25000 für eine längere Reaktionszeit.
  2. Verarbeitet Streaming-Antworten: Die Funktion iteriert durch gestreamte Antwortereignisse und identifiziert verschiedene Antwortblöcke. Wenn das Streaming aktiviert ist, sendet das Modell die Inhalte nach und nach. Wir empfangen content_block_start Ereignisse, die den Beginn eines Antwortblocks anzeigen. Während das Modell Ergebnisse erzeugt, enthalten die thinking_delta Ereignisse Zwischenschritte, während die text_delta Ereignisse die endgültigen Forschungsergebnisse liefern. Der Prozess wird fortgesetzt, bis ein message_stop Ereignis den Abschluss der Antwort signalisiert.
  3. Ergebnisse der Renditeanalyse: Die endgültigen Ergebnisse sind zwei strukturierte Antworten, die den internen Denkprozess des Modells und die endgültige Forschungsidee enthalten, die Erkenntnisse aus den bereitgestellten Papieren kombiniert.

Du kannst mehr über die Verfeinerung von Souffleurtechniken für erweitertes Denken erfahren hier.

Schritt 5: Aufbau der Gradio-Benutzeroberfläche

Jetzt, wo unsere Hauptlogik aufgebaut ist, fahren wir damit fort, sie in Gradio zu integrieren, damit die Nutzer/innen Forschungsarbeiten hochladen und strukturierte Einblicke erhalten können.

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

Der obige Code richtet eine Gradio-Benutzeroberfläche ein, auf der Benutzer mehrere PDFs hochladen können, die verarbeitet werden, um Text zu extrahieren, wichtige Erkenntnisse zu analysieren und neue Forschungsideen zu generieren. Denk- und Streaming-Modus.

Gradio UI der Demo

Fazit

In diesem Tutorial haben wir mit Claude 3.7 Sonnet einen KI-gestützten Research Paper Analyzer entwickelt, der es Forschern ermöglicht, effizient Erkenntnisse zu gewinnen, Einschränkungen zu erkennen und neue Forschungsideen aus mehreren Papieren zu entwickeln. Durch die Verwendung des Denkmodus führt das Modell tiefgreifende Überlegungen durch, was es zu einem effektiven Werkzeug für Literaturübersichten und Forschungssynthesen macht.


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Ich bin ein Google Developers Expert in ML (Gen AI), ein Kaggle 3x Expert und ein Women Techmakers Ambassador mit mehr als 3 Jahren Erfahrung im Tech-Bereich. Ich habe 2020 ein Startup im Bereich Gesundheitstechnologie mitbegründet und mache einen Master in Informatik an der Georgia Tech, der sich auf maschinelles Lernen spezialisiert.

Themen

Lerne KI mit diesen Kursen!

Lernpfad

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.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Mehr anzeigenMehr anzeigen