Direkt zum Inhalt

Die O3-API von OpenAI: Schritt-für-Schritt-Anleitung mit Beispielen

Lerne, wie du die OpenAI O3 API für komplexe, mehrstufige Problemlösungen mit visuellen und textuellen Eingaben nutzen und die Kosten für die Argumentation verwalten kannst.
Aktualisierte 9. Mai 2025  · 8 Min. Lesezeit

OpenAIs o3 Modell ist in der Lage, komplexe, mehrstufige Probleme zu lösen, visuelle und textuelle Eingaben zu mischen und Werkzeuge wie Python, Suche oder Bildinspektion zu nutzen, um seine Antworten zu verbessern.

In diesem Tutorial erkläre ich dir Schritt für Schritt , wie du o3 über die API nutzen kannst, was o3 von generalistischen Modellen wie GPT-4o unterscheidet und wie du die Argumentationskosten effektiv verwalten kannst.

Wir halten unsere Leserinnen und Leser mit The Median auf dem Laufenden, unserem kostenlosen Freitags-Newsletter, der die wichtigsten Meldungen der Woche aufschlüsselt. Melde dich an und bleibe in nur ein paar Minuten pro Woche auf dem Laufenden:

Wann solltest du O3 verwenden?

Das o3-Modell von OpenAI wurde für fortgeschrittene, komplexe Aufgaben entwickelt, die ein tiefes Denkvermögen und Autonomie erfordern. Sie ist besonders effektiv für komplizierte Problemlösungen in Bereichen wie Softwareentwicklung, Mathematik, wissenschaftliche Forschung und visuelle Dateninterpretation.

Dank seiner agentenbasierten Fähigkeiten kann das Modell selbstständig Tools wie Websuche, Python und Bilderzeugung nutzen und ist damit ideal für Aufgaben, die mehrstufige Analysen und dynamische Entscheidungen erfordern.

Du solltest die Nutzung des o3-Modells über die API in Betracht ziehen, wenn deine Projekte komplexe, multimodale Argumentationsaufgaben beinhalten, die von seiner hohen Autonomie und seinen fortgeschrittenen analytischen Fähigkeiten profitieren.

Sehen wir uns einen schnellen Vergleich zwischen o3, o4-mini und GPT-4o an:

o3 vs o4-mini vs gpt-4o

Quelle: OpenAI

Auch die Preisgestaltung ist ein wichtiger Faktor, den du bei der Nutzung der API berücksichtigen musst:

o3 Preise vs. o4 mini und gpt-4o

Quelle: OpenAI

OpenAI O3 API: Wie man sich mit der API von OpenAI verbindet

Bevor du die erweiterten Argumentationsfähigkeiten von o3 nutzen kannst, musst du den Zugang zur OpenAI API einrichten. In diesem Abschnitt führe ich dich durch:

  • Deinen API-Schlüssel sicher einstellen
  • Dein erster API-Aufruf an das o3-Modell
  • Hervorhebung der wichtigsten Unterschiede bei der Einrichtung von Argumentationsmodellen

Schritt 1: API-Anmeldeinformationen abrufen

Um auf die OpenAI API zuzugreifen, benötigst du einen gültigen API-Schlüssel, den du auf der OpenAI API-Schlüssel Seiteerhalten kannst, und stelle sicher, dass deine Rechnungsstellung aktiviert ist.

Hinweis: Um o3 zu nutzen, musst du zuerst deine OpenAI Organisation verifizieren hier. Es kann bis zu 15 Minuten dauern, bis die Verifizierung aktiviert wird.

Schritt 2: Importieren Sie die openai Bibliothek

Wir beginnen mit der Installation und Aktualisierung der Bibliothek openai, um über die API auf das O3-Modell zuzugreifen. Führe den folgenden Befehl aus:

pip install --upgrade openai

Nach der Installation importieren wir die Klasse OpenAI aus der openai-Bibliothek:

from openai import OpenAI

Schritt 3: Initialisiere das Client-Objekt

