A deep reasoning model for complex programming and visual-text analysis
o3 is a deep reasoning model in OpenAI's o series, suited for tasks where answers are not intuitive and multiple conditions must be considered together. It focuses on programming, mathematics, scientific problems, and visual analysis, and can incorporate information from images into text-based reasoning. For work that requires checking assumptions, comparing options, and explaining conclusions, o3 may be a better choice than simply pursuing short, immediate responses.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ACEDATACLOUD_API_KEY"],
base_url="https://api.acedata.cloud/v1",
)
response = client.responses.create(
model="o3",
input="Hello!",
)
print(response.output_text)
Choose an available protocol for this model. OpenAI SDK uses a Base URL ending in /v1; Anthropic SDK uses the root URL. See each guide for protocol-specific parameters, tools and response formats.
Specifications and interface features
Clarify capacity, input and output, and invocation methods before selecting a model.
Input methods
Text, mixed text and image input
Output format
Text responses; supports custom function-calling workflows
Visual tasks
Analysis of images, charts, whiteboards, and diagrams
Responses endpoint
Responses:model + input
Chat endpoint
Chat Completions:model + messages
Invocation controls
Streaming responses; configuration entry points for reasoning in Responses and reasoning_effort in Chat Completions
Native context window
200,000 tokens
Native maximum output
100,000 tokens
o3's visual-text reasoning and function calling are model capabilities. Applications pass relevant history, tool definitions, and results according to the public protocol, and parameter configurations must still fall within the supported range for this model.
Core capabilities
Learn what o3 can bring to your work.
Break down complex multi-condition problems
o3 is well suited to problems involving multiple conditions that cannot be addressed by directly applying a template. When handling mathematics, science, or solution analysis, you can ask it to state assumptions clearly, compare candidate explanations, and provide checkable reasoning. Its value lies in synthesis and analysis, rather than compressing complex problems into an unsupported conclusion.
Include images in analysis
o3 does more than describe image content; it can also reason about chart trends, whiteboard relationships, and conditions in diagrams. Submitting an image together with a specific question—for example, asking it to explain an unusual change or identify contradictions between conditions—makes better use of its visual analysis capabilities than simply asking “what is in the image?”
Connect verifiable tool results
Through custom function calls, o3 can participate in multi-step workflows involving queries, calculations, and result interpretation. The application provides tool definitions, executes requests, and returns results, after which the model continues its analysis accordingly. This can combine reasoning with real data, while tool permissions and execution environments remain managed by the application.
Use cases
Start with specific tasks to find where the model can be effective.
Challenging code diagnosis
Provide relevant code, error logs, expected behavior, and reproduction conditions, and let o3 compare possible causes and propose fixes and testing recommendations. Deliverables can include issue localization, change descriptions, and verification steps. This is suited to debugging that requires understanding multiple constraints, rather than merely completing a small piece of code.
Chart and solution reviews
Submit business charts, whiteboard photos, or process diagrams, along with review objectives, and let o3 explain key relationships, distinguish observations from assumptions, and organize questions to be verified. It is suitable for creating review outlines and solution comparison notes; important data should also be provided in text for easier verification of image-reading results.
Mathematics and scientific research discussions
Provide the problem, known conditions, and existing approaches, and let o3 check whether reasoning omits conditions, try different approaches, and propose hypotheses for further verification. It can be used to organize proof drafts, research questions, and experimental discussion outlines; final conclusions should still be tested through independent calculations or professional methods.
How to choose this model
Choose based on task complexity, input materials, and expected results.
Choose o3 for complex analysis; consider o4-mini for batch tasks
When a task requires more in-depth integrated judgment, especially when it involves code, scientific conditions, or cross-analysis of text and images, o3 can be the preferred choice. o4-mini, on the other hand, is geared toward fast, cost-efficient reasoning and is better suited for large volumes of repetitive tasks. Actual model selection should use the same set of business examples to compare answer quality and processing efficiency, rather than relying only on model names.
Distinguish between o3 and o3-pro, then choose the endpoint
Use Chat Completions or Responses and provide the complete model ID. Chat Completions uses messages and choices, while Responses uses input and its corresponding response structure; manage history, streaming events, and tool parameters separately according to the selected interface, without mixing the two formats.
Start with a specific task
Based on o3's characteristics, first validate a small task whose results can be checked.
01
Review a multi-step technical argument
You can ask directly: Check the correctness and complexity of this algorithm proposal, list the key assumptions, construct counterexamples, and propose validation methods. List any experiments that need to be run separately, and do not claim they have been executed.
02
Prepare inputs that support judgment
Provide complete problem constraints and examples; use reproducible tests and mathematical conditions to verify reasoning results.
03
Then integrate it into your workflow
Use the complete model ID o3, first confirm the public request format and available parameters on the API page, then connect your application. Retain result parsing, exception handling, and relevant evidence, and use the same set of real samples to assess whether it is suitable for continued use.
Usage boundaries
Before formal use, understand the output quality and range of capabilities.
Visual reasoning cannot replace precise data reading. Small text, blurry coordinates, or missing legends may affect judgment; when analyzing key charts, include values and units, and ask the response to distinguish between directly observed information and inferred explanations.
o3's function-calling capability does not mean that an ordinary request will automatically run Python, search the web, or operate a computer. When computation or real-time information is needed, connect executable tools; for actions involving data modification, set permissions and confirmation steps.
Do not treat audio, files, or all reasoning tiers in shared interfaces as o3's default capabilities. Image understanding also does not mean directly generating images; when voice or drawing deliverables are needed, use the corresponding features and clearly define their division of responsibilities from the text analysis workflow.
Frequently Asked Questions
Answers to common questions about using o3.
Are o3 and o3-mini the same model?
No. o3, o3-mini, and o3-pro are different public models. When calling o3, use model: "o3". o3 is designed for complex reasoning and visual analysis; do not directly apply the parameters or capabilities of other models to it just because their names are similar.
How can I have o3 analyze images?
In Chat Completions messages, submit the text question together with an image_url content block, and use model: "o3". The question should preferably target a specific relationship or decision objective; if the image contains key numerical values, you can also provide a text version to reduce reading errors.
Can o3 automatically execute the code it writes?
Generating code and executing code are two different things. o3 can analyze code and request calls to defined functions, but execution must be completed by the application or tool environment. To verify a fix, run tests and feed the results back so the model can continue its assessment based on actual results.
How do I set o3's reasoning strength?
Responses provides a reasoning setting, while Chat Completions provides a reasoning_effort setting. Choose a configuration accepted by o3; do not directly apply tiers from other models. You can also explicitly ask in the prompt to check assumptions, list verification steps, and control response length.
When following up with o3, do I need to submit the history every time?
When using Chat Completions, include relevant history in messages; when using Responses, organize input and related conversation content according to the documentation. Provide the latest materials, revision goals, and key constraints in each round; for longer tasks, retain interim summaries and a final version that can be checked independently.