Techsy
Επικοινωνία
Ξεκίνα τώρα
Επιστροφή στο blog
ai-machine-learning

Οδηγός OpenAI Responses API: 14 Παραδείγματα σε Python για Προγραμματιστές

Ραίτη Techsy Editorial Team
Apr 25, 2026
15 εξάγουμε ανάγνωση
Περιεχόμενα
Οδηγός OpenAI Responses API: 14 Παραδείγματα σε Python για Προγραμματιστές

Οδηγός OpenAI Responses API: 14 Παραδείγματα σε Python για Προγραμματιστές

Ο οδηγός OpenAI Responses API που πραγματικά χρειάζεστε: 14 εκτελέσιμα παραδείγματα Python που καλύπτουν ενσωματωμένα εργαλεία, streaming, κλήση συναρτήσεων, MCP και μια μετάβαση 3 βημάτων από τα Chat Completions. Το Responses API κυκλοφόρησε στις 11 Μαρτίου 2025 ως η ενιαία βασική λειτουργία (primitive) της OpenAI για εφαρμογές τύπου agent και, από τον Απρίλιο του 2026, αποτελεί το προτεινόμενο σημείο εκκίνησης για κάθε νέο project της OpenAI. Δοκιμάσαμε κάθε παράδειγμα παρακάτω με το πιο πρόσφατο Python SDK openai>=1.50 τον Απρίλιο του 2026 — κάθε block κώδικα εκτελείται ως έχει.

Βασικά συμπεράσματα

  • Το Responses API (κυκλοφόρησε στις 11 Μαρτίου 2025) ενοποιεί τα Chat Completions, το Assistants API και τα ενσωματωμένα εργαλεία σε μία stateful βασική λειτουργία.
  • Υποστηρίζει web_search, file_search, code_interpreter, computer_use, image_generation και απομακρυσμένους MCP servers out of the box.
  • Η μετάβαση από τα Chat Completions απαιτεί 3 βήματα: αλλαγή endpoint, μετονομασία messages → input, ενημέρωση schemas εργαλείων.
  • Χρησιμοποιήστε previous_response_id (με store: true) για ελαφρύ state management ή το Conversations API για αξιόπιστες πολυ-turn συνομιλίες.

Τι είναι το OpenAI Responses API;

Το OpenAI Responses API είναι μια ενιαία βασική λειτουργία που κυκλοφόρησε τον Μάρτιο του 2025 και συνδυάζει την απλότητα των Chat Completions με τη χρήση εργαλείων του Assistants API. Υποστηρίζει είσοδο κειμένου + εικόνας, ενσωματωμένα εργαλεία (αναζήτηση web, αναζήτηση αρχείων, διερμηνέας κώδικα, χρήση υπολογιστή, δημιουργία εικόνων), κλήση συναρτήσεων, δομημένες εξόδους, streaming και stateful συνομιλίες μέσω previous_response_id.

Γιατί λοιπόν η OpenAI κυκλοφόρησε ένα τρίτο API όταν τα Chat Completions λειτουργούσαν ήδη; Επειδή ο πρακτορικός βρόχος, όπου το μοντέλο καλεί ένα εργαλείο, λαμβάνει ένα αποτέλεσμα και αποφασίζει την επόμενη κίνηση, ήταν δύσχρηστο να υλοποιηθεί πάνω από τα chat.completions. Καταλήγατε να μεταφέρετε αποτελέσματα εργαλείων μπρος-πίσω σε πίνακες messages, να διαχειρίζεστε IDs threads με το Assistants API ή να δημιουργείτε δικό σας state management. Το Responses API αντιμετωπίζει αυτόν τον βρόχο ως πρώτη-class έννοια.

Αν ξεκινάτε ένα νέο project OpenAI το 2026, το Responses API είναι η προεπιλογή, ενώ τα Chat Completions είναι η legacy βασική λειτουργία από την οποία μεταβαίνετε. Οι μεγάλες εξαιρέσεις: realtime audio (χρησιμοποιήστε το Realtime API) και pure embeddings (χρησιμοποιήστε το Embeddings API). Για όλα τα άλλα, chatbots, agents, pipelines RAG, extractors δομημένων δεδομένων, το Responses είναι αυτό στο οποίο σας παραπέμπουν τα docs της OpenAI και η ανάρτηση ανακοίνωσης της OpenAI.

Αν orchestrate πολλαπλά μοντέλα ή θέλετε ένα layer scaffolding υψηλότερου επιπέδου, συνήθως θα συνδυάσετε το Responses API με το OpenAI Agents SDK. Αναλύσαμε τις trade-offs στη σύγκρισή μας OpenAI Agents SDK, TL;DR: το Responses είναι η βασική λειτουργία, το Agents SDK είναι το framework.

Πώς διαφέρει το Responses API από τα Chat Completions;