Um mit der API von OpenAI zu interagieren, authentifizieren wir uns, indem wir unseren geheimen API-Schlüssel festlegen, damit wir autorisierte Anfragen an Modelle wie o3 stellen können.

client = OpenAI(api_key=YOUR_API_KEY)

Schritt 4: Einen API-Aufruf tätigen

Jetzt, wo die Einrichtung abgeschlossen ist, wollen wir unseren ersten API-Aufruf an o3 machen und sehen, wie es eine einfache mehrstufige Argumentationsaufgabe über die Responses API bearbeitet.

Beispiel 1: Einfache werkzeuglose Eingabeaufforderung

Lass uns den o3-API-Aufruf anhand eines einfachen Beispiels verstehen.

response = client.responses.create(
    model="o3",
    input=[{"role": "user", "content": "What’s the difference between inductive and deductive reasoning?"}]
)
print(response.output_text)

In diesem Beispiel wird eine natürlichsprachliche Frage direkt an das o3-Modell gesendet, ohne dass irgendwelche Tools oder spezielle Argumentationsparameter verwendet werden.

  • model="o3" weist die API an, das o3-Schlussfolgermodell zu verwenden.
  • input=[{"role": "user", "content": "..."}] definiert eine einzelne Nutzernachricht, die nach einer konzeptionellen Erklärung fragt.
  • O3 wählt intern eine Argumentationskette mit mittlerem Aufwand, bevor es die endgültige Ausgabe produziert.

o3 Ausgabe über API

Das sind die Token, die zu den endgültigen Kosten zählen:

  • Eingabe-Token: Die Aufforderung
  • Begründungs-Token: o3s interne Gedankenkette 
  • Token ausgeben: Endgültige Ausgabe

Beispiel 2: Code und mathematische Problemlösung

In diesem Beispiel bitten wir o3, sowohl den Code zu schreiben als auch die Mathematik zu erklären, die hinter dem Lösen quadratischer Gleichungen steckt. Das ist eine zweiteilige Aufgabe, die nicht nur eine Codierung, sondern auch eine detaillierte mathematische Erklärung erfordert.

prompt = "Write a Python function that solves quadratic equations and also explain the math behind it."
response = client.responses.create(
    model="o3",
    reasoning={"effort": "high"},
    input=[{"role": "user", "content": prompt}]
)
print(response.output_text)

Diese Aufgabe erfordert mehrstufiges mathematisches Denken, indem zuerst eine quadratische Formel gelöst und dann die Herleitung erklärt wird. Der Parameter reasoning={"effort": "high"} zwingt o3 dazu, "härter zu denken" und eine größere Argumentationsspur zu erzeugen. Das macht sie perfekt für Aufgaben, die technische Tiefe oder mehrstufige Lösungen erfordern.

Kostenhinweis: Ein höherer Denkaufwand bedeutet mehr Denkmünzen, was zu höheren Produktionskosten führt.

o3 Ausgabe über API

o3 api Ausgabe

Code + mathematisches Problemlösen

o3 api Ausgabe

Beispiel 3: Code-Refactoring-Aufgabe

In diesem Beispiel übergeben wir O3 eine Code-Refactoring-Aufgabe zusammen mit einer Reihe von Anweisungen.

prompt = """
Instructions:
- Given the React component below, change it so that nonfiction books have red
  text. 
- Return only the code in your reply
- Do not include any additional formatting, such as markdown code blocks
- For formatting, use four space tabs, and do not allow any lines of code to 
  exceed 80 columns
const books = [
  { title: 'Dune', category: 'fiction', id: 1 },
  { title: 'Frankenstein', category: 'fiction', id: 2 },
  { title: 'Moneyball', category: 'nonfiction', id: 3 },
];
export default function BookList() {
  const listItems = books.map(book =>
    <li>
      {book.title}
    </li>
  );
  return (
    <ul>{listItems}</ul>
  );
}
"""
response = client.responses.create(
    model="o3",
    reasoning={"effort": "medium", "summary": "detailed"},
    input=[
        {
            "role": "user",
            "content": prompt,
        }
    ]
)
print(response.output_text)

