Ergebnisse aus Claude Sonnet 4 extrahieren: Code, Visualisierungen und Berichte
Jetzt können wir den von Claude erzeugten Code und die Ausgaben wiederverwenden und überprüfen.
Schritt 5: Lade die visuellen Ergebnisse von Claudes Antworten herunter
Für unsere Markdown-Berichte wollen wir den tatsächlichen Python-Code angeben, den Claude ausgeführt hat:
def extract_code_blocks(self, response) -> List[str]:
"""Extract all code blocks from the response."""
code_blocks = []
for item in response.content:
if item.type == "server_tool_use" and item.name == "code_execution":
if (
hasattr(item, "input")
and isinstance(item.input, dict)
and "code" in item.input
):
code_blocks.append(item.input["code"])
return code_blocks
Diese Methode sucht nach server_tool_use Elementen mit dem Namen "code_execution" und extrahiert den Python-Code aus dem Feld input. So erhalten wir den tatsächlichen Code, den Claude geschrieben und ausgeführt hat.
Schritt 6: Extrahiere den Code von Claude für die Wiederverwendung und Prüfung
Unser Berichtsgenerator erstellt eine umfassende Dokumentation zu jeder Lösung.
Zuerst extrahieren wir den Inhalt und richten die Berichtsstruktur ein:
def generate_markdown_report(self, result: Dict[str, Any], downloaded_files: List[str]) -> str:
"""Generate a comprehensive markdown report of the solution."""
response = result["response"]
question = result["question"]
timestamp = result["timestamp"]
# Extract text content and code blocks
text_content = []
code_blocks = self.extract_code_blocks(response)
for item in response.content:
if item.type == "text":
text_content.append(item.text)
Als nächstes generieren wir einen sicheren Dateinamen mit einem Zeitstempel:
# Generate filename with timestamp
safe_question = "".join(
c for c in question[:50] if c.isalnum() or c in (" ", "-", "_")
).strip()
filename = f"{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}_{safe_question.replace(' ', '_')}.md"
filepath = self.reports_dir / filename
Wir erstellen den Markdown-Inhalt mit einer Überschrift und einer Problemstellung:
# Create markdown content
markdown_content = f"""# Math Problem Solution Report
**Generated:** {timestamp}
**Question:** {question}
---
## Problem Statement
{question}
---
## Solution
"""
Add the solution explanation and code blocks:
# Add the main explanation
for text in text_content:
markdown_content += f"{text}\n\n"
# Add code sections
if code_blocks:
markdown_content += "---\n\n## Code Used\n\n"
for i, code in enumerate(code_blocks, 1):
markdown_content += f"### Code Block {i}\n\n```python\n{code}\n```\n\n"
Füge alle erstellten Visualisierungen ein:
# Add images section
if downloaded_files:
markdown_content += "---\n\n## Generated Visualizations\n\n"
for file_path in downloaded_files:
filename = Path(file_path).name
relative_path = f"../images/{filename}"
markdown_content += f"\n\n"
Finally, add metadata and save the report:
# Add footer
markdown_content += f"""---
## Report Details
- **Generated by:** Claude 4 Math Solver
- **Model:** claude-sonnet-4-20250514
- **Timestamp:** {timestamp}
- **Files created:** {len(downloaded_files)} visualization(s)
---
*This report was automatically generated using Claude's code execution capabilities.*
"""
# Save the report
with open(filepath, "w", encoding="utf-8") as f:
f.write(markdown_content)
return str(filepath)
Dieser Berichtsgenerator erstellt ein strukturiertes Markdown-Dokument, das Folgendes enthält:
- Problemstellung und Metadaten
- Erklärung der Lösung aus Claudes Textantworten
- Codeblöcke, die den tatsächlich ausgeführten Python-Code zeigen
- Eingebettete Visualisierungen mit relativen Pfaden
- Berichtsmetadaten für Lernpfade und Referenzen
Die Dateinamengenerierung erstellt sichere Dateinamen mit Zeitstempel, die nicht mit bestehenden Dateien kollidieren.
Interaktives Ausführen des Math Solvers
Als Nächstes wollen wir uns auf die Benutzerinteraktionsschleife, die Demo-Tools und das Testen konzentrieren.
Schritt 7: Verwalte die interaktive Sitzung
Die interaktive Sitzungsschleife verarbeitet Benutzereingaben und koordiniert alle unsere Komponenten.
Wir beginnen mit der Einrichtung der Sitzung und der Begrüßung:
def run_interactive_session(self):
"""Run the main interactive session loop."""
print("🧮 Interactive Math Problem Solver with Claude 4")
print("=" * 60)
print("Ask me any math question and I'll solve it step by step!")
print("I can handle algebra, calculus, statistics, geometry, and more.")
print("Type 'quit', 'exit', or 'q' to end the session.")
print("=" * 60)
session_count = 0
Die Hauptschleife behandelt Benutzereingaben und Beendigungsbedingungen:
while True:
try:
# Get user input
question = input(f"\n📝 Question #{session_count + 1}: ").strip()
if question.lower() in ["quit", "exit", "q"]:
print("\n👋 Thanks for using the Math Solver! Goodbye!")
break
if not question:
print("Please enter a question.")
continue
session_count += 1
Für jede gültige Frage bearbeiten wir den gesamten Arbeitsablauf:
# Solve the problem
result = self.solve_problem(question)
if not result:
continue
# Extract and download any files created
file_ids = self.extract_files_from_response(result["response"])
downloaded_files = []
if file_ids:
print(f"📥 Downloading {len(file_ids)} file(s)...")
downloaded_files = self.download_files(file_ids)
Wir schließen mit der Erstellung von Berichten und Nutzerfeedback ab:
# Generate markdown report
print(f"📝 Generating report...")
report_path = self.generate_markdown_report(result, downloaded_files)
print(f"\n✅ Solution complete!")
print(f"📄 Report saved: {report_path}")
if downloaded_files:
print(f"🖼️ Visualizations: {len(downloaded_files)} file(s) saved")
except KeyboardInterrupt:
print("\n\n👋 Session interrupted. Goodbye!")
break
except Exception as e:
print(f"❌ An error occurred: {e}")
print("Please try again with a different question.")
Diese Schleife demonstriert einen kompletten Arbeitsablauf:
- Benutzerinteraktion: Fragen stellen und Exit-Befehle verarbeiten
- Problemlösung: Aufruf unserer
solve_problem()Methode - Dateiverarbeitung: Extrahiere und lade alle erzeugten Dateien herunter
- Berichtserstellung: Erstelle einen umfassenden Abschriftenbericht
- Fehlerbehandlung: Unterbrechungen und Fehler elegant behandeln
Schritt 8: Schreibe den Einstiegspunkt der Anwendung
Schließlich brauchen wir noch eine main() Funktion, um unsere Anwendung zu initialisieren und zu starten:
def main():
"""Main entry point for the application."""
try:
solver = MathSolver()
solver.run_interactive_session()
except Exception as e:
print(f"❌ Failed to initialize Math Solver: {e}")
print("Make sure you have set the ANTHROPIC_API_KEY environment variable.")
return 1
return 0
if __name__ == "__main__":
exit(main())
Dieser einfache Einstiegspunkt behandelt Initialisierungsfehler (wie fehlende API-Schlüssel) und liefert hilfreiche Fehlermeldungen.
Schritt 9: Einen Demo-Problemgenerator hinzufügen
Um den Benutzern den Einstieg zu erleichtern, erstellen wir ein separates Skript mit Beispielproblemen. demo_problems.py erstellen.
Zuerst definieren wir unsere Problemkategorien:
# demo_problems.py
#!/usr/bin/env python3
"""
Demo problems for the Interactive Math Problem Solver
"""
# Sample problems organized by difficulty and topic
DEMO_PROBLEMS = {
"Beginner": [
"What is 15% of 240?",
"Solve for x: 3x + 7 = 22",
"Find the area of a circle with radius 5",
"Convert 45 degrees to radians",
"Calculate the hypotenuse of a right triangle with legs 3 and 4",
],
Füge mittlere und fortgeschrittene Problemstellungen hinzu:
"Intermediate": [
"Solve the quadratic equation: 2x^2 + 5x - 3 = 0",
"Graph y = x^2 - 4x + 3 and find its vertex",
"Calculate mean, median, and standard deviation of [12, 15, 18, 22, 25, 28]",
"Find where f(x) = x^3 - 3x^2 + 2 crosses the x-axis",
"Solve the system of equations: 2x + 3y = 7, x - y = 1",
],
"Advanced": [
"Find the derivative of sin(x) * e^x and plot both functions",
"Calculate the integral of x^2 from 0 to 5",
"Use Newton's method to find the root of x^3 - 2x - 5 = 0",
"Perform linear regression on data points and plot the results",
"Solve the differential equation dy/dx = x*y with initial condition y(0) = 1",
],
}
Erstelle Hilfsfunktionen für die Zufallsauswahl und -anzeige:
def get_random_problem(category=None):
"""Get a random problem from a specific category or all categories."""
import random
if category and category in DEMO_PROBLEMS:
return random.choice(DEMO_PROBLEMS[category])
else:
# Pick from all problems
all_problems = []
for problems in DEMO_PROBLEMS.values():
all_problems.extend(problems)
return random.choice(all_problems)
Füge eine Funktion hinzu, um alle verfügbaren Probleme anzuzeigen:
def print_demo_problems():
"""Print all demo problems organized by category."""
print("🧮 Demo Problems for Interactive Math Solver")
print("=" * 60)
print("Here are example problems you can try, organized by difficulty:\n")
for category, problems in DEMO_PROBLEMS.items():
print(f"### {category}")
print("-" * (len(category) + 4))
for i, problem in enumerate(problems, 1):
print(f"{i:2d}. {problem}")
print()
print("💡 Tips:")
print(" • Copy and paste any question into the math solver")
print(" • All visualizations and reports will be saved automatically")
print("\n🚀 Start the solver with: python math_solver.py")
if __name__ == "__main__":
print_demo_problems()
Dieses Demo-Skript bietet:
- Kategorisierte Probleme vom Anfänger- bis zum Fortgeschrittenenniveau
- Zufällige Problemauswahl für die Prüfung
- Anleitung zur Nutzung für neue Nutzer
Schritt 10: Ausführen und Testen der Anwendung
Testen wir jetzt unsere komplette Anwendung! Führe den mathematischen Löser aus:
python math_solver.py
Probiere einige Beispielfragen aus:
- Grundlegende Berechnung: "Was sind 15% von 240?"
- Algebra: "Löse für x: 3x + 7 = 22”
- Visualisierung: "Zeichne y = x² - 4x + 3 und finde seinen Scheitelpunkt"
- Mathe für Fortgeschrittene: "Finde die Ableitung von sin(x) * e^x und zeichne beide Funktionen ein"
Jede Frage wird:
- Echtzeit-Streaming-Ausgabe anzeigen, während Claude arbeitet
- Erstelle alle notwendigen Visualisierungen
- Einen umfassenden Abschriftenbericht speichern
- Lade die Plotdateien in dein Bilderverzeichnis herunter
Du kannst auch das Demo-Problemskript ausführen, um alle verfügbaren Beispiele zu sehen:
python demo_problems.py
Was wir mit Claude Sonnet 4 gebaut haben
Unser mathematischer Problemlöser demonstriert mehrere leistungsstarke Funktionen von Claude 4 und die neuen API-Möglichkeiten:
- Codeausführung: Claude kann Python-Code schreiben und ausführen, um mathematische Probleme zu lösen, Lösungen zu iterieren und komplexe Berechnungen durchzuführen.
- Dateierstellung und -verwaltung: Die Anwendung kümmert sich automatisch um die Erstellung, den Download und die Organisation von Dateien mithilfe der Datei-API.
- Streaming-Interaktion: Echtzeit-Feedback macht das Erlebnis reaktionsschnell und ansprechend.
- Umfassende Dokumentation: Jede Lösung wird in detaillierten Markdown-Berichten mit eingebettetem Code und Visualisierungen festgehalten.
- Benutzerfreundliche Schnittstelle: Die terminalbasierte Schnittstelle ist einfach, aber effektiv für das Lösen mathematischer Probleme.
Dieses Projekt zeigt, wie die neuen Fähigkeiten von Claude 4 kombiniert werden können, um anspruchsvolle Anwendungen zu schaffen, die über einfache Chat-Interaktionen hinausgehen. Das Tool zur Codeausführung in Kombination mit der richtigen Dateiverarbeitung und dem Streaming schafft eine leistungsstarke Plattform für mathematische Untersuchungen und Analysen.
Du kannst auch lernen, ähnliche Agenten mit anderen Plattformen zu bauen, indem du den Kurs " Developing AI Systems with the OpenAI API" belegst.
Fazit und weitere Schritte
Die Entwicklung dieses mathematischen Problemlösers hat gezeigt, wie die neuen Fähigkeiten von Claude 4 die Möglichkeiten von KI-Anwendungen verändern.
Unsere Anwendung beherrscht alles von einfachen Berechnungen bis hin zu komplexen mathematischen Visualisierungen und zeigt, wie diese API-Funktionen zusammenarbeiten, um großartige Nutzererlebnisse zu schaffen. Vor allem das Code-Execution-Tool ist ein großer Fortschritt, denn es ermöglicht Claude, Lösungen zu iterieren und visuelle Ergebnisse zu erzeugen, für die in der Vergangenheit separate Tools und komplexe Integrationen erforderlich gewesen wären.
Von hier aus kannst du diesen mathematischen Solver mit Webschnittstellen erweitern, ihn über MCPs in externe Datenquellen integrieren oder ähnliche Muster anwenden, um domänenspezifische Assistenten für andere Bereiche wie Datenanalyse, wissenschaftliches Rechnen oder Bildungswerkzeuge zu entwickeln.
- Wenn du ein Entwickler bist, der seine KI-Fähigkeiten zertifizieren lassen möchte, solltest duden Lernpfad Associate AI Engineer für Entwickler in Betracht ziehen, der den Schwerpunkt auf Implementierungen auf Produktionsebene legt.
- Datenwissenschaftler/innen, die daran interessiert sind, LLMs zu operationalisieren, können den Lernpfad Associate AI Engineer für Datenwissenschaftler/innen besuchen, der eine Brücke zwischen Analyse und KI-Einsatz schlägt.
FAQs
Was unterscheidet Claude 4 von früheren Versionen?
Claude 4 führt die Ausführung von nativem Code, erweitertes Denken bei der Verwendung von Werkzeugen, parallele Werkzeugausführung, verbesserte Speichermöglichkeiten und Unterstützung für mehrere Stunden kontinuierlicher Aufgabenausführung ein. Diese Eigenschaften machen es besonders stark für Softwareentwicklungsaufgaben.
Kann Claude 4 tatsächlich Python-Code während eines Gesprächs ausführen?
Ja, Claude 4 kann Python-Code in einer sicheren Sandbox-Umgebung mit dem neuen Tool zur Codeausführung ausführen. Es kann Berechnungen durchführen, Visualisierungen mit matplotlib erstellen und auf der Grundlage der Ausführungsergebnisse Lösungen iterieren.
Was sind die Grenzen der Code-Ausführungsumgebung von Claude?
Die Sandbox hat keinen Internetzugang, nur begrenzte Rechenressourcen und kann nicht auf dein lokales Dateisystem zugreifen. Beliebte Bibliotheken wie numpy, pandas und matplotlib sind bereits vorinstalliert, aber du kannst keine zusätzlichen Pakete installieren.
Wie funktioniert die neue Datei-API bei der Codeausführung?
Mit der Datei-API kannst du Dokumente einmal hochladen und sie in allen Konversationen referenzieren. Wenn Claude während der Codeausführung Dateien erstellt (z. B. Plots), kannst du ihre Datei-IDs extrahieren und sie über die API lokal herunterladen.
Brauche ich einen speziellen API-Zugang, um die Code-Ausführungsfunktionen von Claude 4 zu nutzen?
Du musst den Beta-Header "anthropic-beta": "code-execution-2025-05-22" in deine API-Anfragen aufnehmen und das claude-sonnet-4-20250514 Modell verwenden. Das Codeausführungswerkzeug wird als "code_execution_20250522" in deinem tools Array angegeben.