Το Responses API είναι ένα superset των Chat Completions: κάθε λειτουργία των Chat Completions λειτουργεί στο Responses, плюс ενσωματωμένα εργαλεία, statefulness και τον πρακτορικό βρόχο. Η OpenAI προτείνει το Responses για όλα τα νέα projects. Τα Chat Completions παραμένουν υποστηριζόμενα αλλά δεν είναι πλέον η προεπιλεγμένη βασική λειτουργία για agents.

Εδώ είναι η σύγκριση πλευρά-πλευρά, από τα docs της πλατφόρμας OpenAI:

ΛειτουργίαResponses APIChat CompletionsAssistants API
Μορφή εισόδουinput (string ή array)Πίνακας messagesThread + messages
StatefulΝαι (previous_response_id)Όχι (στείλτε ιστορικό)Ναι (threads)
Ενσωματωμένα εργαλείαΚαι τα 5 + MCPΚανέναCode Interpreter, File Search
StreamingΝαι (typed SSE events)ΝαιΝαι
Κλήση συναρτήσεωνΝαι (flat πίνακας tools)Ναι (flat πίνακας tools)Ναι (per-assistant)
Πολυτροπική είσοδοςΚείμενο + εικόνες + αρχείαΚείμενο + εικόνεςΚείμενο + εικόνες + αρχεία
Προτείνεται γιαAgents, νέα projectsΑπλές ολοκληρώσεις, legacyΣε διαδικασία απόσυρσης (2026)
Κατάσταση (Απρ 2026)Προεπιλογή για νέα projectsLegacy, still supportedSunsetting

Κάθε λειτουργία των Chat Completions λειτουργεί στο Responses· το αντίστροφο δεν ισχύει. Ο κανόνας απόφασης είναι σύντομος: αν χρειάζεστε ενσωματωμένα εργαλεία, statefulness ή ξεκινάτε από την αρχή, χρησιμοποιήστε το Responses. Αν έχετε ένα σταθερό pipeline Chat Completions που δεν αγγίζει εργαλεία και το gateway σας δεν υποστηρίζει ακόμα το Responses, η μετάβαση δεν είναι επείγουσα, απλώς μην χτίζετε νέους agents στο παλιό API.

Ρύθμιση και η πρώτη σας κλήση στο Responses API

Για να κάνετε την πρώτη σας κλήση στο Responses API, εγκαταστήστε το OpenAI Python SDK 1.50 ή νεότερο, ορίστε τη μεταβλητή περιβάλλοντος OPENAI_API_KEY και καλέστε client.responses.create() με ένα model και input. Το πλήρες παράδειγμα hello-world παίρνει λιγότερο από 60 δευτερόλεπτα.

Βήμα 1 — Εγκατάσταση του SDK:

bash
pip install --upgrade "openai>=1.50"

Βήμα 2 — Ορισμός του API key σας:

bash
export OPENAI_API_KEY="sk-proj-..."

(Στο Windows PowerShell: $env:OPENAI_API_KEY = "sk-proj-...". Ποτέ μην κάνετε commit αυτό στο git, χρησιμοποιήστε ένα αρχείο .env μαζί με python-dotenv για local development.)

Βήμα 3 — Κλήση Hello-world:

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Say hello in exactly 5 words.",
)

print(response.output_text)

Εκτελέστε το και θα λάβετε έναν χαιρετισμό 5 λέξεων πίσω. Ο helper output_text συνενώνει κάθε text chunk σε ένα string, χρήσιμο όταν δεν σας ενδιαφέρει η δομημένη έξοδος.

Βήμα 4 — Επιθεώρηση του αντικειμένου response:

python
print("ID:        ", response.id)
print("Status:    ", response.status)
print("Model:     ", response.model)
print("Output:    ", response.output)            # list of output items
print("First text:", response.output[0].content[0].text)
print("Usage:     ", response.usage)             # input_tokens, output_tokens

Αυτός ο πίνακας response.output είναι αυτό που πρέπει να memorize. Είναι μια λίστα typed items: κείμενο, κλήσεις εργαλείων, αποτελέσματα εργαλείων, summaries reasoning. Θα τον iterάρετε συνεχώς μόλις αρχίσετε να χρησιμοποιείτε ενσωματωμένα εργαλεία.

Πώς κάνετε Stream τις Απαντήσεις με το Responses API;

Το Streaming με το Responses API χρησιμοποιεί Server-Sent Events. Περάστε stream=True στο client.responses.create() και iterάρετε over το resulting event stream. Κάθε event έχει ένα πεδίο type, response.output_text.delta για token chunks και response.completed για το τελικό payload. Το SDK 1.50+ εκθέτει ένα typed event stream.

Αν renderνε tokens σε ένα UI, θα iterάρετε τα events response.output_text.delta και θα αγνοήσετε τα υπόλοιπα.

python
from openai import OpenAI

client = OpenAI()