Im obigen Code übergeben wir O3 eine sehr strukturierte Codebearbeitungsaufgabe mit detaillierten Formatierungsregeln.

  • Der Parameter reasoning={"effort": "medium"} sagt ihm, dass er vorsichtig, aber effizient denken soll.
  • Der Parameter summary="detailed" fordert eine vollständige interne Zusammenfassung des Denkprozesses des Modells. O3 wird intern Schlussfolgerungen ziehen und optional einen zusammengefassten Trace zurückgeben, wenn du später das Feld summary inspizierst.

Tipp: Es gibt ein paar Es gibt einige verfügbare Zusammenfassungseinstellungen, die du verwenden kannst, z. B. "kurz", "ausführlich" oder "automatisch".

o3 api output Code Refactoring Aufgabe

Beispiel 4: Visuelles Denken

Lass uns dieses Konferenzfoto nutzen und o3 bitten, einen Zeitplan zu erstellen, der auf unseren Interessen basiert.

Visuelles Reasoning (Eingangsbild)

Schritt 4.1: Helferfunktion

Beginnen wir damit, die benötigten Bibliotheken zu importieren und eine Hilfsfunktion zu schreiben:

import base64, mimetypes, pathlib
def to_data_url(path: str) -> str:
    mime = mimetypes.guess_type(path)[0] or "application/octet-stream"
    data = pathlib.Path(path).read_bytes()
    b64  = base64.b64encode(data).decode()
    return f"data:{mime};base64,{b64}"

Die Funktion to_data_url() wandelt die lokale Bilddatei in eine base64-kodierte Daten-URL um. Das ist notwendig, weil die OpenAI-API Bildeingaben im URL-Format und nicht als Rohdateien erwartet.

Die Funktion to_data_url macht Folgendes:

  • Liest die Bilddatei (Pfad) von deinem Computer.
  • Ermittelt den Typ (z. B. image/png).
  • Dann kodiert er den binären Inhalt in einen base64-String.
  • Gibt schließlich eine Daten-URL zurück

Schritt 4.2: Sende sowohl Text als auch Bild an O3

Jetzt, wo wir unser Bild kodiert haben, übergeben wir sowohl den Text als auch die kodierten Bildinformationen an O3.

prompt = (
    "Create a schedule using this blurry conference photo. "
    "Ensure 10-minute gaps between talks and include all talks related to LLMs."
)
image_path   = "IMAGE_PATH"
image_url    = to_data_url(image_path)        
response = client.chat.completions.create(
    model="o3",                                  
    messages=[
        {
            "role": "user",
            "content": [
                { "type": "text",      "text": prompt },
                { "type": "image_url", "image_url": { "url": image_url } }
            ],
        }
    ],
)
print(response.choices[0].message.content)

So funktioniert es:

  • Wir beginnen mit dem Aufruf von client.chat.completions.create(), wobei der Eingabeinhalt eine Liste ist, die beides enthält:
    • die Textanweisung (die Terminanforderung des Nutzers),
    • und die Bilddaten (das Konferenzfoto).
    • Das o3-Modell verarbeitet beide Inputs gemeinsam in seiner internen Denkkette.
  • Zum Schluss drucken wir response.choices[0].message.content aus, das den generierten Zeitplan enthält, den das Modell nach der Auswertung der Textanweisungen und der visuellen Daten erstellt hat.

Wichtige Kostenüberlegungen:

  • Die Bildeingabe ist gleich der Eingabe von Token.
  • Das Modell nutzt die visuelle Inspektion innerhalb der Argumentationsschleife.
  • Wenn die Argumentationskette lang ist, sollten wir die Kosten sorgfältig mit dem Parametermax_completion_tokens verwalten, den wir im nächsten Abschnitt behandeln werden.

Lass uns das Ergebnis sehen:

o3 api Visual Reasoning (Ausgabe)

o3 api Visual Reasoning (Ausgabe)

Kostenmanagement mit Reasoning Tokens

