Lernpfad
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
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.
3. Du wirst zur Registerkarte "API-Schlüssel" weitergeleitet. Klicke auf APIerstellen Schlüssel und gib deinen Schlüsselnamen ein.
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:
- 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.
- 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.
- 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 mitbudget_tokens=16000
undmax_tokens=25000
für eine längere Reaktionszeit. - 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 diethinking_delta
Ereignisse Zwischenschritte, während dietext_delta
Ereignisse die endgültigen Forschungsergebnisse liefern. Der Prozess wird fortgesetzt, bis einmessage_stop
Ereignis den Abschluss der Antwort signalisiert. - 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.
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.

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.