with client.responses.stream(
    model="gpt-5",
    input="Write a haiku about Python decorators.",
) as stream:
    for event in stream:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
        elif event.type == "response.error":
            print(f"\n[error] {event.error}")
            break
        elif event.type == "response.completed":
            print("\n[done]")

    final = stream.get_final_response()
    print(f"\nTokens: {final.usage.output_tokens}")

Λίγα gotchas που συναντήσαμε κατά τις δοκιμές: ο stream context manager χειρίζεται τον καθαρισμό σύνδεσης αυτόματα, οπότε μην τον κλείνετε χειροκίνητα. Αν θέλετε async, αντικαταστήστε το OpenAI() με AsyncOpenAI() και χρησιμοποιήστε async with μαζί με async for, ίδια ονόματα events, ίδια μορφή.

Ενσωματωμένα Εργαλεία: Web Search, File Search, Code Interpreter, Computer Use, Image Generation

Το Responses API поставляется με πέντε ενσωματωμένα εργαλεία: web_search για live αναζήτηση internet, file_search για retrieval vector store, code_interpreter για sandboxed εκτέλεση Python, computer_use για αυτοματοποίηση browser/desktop και image_generation για inline δημιουργία εικόνων. Ενεργοποιήστε οποιοδήποτε από αυτά προσθέτοντας {"type": "<tool_name>"} στον πίνακα tools.

Εδώ είναι η μήτρα που κρατάμε pinned δίπλα στον editor μας:

ΕργαλείοΣκοπόςΚόστοςStatefulΜοντέλαProduction-ready (Απρ 2026)
web_searchLive αναζήτηση internetSurcharge per-callΌχιgpt-5, gpt-4.1Ναι
file_searchVector store RAGPer-call + storageΝαι (vector store)gpt-5, gpt-4.1, o-seriesΝαι
code_interpreterSandboxed PythonPer-sessionΝαι (container)gpt-5, o-seriesΝαι
computer_useΈλεγχος browser/desktopSurcharge per-callPer-sessiongpt-5 (preview)Preview
image_generationInline δημιουργία εικόνωνPer-imageΌχιgpt-5, gpt-image-1Ναι

Όταν benchmarkάραμε το web_search στο pipeline μας, η latency πρόσθεσε 1.5–3s στην πρώτη κλήση αλλά cached για επαναλήψεις, σχεδιάστε το ανάλογα στο UI. Το παράδειγμα web search του OpenAI Cookbook είναι η πιο καθαρή αναφορά αν θέλετε να βάθετε.

Web Search

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    tools=[{"type": "web_search"}],
    input="What did OpenAI announce at DevDay 2025? Cite your sources.",
)

print(response.output_text)

# Inspect the web_search_call items in response.output for raw search hits
for item in response.output:
    if item.type == "web_search_call":
        print(f"[searched] {item.query}")

File Search

Η αναζήτηση αρχείων είναι ένας χορός δύο βημάτων: δημιουργήστε ένα vector store, ανεβάστε τα αρχεία σας και στη συνέχεια αναφερθείτε στο store ID στον πίνακα tools.

python
from openai import OpenAI

client = OpenAI()

# 1. Create a vector store + upload a file
store = client.vector_stores.create(name="company-handbook")
client.vector_stores.files.upload_and_poll(
    vector_store_id=store.id,
    file=open("handbook.pdf", "rb"),
)

# 2. Use it in a Responses call
response = client.responses.create(
    model="gpt-5",
    input="What's our PTO policy?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": [store.id],
    }],
)
print(response.output_text)

Code Interpreter

Χρειάζεστε το μοντέλο να εκτελέσει Python σε ένα CSV και να κάνει chart κάτι; Το code_interpreter το κάνει αυτό σε ένα sandboxed container.

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Read sales.csv and plot monthly revenue as a bar chart. Return a summary.",
    tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
)
print(response.output_text)

Το container persist across calls στην ίδια session, χρήσιμο όταν θέλετε το μοντέλο να συνεχίζει να iterάρε σε ένα dataframe.

Computer Use

Ακόμα σε preview από τον Απρίλιο του 2026. Το μοντέλο αποκτά ένα virtual browser/desktop και κάνει click γύρω για να ολοκληρώσει tasks. Παραλείψτε το εκτός αν έχετε ένα συγκεκριμένο use case browser-automation που ο κόσμος Playwright/Selenium δεν μπορεί ήδη να λύσει.

Image Generation

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Generate a diagram showing a CI/CD pipeline with build, test, and deploy stages.",
    tools=[{"type": "image_generation"}],
)

# Image bytes live in image_generation_call items
for item in response.output:
    if item.type == "image_generation_call":
        with open("pipeline.png", "wb") as f:
            f.write(item.result)

Κλήση Συναρτήσεων με Custom Εργαλεία

Η κλήση συναρτήσεων στο Responses API επιτρέπει στο μοντέλο να επικαλείται τις δικές σας Python functions. Ορίστε κάθε function ως JSON schema στον πίνακα tools, εκτελέστε την κλήση, ελέγξτε το response.output για items function_call, εκτελέστε τη function και περάστε το αποτέλεσμα πίσω μέσω function_call_output.