Mit der Veröffentlichung von Claude Sonnet 4 haben Entwicklerinnen und Entwickler jetzt Zugang zu leistungsstarken neuen Funktionen - darunter die Ausführung von nativem Code, eine flexible Datei-API und die dynamische Nutzung von Tools. Diese Funktionen eröffnen spannende Möglichkeiten für die Entwicklung von KI-gesteuerten Anwendungen, die über einfache Textinteraktionen hinausgehen.
In diesem Tutorial führe ich dich durch diese neuen Funktionen, indem ich einen Python-basierten Agenten baue, der fortgeschrittene mathematische Probleme direkt von deinem Terminal aus lösen kann. Du lernst, wie dudas neu eingeführte Werkzeug zur Ausführung von nativem Code und die Datei-API verwendest.
Am Ende wirst du einen funktionierenden Agenten haben, der von Claude Sonnet 4 angetrieben wird, um Probleme zu analysieren, Python-Code zu schreiben und auszuführen und visuelle Darstellungen wie die untenstehenden zu erstellen.
Im GitHub-Repository für dieses Projekt findest duden gesamten Code für die Erstellung der Anwendung.
Wenn du gerade erst anfängst, mit LLMs wie Claude zu bauen, zeigt dir diese Roadmap für KI-Entwickler/innen diewichtigsten Tools, Fähigkeiten und Lernwege für den Einstieg.
Was ist neu in der Anthropic API?
Bevor wir uns dem Tutorial widmen, werfen wir einen Blick auf die kürzlich veröffentlichten neuen Funktionen, die über die Anthropic API verfügbar sind. Wenn du sie schon kennst, kannst du sie gerne überspringen.
Ich denke, die gesamte Ankündigung von Claude 4 lässt sichin diesem einen Bild zusammenfassen:
Die Claude 4 Modelle (Opus und Sonnet 4) schlagen die Konkurrenz bei verifizierten Softwareentwicklungsaufgaben mit deutlichem Abstand. Anthropic hat dieses Kunststück vollbracht, indem es einige wichtige Änderungen am Verhalten der Modelle vorgenommen hat:
Im Rahmen der Ankündigung der Claude 4-Modellfamilie hat Anthropic außerdem vier neue Funktionen für hinzugefügt, mit denen KI-Agenten erstellt werden können: das Code-Ausführungs-Tool, die Datei-API, der MCP-Connector und das erweiterte Prompt-Caching. Diese Tools verändern die Art und Weise, wie Entwickler KI-Anwendungen erstellen können.
Werkzeug zur Codeausführung: Python-Code sicher ausführen
Mit dem Code-Ausführungstool Claude kannst du Python-Code in einer sicheren Sandbox-Umgebung ausführen. Anstatt nur Codevorschläge zu schreiben, kann Claude jetzt Code ausführen, die Ergebnisse analysieren und Lösungen iterieren.
Um das Tool zur Codeausführung zu verwenden, füge es zu deinem
toolsArray hinzu und füge den erforderlichen Beta-Header ein:Wenn Claude einen Code ausführt, enthält die Antwort sowohl den erzeugten Code als auch die Ergebnisse der Ausführung. Hier erfährst du, wie du die verschiedenen Komponenten analysierst:
Sandbox-Einschränkungen: Die Code-Ausführungsumgebung hat mehrere eingebaute Sicherheitsbeschränkungen. Claude läuft in einem isolierten Container ohne Internetzugang, mit begrenzten Rechenressourcen (1 GB RAM, 5 GB Festplattenspeicher und 1 CPU) und hat keinen Zugriff auf dein lokales Dateisystem. In der Umgebung sind beliebte Bibliotheken wie
numpy,pandas,matplotlibundscipyvorinstalliert, aber du kannst während der Ausführung keine weiteren Pakete installieren.Dateien API: Persistenter Dateikontext für komplexe Aufgaben
Mit der Datei-API von kannst du Dokumente einmal hochladen und sie in mehreren Konversationen referenzieren. Damit entfällt die Notwendigkeit, große Dokumente in jede API-Anfrage aufzunehmen.
Als erstes lädst du deine Datei auf die Server von Anthropic hoch:
Nach dem Hochladen referenzierst du die Datei in deinen API-Aufrufen mit dem Inhaltstyp
container_upload:Wenn Claude während der Codeausführung Dateien erstellt (z. B. Plots oder verarbeitete Daten), kannst du sie extrahieren und herunterladen:
MCP-Anschluss: Integriere Claude in jeden Arbeitsablauf
Der MCP-Konnektor bringt die Unterstützung des Model Context Protocol direkt in die API. MCPs ermöglichen Claude die Verbindung zu externen Diensten wie Datenbanken, APIs und Produktivitätstools ohne eigenen Integrationscode.
Früher musste man für die Verbindung zu MCP-Servern eine Client-Infrastruktur aufbauen. Jetzt kannst du in deiner API-Anfrage einfach die URL eines entfernten MCP-Servers angeben, und Claude findet automatisch die verfügbaren Tools, verwaltet die Verbindungen und kümmert sich um die Authentifizierung.
Dies eröffnet dir den Zugang zu einem wachsenden Ökosystem von MCP-Servern von Unternehmen wie Zapier und Asana, mit denen du Agenten erstellen kannst, die deinen Kalender lesen, Projektmanagement-Tools aktualisieren oder mit Hunderten von anderen Diensten integrieren können.
Erste Schritte mit Claude Sonnet 4: Projektübersicht und Einrichtung
Jetzt, wo wir die neuen API-Funktionen kennen, können wir unseren interaktiven Mathe-Problemlöser bauen. Es wird die Fähigkeiten von Claude zur Codeausführung mit der Dateiverarbeitung kombinieren, um einen vollständigen mathematischen Assistenten zu schaffen.
Unsere Anwendung akzeptiert mathematische Fragen in natürlicher Sprache, führt Python-Code aus, um sie zu lösen, erstellt Visualisierungen und speichert umfassende Berichte.
Eine strukturierte Herangehensweise an Projekte wie dieses findest du im Lernpfad KI-Anwendungen entwickeln.
> Hinweis: Da wir lange Codeblöcke mit Erklärungen auflockern werden, kann es sein, dass die Einrückung des Codes in den Snippets nicht ganz korrekt ist. Aus diesem Grund empfehlen wir, das GitHub-Repositorium für dieses Projekt in einem separaten Tab zu öffnen, während du dem Projekt folgst.
Schritt 0: Richte deine Claude Sonnet 4 Projektumgebung ein
Bevor wir Code schreiben, müssen wir unsere Entwicklungsumgebung und Abhängigkeiten einrichten.
Erstelle ein neues Verzeichnis für dein Projekt und lege die benötigten Dateien an:
Erstelle eine
requirements.txtDatei mit den notwendigen Abhängigkeiten:Installiere die Abhängigkeiten:
Setze deinen Anthropic-API-Schlüssel als Umgebungsvariable:
Schritt 1: Entwirf die Anwendungsstruktur
Beginnen wir damit, die Grundstruktur unserer Klasse
MathSolverzu erstellen. Diese Klasse wird alle wichtigen Funktionen übernehmen: API-Kommunikation, Dateiverwaltung und Benutzerinteraktion.Lass uns zunächst die Importe und die grundlegende Struktur einrichten:
Definieren wir nun die Struktur unserer Hauptklasse:
Schließlich fügen wir die Sitzungsverwaltung und den Einstiegspunkt hinzu:
Diese Struktur gibt uns einen klaren Fahrplan: Initialisierung, Problemlösung, Dateiverarbeitung, Berichterstellung und Benutzerinteraktion. Jede Methode hat eine bestimmte Aufgabe in unserem mathematischen Lösungskreislauf.
Bau eines mathematischen Lösers mit Claude Sonnet 4 Code Execution
Nun wollen wir die Kernfunktionalität mit Claudes Code-Ausführungstool und Streaming-Antworten implementieren.
Schritt 2: Claude mit sicheren API-Headern initialisieren
Lass uns die Methode
__init__()implementieren, um die Einrichtung des API-Clients und die Erstellung des Verzeichnisses zu verwalten.Zunächst kümmern wir uns um die Verwaltung der API-Schlüssel:
Als Nächstes richten wir den Anthropic-Client mit den erforderlichen Beta-Headern ein:
Zum Schluss erstellen wir die Struktur des Ausgabeverzeichnisses:
Diese Initialisierung bewirkt drei wichtige Dinge:
Schritt 3: Schreibe die zentrale Solver-Funktion
Die Methode
solve_problem()ist das Herzstück unserer Anwendung. Es sendet Anfragen an Claude mit Streaming-Unterstützung.Beginnen wir mit der Funktionssignatur und der Ersteinrichtung:
Wir bearbeiten verschiedene Arten von Streaming-Events:
Schließlich geben wir das Ergebnis zurück oder behandeln Fehler:
Diese Funktion demonstriert mehrere wichtige Konzepte:
client.messages.stream()anstelle vonclient.messages.create(), um Echtzeit-Feedback zu bekommen, während Claude das Problem bearbeitet.content_block_start: Wenn Claude beginnt, Text zu schreiben oder ein Werkzeug zu benutzencontent_block_delta: Während Inhalte erstellt werdencontent_block_stop: Wenn ein Inhaltsblock fertig istmessage_delta: Wenn die gesamte Nachricht vollständig isttoolsArray mit dem genauen Typ"code_execution_20250522"auf.Schritt 4: Löse mathematische Probleme mit Streaming-Code-Ausführung
Wenn Claude während der Codeausführung Dateien erstellt (z. B. Matplotlib-Plots), müssen wir ihre Datei-IDs extrahieren und sie lokal herunterladen.
Die Dateiextraktionsmethode navigiert durch die Antwortstruktur:
Dann suchen wir nach Datei-IDs im Inhalt:
Der Download-Prozess ruft Dateien ab und speichert sie lokal:
Wir verfolgen heruntergeladene Dateien und behandeln Fehler:
extract_files_from_response()navigiert durch die Antwortstruktur, um Datei-IDs zu finden. Die Ergebnisse der Codeausführung werden in einem bestimmten Format verschachtelt, wobei die Dateien im Arraycontenterscheinen.download_files():