O3 verwendet zusätzlich zu den regulären Eingabe-/Ausgabe-Token auch Argumentations-Token, was mehr Token als reguläre Eingabe-/Ausgabe-Token und damit höhere Ausgabekosten bedeutet. In Anlehnung an unser vorheriges Beispiel wollen wir nun aufschlüsseln, wie sich die Argumentations-Token auf die Kosten auswirken.

print(response.usage)
CompletionUsage(completion_tokens=3029,prompt_tokens=1007, total_tokens=4036, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=2112, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, cached_tokens=0))

Wenn du die Kosten kontrollieren willst, wende den Parameter max_completion_tokens an, um den Gesamtverbrauch zu begrenzen:

limit_token_response = client.chat.completions.create(
    model="o3",                                  
    messages=[
        {
            "role": "user",
            "content": [
                { "type": "text",      "text": prompt },
                { "type": "image_url", "image_url": { "url": image_url } }
            ],
        }
    ],
    max_completion_tokens=3000,
)
print(limit_token_response.usage)
CompletionUsage(completion_tokens=2746, prompt_tokens=1007, total_tokens=3753, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=2112, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, cached_tokens=0))

Aus der obigen Ausgabe geht hervor, dass der Wert max_completion_tokens entscheidend ist, um das Verhalten des Modells zu steuern. Indem wir die maximale Anzahl der generierten Token begrenzen, verhindern wir, dass o3 unnötig lange Ausgaben produziert oder übermäßig viele Argumentations-Token verbraucht, was zur Optimierung der gesamten API-Kosten beiträgt. Das ist besonders wichtig bei komplexen Aufgaben, bei denen interne Überlegungen sonst die Verwendung von Token dominieren könnten, ohne dass die Ergebnisse für den Benutzer sichtbar sind.

Wichtig! Wenn du o3 für komplexe visuelle Aufgaben verwendest, stelle max_completion_tokens immer konservativ hoch ein. Wenn das Token-Limit zu niedrig ist, kann es sein, dass das Modell während der internen Argumentation alle Token verbraucht und keine sichtbaren Ergebnisse liefert.

Beste Prompting-Praktiken mit O3

Das O3-Modell verhält sich anders als generalistische Modelle wie GPT-4o oder Claude 3.5 Sonnetweil o3 intern eine tiefe Denkkette durchläuft. Es funktioniert am besten mit einfachen und zielgerichteten Aufforderungen, d.h. eine Überspezifizierung der Schritte kann seine Leistung beeinträchtigen.

Hier sind einige von OpenAI empfohlene Best Practices für die Eingabeaufforderung von o3:

  • Halte die Aufforderungen kurz und klar: O3 kommt mit direkten Anweisungen gut zurecht, ohne dass ausführliche Erklärungen nötig sind.
  • Vermeide Aufforderungen zur Gedankenkette: Du musst O3 nicht sagen, dass er "Schritt für Schritt denken" soll - er denkt intern.
  • Verwende Begrenzungszeichen für mehr Klarheit: Verwende dreifache Anführungszeichen, XML-Tags oder andere Begrenzungszeichen, um verschiedene Teile der Eingabe zu organisieren.
  • Schränke zusätzlichen Kontext ein: Bei Verwendung von Retrieval-augmented Generation (RAG)nimm nur die wichtigsten Informationen auf, um das Modell nicht zu überfordern.

Fazit

In diesem Blog haben wir gelernt, wie man sich über die API mit dem O3-Modell von OpenAI verbindet, die Kosten für Argumentationstoken verwaltet und effektive Prompts mit Best Practices erstellt. Wenn dein Projekt fortgeschrittene Argumentationsfähigkeiten wie mehrstufige Mathematik, Code-Refactoring oder visuelles Verständnis erfordert, ist O3 die beste Wahl.

Um mehr über die Arbeit mit den APIs zu erfahren, empfehle ich diese Blogs:


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!

Kurs

Developing LLM Applications with LangChain

3 hr
23.1K
Discover how to build AI-powered applications using LLMs, prompts, chains, and agents in 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

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

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

15 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