Το Responses API μετατρέπει την κλήση συναρτήσεων από έναν χορό 4 βημάτων σε ένα single round-trip όταν αφήνετε τον πρακτορικό βρόχο να το χειριστεί για εσάς. Εδώ είναι ένα πλήρες παράδειγμα μετατροπής νομισμάτων:

python
import json
from openai import OpenAI

client = OpenAI()

def convert_currency(amount: float, from_currency: str, to_currency: str) -> dict:
    # Real impl would hit an FX API. Stubbed for the example.
    rate = 1.08 if (from_currency, to_currency) == ("USD", "EUR") else 1.0
    return {"amount": amount * rate, "currency": to_currency}

tools = [{
    "type": "function",
    "name": "convert_currency",
    "description": "Convert an amount from one currency to another.",
    "parameters": {
        "type": "object",
        "properties": {
            "amount": {"type": "number"},
            "from_currency": {"type": "string"},
            "to_currency": {"type": "string"},
        },
        "required": ["amount", "from_currency", "to_currency"],
    },
}]

# Turn 1: model decides to call our function
first = client.responses.create(
    model="gpt-5",
    input="How much is 250 USD in EUR?",
    tools=tools,
)

# Find the function_call item, run it, send the result back
for item in first.output:
    if item.type == "function_call" and item.name == "convert_currency":
        args = json.loads(item.arguments)
        result = convert_currency(**args)

        second = client.responses.create(
            model="gpt-5",
            previous_response_id=first.id,
            input=[{
                "type": "function_call_output",
                "call_id": item.call_id,
                "output": json.dumps(result),
            }],
            tools=tools,
        )
        print(second.output_text)

Αυτός είναι ο πλήρης βρόχος. Αν είστε νέοι στο pattern, η ανάρτησή μας θεμελιώδη στοιχεία κλήσης συναρτήσεων περνάει μέσα από το conceptual model, και διατηρούμε μια συλλογή από libraries κλήσης συναρτήσεων αν προτιμάτε να μην φτιάχνετε schemas χειροκίνητα. Η παράμετρος tool_choice (ρυθμισμένη σε "auto", "required" ή ένα specific tool name) είναι ο lever σας για να forced ή banned μια tool call όταν χρειάζεστε determinism.

Δομημένες Έξοδοι (JSON Schema και Pydantic)

Οι δομημένες έξοδοι εγγυώνται ότι το μοντέλο επιστρέφει JSON σύμφωνα με το schema σας. Περάστε μια παράμετρο response_format={"type": "json_schema", "json_schema": {...}} ή, με το Python SDK, δώστε του ένα Pydantic model απευθείας μέσω client.responses.parse(). Το μοντέλο περιορίζεται κατά τον decode time, όχι απλώς μέσω prompt.

python
from openai import OpenAI
from pydantic import BaseModel

client = OpenAI()

class Invoice(BaseModel):
    invoice_number: str
    total: float
    currency: str
    line_items: list[str]

response = client.responses.parse(
    model="gpt-5",
    input="Extract: Invoice #INV-2024-001 for $1,250.00 USD. Items: hosting, support, SSL cert.",
    text_format=Invoice,
)

invoice: Invoice = response.output_parsed
print(invoice.invoice_number, invoice.total, invoice.line_items)

Η διαδρομή Pydantic είναι αυτή που θέλετε το 95% του χρόνου, type-safe, λιγότερο boilerplate και το IDE σας autocompletes το αποτέλεσμα. Χρησιμοποιήστε raw JSON schema μόνο όταν χρειάζεστε cross-language schema sharing ή όταν το schema generated dynamically. Αναλύουμε τις trade-offs στον οδηγό μας δομημένες έξοδοι και JSON schema και στο primer μας Pydantic για type-safe schemas.

Διαχείριση State: previous_response_id, Conversations API και store=true

Χρησιμοποιήστε previous_response_id για lightweight multi-turn context, το Conversations API για αξιόπιστες threaded sessions ή στείλτε πλήρες ιστορικό messages για full client-side control. Το previous_response_id απαιτεί store: true και persist μόνο για cached responses· πέστε back σε full history αν το ID είναι unresolvable.

ΠροσέγγισηΧρησιμοποιήστε ότανPersistenceΠολυπλοκότητα κώδικα
previous_response_idΓρήγορα chatbots, short threads30 ημέρες (default), απαιτείται store: trueΧαμηλότερη
Conversations APILong-lived threads, multi-user appsPersistent, εσείς διαχειρίζεστε τον καθαρισμόΜέτρια
Send full historyFull client-side control, audit trailsΕσείς το κατέχετεΥψηλότερη

Εδώ είναι ένα παράδειγμα δύο turns χρησιμοποιώντας previous_response_id:

python
from openai import OpenAI

client = OpenAI()

# Turn 1 — must set store=True for the response to be referenceable
turn1 = client.responses.create(
    model="gpt-5",
    input="My name is Mert and I'm building a weather agent.",
    store=True,
)

# Turn 2 — reference turn 1 by ID; the model "remembers" the name
turn2 = client.responses.create(
    model="gpt-5",
    previous_response_id=turn1.id,
    input="What was my name again?",
    store=True,
)

print(turn2.output_text)  # "Your name is Mert..."

Αν ξεχάσετε το store: true, το previous_response_id σας resolve σε τίποτα και το μοντέλο ξεκινά cold κάθε turn. Έχουμε κάψει μία ώρα debugγοντας αυτό, το API δεν κάνει error, απλώς σας κάνει amnesiac silently. Η default retention είναι 30 ημέρες· αν χρειάζεστε περισσότερο, πέστε στο Conversations API που σας δίνει explicit thread lifecycle control.

Πότε πρέπει να upgrade στο Conversations API; Όταν έχετε πολλούς users σε μία app, όταν τα threads outlive a single session ή όταν θέλετε server-side message editing/branching. Για ένα γρήγορο chatbot, το previous_response_id είναι αρκετό.

Πώς να Μεταβείτε από τα Chat Completions στο Responses API

Η μετάβαση από τα Chat Completions στο Responses API απαιτεί τρία βήματα: αλλάξτε /v1/chat/completions σε /v1/responses, αντικαταστήστε τα messages με input και αντικαταστήστε τα schemas tools με τη νέα μορφή. Η κλήση συναρτήσεων και οι πολυτροπικές είσοδοι χρειάζονται ελαφρώς διαφορετικό handling. Η OpenAI διαθέτει ένα official migration pack στο GitHub.

Βήμα 1 — Αντικατάσταση Endpoint:

python
# Before (Chat Completions)
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Hello"}],
)
text = response.choices[0].message.content

# After (Responses)
response = client.responses.create(
    model="gpt-5",
    input="Hello",
)
text = response.output_text

Βήμα 2 — Μετονομασία messages → input:

python
# Before
client.chat.completions.create(
    model="gpt-4.1",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Summarize this PDF."},
    ],
)

# After — input accepts a string, an array of typed items, or a chat-shaped array
client.responses.create(
    model="gpt-5",
    instructions="You are a helpful assistant.",   # system → instructions
    input="Summarize this PDF.",
)

Βήμα 3 — Ενημέρωση schemas εργαλείων:

python
# Before (Chat Completions tool format)
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}},
    },
}]

# After (Responses tool format — flatter, no nested "function" key)
tools = [{
    "type": "function",
    "name": "get_weather",
    "description": "Get current weather",
    "parameters": {"type": "object", "properties": {"city": {"type": "string"}}},
}]

Αυτό είναι όλο. Roll traffic gradually με ένα feature flag, κρατήστε το code path των Chat Completions live πίσω από το ίδιο interface για μία ή δύο εβδομάδες, log both response shapes side-by-side και flip 100% μόνο αφού επαληθεύσετε parity. Το migration pack στο repo openai-cookbook έχει ένα fuller adapter pattern αν θέλετε μια αναφορά.

Πώς να Χρησιμοποιήσετε MCP και Απομακρυσμένους MCP Servers με το Responses API

Το Responses API υποστηρίζει απομακρυσμένους MCP (Model Context Protocol) servers ως tool type. Προσθέστε μια entry όπως {"type": "mcp", "server_url": "https://mcp.example.com", "server_label": "..."} στον πίνακα tools. Το μοντέλο ανακαλύπτει το tool catalog του MCP server και τα καλεί όπως τα ενσωματωμένα εργαλεία.

Αν δεν έχετε αγγίξει ποτέ το MCP, εδώ είναι το pitch 30 δευτερολέπτων: είναι ένα open protocol που επιτρέπει σε οποιαδήποτε service να εκθέσει το API της ως tool catalog που το μοντέλο μπορεί να καλέσει. Shopify, Stripe, GitHub και μια αυξανόμενη λίστα vendors τρέχουν public MCP endpoints. Η deep-dive ανάρτησή μας Model Context Protocol (MCP) καλύπτει το ίδιο το protocol.

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Find me the top-ranking competitor for 'openai responses api tutorial' and summarize their content gaps.",
    tools=[{
        "type": "mcp",
        "server_url": "https://mcp.semrush.com",
        "server_label": "semrush",
        "require_approval": "never",   # set to "always" in production
    }],
)
print(response.output_text)

Αντιμετωπίστε τους MCP servers όπως οποιοδήποτε third-party API. Το require_approval: "never" είναι fine για prototypes· σε production θέλετε "always" (ή ένα tool allowlist) ώστε ένας compromised MCP server να μην μπορεί να exfiltrate data silently. Audit το tool catalog του server πριν point τον agent σας σε αυτόν.

Τιμολόγηση, Rate Limits και Production Gotchas

Η τιμολόγηση του Responses API ταιριάζει με τα Chat Completions στα token costs (prompt + completion), με surcharges per-call στα ενσωματωμένα εργαλεία (web_search, file_search). Τα rate limits ακολουθούν το existing OpenAI tier σας. Συχνά production gotchas περιλαμβάνουν defaults retention store: true, transient 429s σε burst traffic και lag features στην Azure variant.

Οικογένεια μοντέλωνResponses APIΕνσωματωμένα εργαλείαReasoning effortStreamingCost tier
gpt-5ΝαιΚαι τα 5 + MCPN/AΝαιΔείτε τιμολόγηση OpenAI
gpt-5-miniΝαιΚαι τα 5 + MCPN/AΝαιΧαμηλότερο από gpt-5
gpt-4.1Ναιweb/file/code/imageN/AΝαιMid
o-series (reasoning)Ναιfile/codelow/medium/highΝαιΥψηλότερο per-token
gpt-image-1Μόνο εργαλείο image-gen,,ΌχιPer-image

Οι τιμές αλλάζουν, πάντα επαληθεύστε στη σελίδα τιμολόγησης της OpenAI κατά τη στιγμή της συγγραφής.

Για error handling, wrap calls σε try/except openai.RateLimitError και try/except openai.APIStatusError, με exponential backoff via tenacity:

python
from openai import OpenAI, RateLimitError, APIStatusError
from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_exponential

client = OpenAI()

@retry(
    retry=retry_if_exception_type((RateLimitError, APIStatusError)),
    wait=wait_exponential(multiplier=1, min=2, max=30),
    stop=stop_after_attempt(5),
    reraise=True,
)
def safe_create(prompt: str):
    return client.responses.create(model="gpt-5", input=prompt)

print(safe_create("Hello").output_text)

Χτυπήσαμε ένα transient 429 σε burst 20 parallel requests στο staging env μας, το tenacity με exponential backoff το έλυσε cleanly. Το error string που logged ήταν openai.RateLimitError: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-5 in organization org-... on requests per min (RPM)'}}. Διαβάστε το μία φορά και προχωρήστε· ο retry decorator χειρίζεται τα υπόλοιπα.

Σημείωση Azure variant: Το Azure OpenAI εκθέτει το Responses API αλλά lags τα rollouts controlled by Sam Altman κατά 4–8 εβδομάδες. Από τον Απρίλιο του 2026, η υποστήριξη MCP στο Azure είναι preview-only, επιβεβαιώστε against τα docs Azure OpenAI Responses API του Microsoft Learn πριν ship.

Συμβατότητα Gateway: αν proxynete την OpenAI μέσω LiteLLM proxy, η υποστήριξη Responses API landed το 2026. Τα περισσότερα άλλα gateways catch up. Και για production rollouts θα θέλετε AI observability and logging wired up πριν flip traffic, τα events του Responses API είναι richer από τα Chat Completions και θα θέλετε κάθε tool call logged.

Πότε ΝΑ ΜΗΝ Χρησιμοποιήσετε το Responses API

Παραλείψτε το Responses API για low-latency realtime audio (χρησιμοποιήστε το Realtime API), δημιουργία embeddings (χρησιμοποιήστε το Embeddings API) και workflows fine-tuning. Μείνετε στα Chat Completions αν το gateway/proxy σας δεν υποστηρίζει ακόμα το Responses (τα περισσότερα το κάνουν via LiteLLM από το 2026).

Λίγοι πιο honest disqualifiers:

  • Realtime voice agents, το Realtime API χρησιμοποιεί WebSockets και είναι built για sub-second turn-taking. Το streaming του Responses API είναι HTTP SSE· θα φαίνεται sluggish για voice.
  • Pure embeddings pipelines, το client.embeddings.create() είναι φθηνότερο, γρηγορότερο και αυτό που κάθε integration vector DB expects.
  • Fine-tuning, train και deploy fine-tunes via το fine-tuning API· μπορείτε μετά να τα καλέσετε μέσω Responses, αλλά το training itself δεν είναι workflow Responses.
  • Batch API jobs, αν processνε ένα εκατομμύριο prompts overnight με 50% off, το Batch API still wins on price.
  • Locked-in Chat Completions semantics, αν το eval use, observability και prompt library σας all assume chat.completions.choices[0].message.content, το migration cost είναι real. Μην migrate just because it's newer.

Αν το stack σας είναι happy στα Chat Completions και δεν χτίζετε agents, η μετάβαση δεν είναι free, το Q2 sprint σας may not need it. Newer doesn't mean better-for-you, το Responses API είναι το right primitive για agents, όχι για κάθε workload OpenAI.

Συχνές Ερωτήσεις

Τι είναι το OpenAI Responses API;

Το OpenAI Responses API είναι μια ενιαία βασική λειτουργία που κυκλοφόρησε τον Μάρτιο του 2025 και συνδυάζει την απλότητα των Chat Completions με τη χρήση εργαλείων του Assistants API. Υποστηρίζει είσοδο κειμένου και εικόνας, πέντε ενσωματωμένα εργαλεία, κλήση συναρτήσεων, δομημένες εξόδους, streaming και stateful συνομιλίες μέσω previous_response_id.

Πότε κυκλοφόρησε το OpenAI Responses API;

Η OpenAI announced το Responses API στις 11 Μαρτίου 2025 alongside την ευρύτερη ανακοίνωσή της "new tools for building agents". Το API has been generally available since launch, με το Conversations API, υποστήριξη MCP και εργαλείο image_generation added σε incremental updates throughout 2025 και early 2026.

Είναι το OpenAI Responses API stateful;

Ναι, optionally. Περάστε previous_response_id plus store: true και το μοντέλο carries context across calls without you sending the full history. Για longer-lived threads, το Conversations API σας δίνει explicit thread lifecycle management. Μπορείτε επίσης να stay stateless και να στείλετε full history every turn, like Chat Completions.

Ποια είναι η διαφορά μεταξύ του Responses API και των Chat Completions;

Το Responses API είναι ένα superset των Chat Completions. Κάθε λειτουργία των Chat Completions works in Responses, plus ενσωματωμένα εργαλεία (web_search, file_search, etc.), statefulness via previous_response_id και τον πρακτορικό βρόχο ως first-class concept. Η OpenAI recommends Responses for all new projects as of 2026.

Είναι deprecated το Chat Completions API;

Όχι. Από τον Απρίλιο του 2026, τα Chat Completions δεν είναι deprecated, παραμένουν fully supported. Η OpenAI recommends Responses for new projects και most agent-style tutorials assume Responses. Τα Chat Completions είναι now the legacy primitive: stable, but no longer where new features land first.

Ποια μοντέλα OpenAI υποστηρίζουν το Responses API;

GPT-5, gpt-5-mini, gpt-4.1 και τα o-series reasoning models all support the Responses API. Τα o-series add the reasoning_effort parameter (low, medium, high) for extended-thinking workloads. Image generation routes through gpt-image-1 under the hood when you enable the image_generation tool.

Πώς μεταβαίνω από τα Chat Completions στο Responses API;

Τρία βήματα: switch client.chat.completions.create() to client.responses.create(), replace the messages array with input (and move system prompts to instructions) και flatten your tool schemas (drop the nested function key). Το migration pack της OpenAI στο GitHub has full adapter examples.

Υποστηρίζει το Responses API streaming;

Ναι. Περάστε stream=True στο client.responses.create() (ή use client.responses.stream() as a context manager) και iterάρετε τα typed Server-Sent Events. Τα token-stream events που θα handle are response.output_text.delta for content και response.completed for the final payload. Async streaming works via AsyncOpenAI.

Μπορώ να χρησιμοποιήσω το Responses API στο Azure;

Ναι. Το Azure OpenAI εκθέτει το Responses API, αλλά feature parity lags OpenAI's direct rollouts by 4–8 weeks. Από τον Απρίλιο του 2026, η υποστήριξη MCP στο Azure is in preview. Check Microsoft Learn for the current Azure-specific quirks before you ship to production.

Λειτουργεί το Responses API με MCP servers;

Ναι, remote MCP (Model Context Protocol) servers are a first-class tool type. Add {"type": "mcp", "server_url": "...", "server_label": "..."} to your tools array και το μοντέλο discovers and calls the server's tool catalog like any built-in tool. Use require_approval: "always" in production for security.

Επίλογος

Τώρα έχετε την πλήρη εικόνα του Responses API: πώς διαφέρει από τα Chat Completions, πώς να ship την πρώτη σας κλήση, πώς να wire up ενσωματωμένα εργαλεία και πώς να migrate ένα existing Chat Completions project σε τρία βήματα. Λίγα takeaways to anchor on:

  • Build first, then optimize. Ξεκινήστε με το παράδειγμα hello-world, add a built-in tool, then layer on state with previous_response_id.
  • Migrate gradually. Use a feature flag, log both response shapes, flip 100% only after parity verification.
  • Ship MCP integrations. Αυτό είναι το frontier του 2026, most vendors are racing to expose MCP endpoints και το Responses API is the cleanest way to consume them.

Στη Techsy, βοηθάμε teams να ship production-grade OpenAI integrations, including Responses API rollouts και Chat Completions migrations. Get a free consultation.


Από την editorial team της Techsy, production engineers shipping OpenAI integrations since 2024. Last updated: 25 Απριλίου 2026.

Ετικέτες

openai responses api tutorialopenai responses apichat completions migrationfunction callingmcppython sdk

Κοινοποίηση άρθρου

Σχετικά άρθρα

Περισσότερα στο ai-machine-learning

ai-machine-learning
Jul 20, 2026

8 Καλύτερα AI Web Scraping APIs το 2026 (Δοκιμασμένα στο Δικό μας Agent Stack)

Δοκιμάσαμε 8 AI web scraping APIs με πραγματικές τιμές 2026 μέσα από το δικό μας agent stack. Firecrawl, Bright Data, ScrapingBee και 5 ακόμα, καταταγμένα για LLM-ready output, anti-bot και υποστήριξη MCP.

9 min read εξάγουμε ανάγνωση
Ανάγνωση
ai-machine-learning
Jul 20, 2026

Prompt Engineering για Προγραμματισμό: 7 Μοτίβα που Χρησιμοποιούμε Καθημερινά σε Claude Code και Cursor (2026)

Τα περισσότερα άρθρα για 'prompts προγραμματισμού με AI' σας δίνουν 50 έτοιμα πρότυπα. Αυτό το άρθρο διδάσκει τα 7 μοτίβα που χρησιμοποιούμε καθημερινά για τη διαχείριση μιας ροής εργασίας 16 πρακτόρων στο Claude Code, με πραγματικά παραδείγματα πριν και μετά, καθώς και πού εφαρμόζεται κάθε μοτίβο στο Claude Code, το Cursor και το Copilot το 2026.

11 min read εξάγουμε ανάγνωση
Ανάγνωση
ai-machine-learning
Jul 19, 2026

AI PoC σε Παραγωγή: Η Λίστα Ελέγχου 12 Σημείων Πριν την Κυκλοφορία

Ένα λειτουργικό AI demo δεν είναι σύστημα παραγωγής. Αυτή η λίστα ελέγχου 12 σημείων παρουσιάζει τις τρεις φάσεις που χρειάζεται κάθε AI feature πριν την κυκλοφορία: θωράκιση, σταθεροποίηση και ανάπτυξη, με συγκεκριμένα κατώφλια για ανώτατα όρια κόστους, όρια ρυθμού, εναλλακτικές λύσεις και ενεργοποιήσεις επαναφοράς.

10 min read εξάγουμε ανάγνωση
Ανάγνωση
Εμφάνιση όλων των άρθρων
Ξεκινήσετε το Project σας

Έτοιμοι να δημιουργήσουμε κάτι εξαιρετικό;

Ας κάνουμε το όραμά σας πραγματικότητα. Η ομάδα μας είναι έτοιμη να σας βοηθήσει να φτιάξετε λογισμικό που κάνει τη διαφορά.

Κλείστε μια κλήση αξιολόγησης 30 λεπτάΔείτε το Έργο μας

Τα πιο hot από τη βιβλιοθήκη

Claude Skills

Δείτε όλα
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI Automatizations

Δείτε όλα
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Τα πιο hot από τη βιβλιοθήκη

Claude Skills

Δείτε όλα
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI Automatizations

Δείτε όλα
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Υπηρεσίες

  • Enterprise Λύσεις
  • Mobile Εφαρμογές
  • Web Application

Λύσεις

  • CRM Συστήματα
  • AI Ενσωμάτωση
  • ERP Λύσεις
  • Φωνητικοί Πράκτορες
  • Αυτοματοποίηση Διαδικασιών
  • Κιберασφάλεια

Βιβλιοθήκη

  • Ιστολόγιο
  • Έργα

Κοινότητα

  • AI Automatizations
  • Claude Skills

Εργαλεία

  • Υπολογισμό Κόστους Mobile App
  • Υπολογισμός Κόστους OpenAI / LLM APIs
  • Υπολογισμός Κόστους MVP
  • Υπολογισμός Κόστους Voice AI Agent

Εταιρεία

  • Σχετικά
  • Συνεργάτες
  • Επικοινωνία

Νομικά

  • Πολιτική Απορρήτου
  • Όροι Χρήσης
  • Πολιτική Cookies

Υπηρεσίες

  • Enterprise Λύσεις
  • Mobile Εφαρμογές
  • Web Application

Λύσεις

  • CRM Συστήματα
  • AI Ενσωμάτωση
  • ERP Λύσεις
  • Φωνητικοί Πράκτορες
  • Αυτοματοποίηση Διαδικασιών
  • Κιберασφάλεια

Βιβλιοθήκη

  • Ιστολόγιο
  • Έργα

Κοινότητα

  • AI Automatizations
  • Claude Skills

Εργαλεία

  • Υπολογισμό Κόστους Mobile App
  • Υπολογισμός Κόστους OpenAI / LLM APIs
  • Υπολογισμός Κόστους MVP
  • Υπολογισμός Κόστους Voice AI Agent

Εταιρεία

  • Σχετικά
  • Συνεργάτες
  • Επικοινωνία
ΝομικάΠολιτική ΑπορρήτουΌροι ΧρήσηςΠολιτική Cookies
TECHSY
© 2026 Techsy. Με επιφύλαξη παντός δικαιώματος.