Megosztás a következőn keresztül:


Azure OpenAI Responses API

A Responses API egy új állapotalapú API az Azure OpenAI-ból. Egyetlen egységes felületen egyesíti a csevegés befejezésének legjobb képességeit és az assistants API-t. A Responses API az új computer-use-preview modell támogatását is hozzáadja, amely a számítógép-használati képességet biztosítja.

Responses API (Válaszok API)

API-támogatás

Régiónkénti elérhetőség

A válaszok API jelenleg a következő régiókban érhető el:

  • australiaeast
  • Brazília déli régiója
  • Kanada középső része
  • Kanada keleti része
  • eastus
  • eastus2
  • francecentral
  • Németország Közép-Nyugat
  • Olaszország északa
  • japaneast
  • koreacentral
  • northcentralus
  • norwayeast
  • polandcentral
  • southafricanorth
  • southcentralus
  • southeastasia
  • southindia
  • spaincentral
  • swedencentral
  • switzerlandnorth
  • uaenorth
  • uksouth
  • westus
  • westus3

Modelltámogatás

  • gpt-5.1-codex-max (Verzió: 2025-12-04)
  • gpt-5.1 (Verzió: 2025-11-13)
  • gpt-5.1-chat (Verzió: 2025-11-13)
  • gpt-5.1-codex (Verzió: 2025-11-13)
  • gpt-5.1-codex-mini (Verzió: 2025-11-13)
  • gpt-5-pro (Verzió: 2025-10-06)
  • gpt-5-codex (Verzió: 2025-09-11)
  • gpt-5 (Verzió: 2025-08-07)
  • gpt-5-mini (Verzió: 2025-08-07)
  • gpt-5-nano (Verzió: 2025-08-07)
  • gpt-5-chat (Verzió: 2025-08-07)
  • gpt-5-chat (Verzió: 2025-10-03)
  • gpt-5-codex (Verzió: 2025-09-15)
  • gpt-4o(Verziók: 2024-11-20, 2024-08-06) 2024-05-13
  • gpt-4o-mini (Verzió: 2024-07-18)
  • computer-use-preview
  • gpt-4.1 (Verzió: 2025-04-14)
  • gpt-4.1-nano (Verzió: 2025-04-14)
  • gpt-4.1-mini (Verzió: 2025-04-14)
  • gpt-image-1 (Verzió: 2025-04-15)
  • gpt-image-1-mini (Verzió: 2025-10-06)
  • o1 (Verzió: 2024-12-17)
  • o3-mini (Verzió: 2025-01-31)
  • o3 (Verzió: 2025-04-16)
  • o4-mini (Verzió: 2025-04-16)

A válaszok API által támogatott régiókban nem minden modell érhető el. Ellenőrizze a modellrégió rendelkezésre állását a modellek oldalán .

Note

Jelenleg nem támogatott:

  • Tömörítés a /responses/compact
  • Képgenerálás többfordulós szerkesztéssel és streameléssel.
  • A képek nem tölthetők fel fájlként, és nem hivatkozhatnak rá bemenetként.

Az alábbiakkal kapcsolatban ismert probléma merült fel:

  • A PDF bemeneti fájlként már támogatott, de a fájlfeltöltés céljának user_data beállítása jelenleg nem támogatott.
  • Teljesítményproblémák a háttér mód streamelésekor. A probléma várhatóan hamarosan megoldódik.

Referenciadokumentáció

A válasz API használatának első lépései

A válaszok API-parancsainak eléréséhez frissítenie kell az OpenAI-kódtár verzióját.

pip install --upgrade openai

Szöveges válasz létrehozása

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)

response = client.responses.create(   
  model="gpt-4.1-nano", # Replace with your model deployment name 
  input="This is a test.",
)

print(response.model_dump_json(indent=2)) 

Important

Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. Ha API-kulcsot használ, tárolja azt biztonságosan az Azure Key Vaultban. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

Válasz lekérése

Válasz lekérése a válasz API-nak küldött előző hívásból.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)

response = client.responses.retrieve("resp_67cb61fa3a448190bcf2c42d96f0d1a8")

Important

Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. Ha API-kulcsot használ, tárolja azt biztonságosan az Azure Key Vaultban. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

Válasz törlése

Alapértelmezés szerint a válaszadatok 30 napig maradnak meg. Válasz törléséhez használhatja a response.delete ("{response_id}")

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.delete("resp_67cb61fa3a448190bcf2c42d96f0d1a8")

print(response)

Válaszok összeláncolása

Az összeláncolás érdekében az előző válaszból származó response.id-t adja át a previous_response_id paraméternek.

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model="gpt-4o",  # replace with your model deployment name
    input="Define and explain the concept of catastrophic forgetting?"
)

second_response = client.responses.create(
    model="gpt-4o",  # replace with your model deployment name
    previous_response_id=response.id,
    input=[{"role": "user", "content": "Explain this at a level that could be understood by a college freshman"}]
)
print(second_response.model_dump_json(indent=2)) 

Figyelje meg a kimenetből, hogy bár soha nem osztottuk meg az első bemeneti kérdést az second_response API-hívással, a modell átadásával teljes kontextusban van az previous_response_id előző kérdés és válasz az új kérdés megválaszolásához.

Output:

{
  "id": "resp_67cbc9705fc08190bbe455c5ba3d6daf",
  "created_at": 1741408624.0,
  "error": null,
  "incomplete_details": null,
  "instructions": null,
  "metadata": {},
  "model": "gpt-4o-2024-08-06",
  "object": "response",
  "output": [
    {
      "id": "msg_67cbc970fd0881908353a4298996b3f6",
      "content": [
        {
          "annotations": [],
          "text": "Sure! Imagine you are studying for exams in different subjects like math, history, and biology. You spend a lot of time studying math first and get really good at it. But then, you switch to studying history. If you spend all your time and focus on history, you might forget some of the math concepts you learned earlier because your brain fills up with all the new history facts. \n\nIn the world of artificial intelligence (AI) and machine learning, a similar thing can happen with computers. We use special programs called neural networks to help computers learn things, sort of like how our brain works. But when a neural network learns a new task, it can forget what it learned before. This is what we call \"catastrophic forgetting.\"\n\nSo, if a neural network learned how to recognize cats in pictures, and then you teach it how to recognize dogs, it might get really good at recognizing dogs but suddenly become worse at recognizing cats. This happens because the process of learning new information can overwrite or mess with the old information in its \"memory.\"\n\nScientists and engineers are working on ways to help computers remember everything they learn, even as they keep learning new things, just like students have to remember math, history, and biology all at the same time for their exams. They use different techniques to make sure the neural network doesn’t forget the important stuff it learned before, even when it gets new information.",
          "type": "output_text"
        }
      ],
      "role": "assistant",
      "status": null,
      "type": "message"
    }
  ],
  "parallel_tool_calls": null,
  "temperature": 1.0,
  "tool_choice": null,
  "tools": [],
  "top_p": 1.0,
  "max_output_tokens": null,
  "previous_response_id": "resp_67cbc96babbc8190b0f69aedc655f173",
  "reasoning": null,
  "status": "completed",
  "text": null,
  "truncation": null,
  "usage": {
    "input_tokens": 405,
    "output_tokens": 285,
    "output_tokens_details": {
      "reasoning_tokens": 0
    },
    "total_tokens": 690
  },
  "user": null,
  "reasoning_effort": null
}

Válaszok manuális láncolása

Másik lehetőségként manuálisan is összekapcsolhatja a válaszokat az alábbi módszerrel:

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)


inputs = [{"type": "message", "role": "user", "content": "Define and explain the concept of catastrophic forgetting?"}] 
  
response = client.responses.create(  
    model="gpt-4o",  # replace with your model deployment name  
    input=inputs  
)  
  
inputs += response.output

inputs.append({"role": "user", "type": "message", "content": "Explain this at a level that could be understood by a college freshman"}) 
               

second_response = client.responses.create(  
    model="gpt-4o",  
    input=inputs
)  
      
print(second_response.model_dump_json(indent=2))  

Streaming

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    input = "This is a test",
    model = "o4-mini", # replace with model deployment name
    stream = True
)

for event in response:
    if event.type == 'response.output_text.delta':
        print(event.delta, end='')

Függvényhívás

A válaszok API támogatja a függvényhívást.

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(  
    model="gpt-4o",  # replace with your model deployment name  
    tools=[  
        {  
            "type": "function",  
            "name": "get_weather",  
            "description": "Get the weather for a location",  
            "parameters": {  
                "type": "object",  
                "properties": {  
                    "location": {"type": "string"},  
                },  
                "required": ["location"],  
            },  
        }  
    ],  
    input=[{"role": "user", "content": "What's the weather in San Francisco?"}],  
)  

print(response.model_dump_json(indent=2))  
  
# To provide output to tools, add a response for each tool call to an array passed  
# to the next response as `input`  
input = []  
for output in response.output:  
    if output.type == "function_call":  
        match output.name:  
            case "get_weather":  
                input.append(  
                    {  
                        "type": "function_call_output",  
                        "call_id": output.call_id,  
                        "output": '{"temperature": "70 degrees"}',  
                    }  
                )  
            case _:  
                raise ValueError(f"Unknown function call: {output.name}")  
  
second_response = client.responses.create(  
    model="gpt-4o",  
    previous_response_id=response.id,  
    input=input  
)  

print(second_response.model_dump_json(indent=2)) 

Kódértelmező

A Kódértelmező eszköz lehetővé teszi a modellek számára a Python-kód biztonságos, tesztkörnyezetben történő írását és végrehajtását. Számos speciális feladatot támogat, többek között a következőket:

  • Fájlok feldolgozása változatos adatformátumokkal és struktúrákkal
  • Adatokkal és vizualizációkkal (például grafikonokkal) kapcsolatos fájlok létrehozása
  • A problémák megoldásához iteratív módon írhat és futtathat kódot – a modellek hibakeresést végezhetnek, és újrapróbálkozhatnak a kódot a sikeres működésig
  • A támogatott modellek (például o3, o4-mini) vizuális érvelésének javítása a képátalakítások, például a körülvágás, a nagyítás és a forgatás engedélyezésével
  • Ez az eszköz különösen hasznos adatelemzést, matematikai számítást és kódgenerálást igénylő forgatókönyvekhez.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses?api-version=preview \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
        "model": "gpt-4.1",
        "tools": [
            { "type": "code_interpreter", "container": {"type": "auto"} }
        ],
        "instructions": "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question.",
        "input": "I need to solve the equation 3x + 11 = 14. Can you help me?"
    }'
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

instructions = "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question."

response = client.responses.create(
    model="gpt-4.1",
    tools=[
        {
            "type": "code_interpreter",
            "container": {"type": "auto"}
        }
    ],
    instructions=instructions,
    input="I need to solve the equation 3x + 11 = 14. Can you help me?",
)

print(response.output)

Containers

Important

A kódértelmező az Azure OpenAI használatának tokenalapú díjain túl további díjakkal is jár. Ha a Responses API egyszerre két különböző szálon hívja meg a Kódértelmezőt, két kódértelmező-munkamenet jön létre. Minden munkamenet alapértelmezés szerint 1 órán keresztül aktív, 20 perces tétlenségi időtúllépéssel.

A Kódértelmező eszközhöz tárolóra van szükség – egy teljesen tesztkörnyezetbe helyezett virtuális gépre, ahol a modell végrehajthatja a Python-kódot. A tárolók tartalmazhatnak a végrehajtás során létrehozott feltöltött fájlokat vagy fájlokat.

Tároló létrehozásához adja meg a "container": { "type": "auto", "file_ids": ["file-1", "file-2"] } az eszköz konfigurációjában, amikor egy új Válasz objektumot hoz létre. Ez automatikusan létrehoz egy új tárolót, vagy újra felhasznál egy aktív tárolót egy korábbi code_interpreter_call a modell környezetében. Az API kimenetében a code_interpreter_call tartalmazza a létrehozott container_id. Ez a tároló lejár, ha 20 percig nem használják.

Fájlbemenetek és kimenetek

A Kódértelmező futtatásakor a modell létrehozhatja a saját fájljait. Ha például arra kéri, hogy hozzon létre egy rajzot, vagy hozzon létre egy CSV-t, az közvetlenül a tárolón hozza létre ezeket a lemezképeket. Ezeket a fájlokat a következő üzenet széljegyzeteiben fogja idézni.

A modell bemenetében lévő fájlok automatikusan feltöltődnek a tárolóba. Nem kell explicit módon feltöltenie a tárolóba.

Támogatott fájlok

Fájlformátum MIME-típus
.c text/x-c
.cs text/x-csharp
.cpp text/x-c++
.csv szöveg/csv
.doc application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.html text/html
.java text/x-java
.json application/json
.md text/markdown
.pdf application/pdf
.php text/x-php
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.py text/x-python
.py text/x-script.python
.rb text/x-ruby
.tex text/x-tex
.txt text/plain
.css text/css
.js text/JavaScript
.sh application/x-sh
.ts application/TypeScript
.csv application/csv
.jpeg image/jpeg
.jpg image/jpeg
.gif image/gif
.pkl application/octet-stream
.png image/png
.tar application/x-tar
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml vagy "text/xml"
.zip application/zip

Bemeneti elemek listázása

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.input_items.list("resp_67d856fcfba0819081fd3cffee2aa1c0")

print(response.model_dump_json(indent=2))

Output:

{
  "data": [
    {
      "id": "msg_67d856fcfc1c8190ad3102fc01994c5f",
      "content": [
        {
          "text": "This is a test.",
          "type": "input_text"
        }
      ],
      "role": "user",
      "status": "completed",
      "type": "message"
    }
  ],
  "has_more": false,
  "object": "list",
  "first_id": "msg_67d856fcfc1c8190ad3102fc01994c5f",
  "last_id": "msg_67d856fcfc1c8190ad3102fc01994c5f"
}

Képbemenet

Látásbarát modellek esetén a PNG (.png), JPEG (.jpeg és .jpg), WEBP (.webp) képek támogatottak.

Kép URL-címe

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model="gpt-4o",
    input=[
        {
            "role": "user",
            "content": [
                { "type": "input_text", "text": "what is in this image?" },
                {
                    "type": "input_image",
                    "image_url": "<image_URL>"
                }
            ]
        }
    ]
)

print(response)

Base64 kódolású rendszerkép

import base64
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")

# Path to your image
image_path = "path_to_your_image.jpg"

# Getting the Base64 string
base64_image = encode_image(image_path)

response = client.responses.create(
    model="gpt-4o",
    input=[
        {
            "role": "user",
            "content": [
                { "type": "input_text", "text": "what is in this image?" },
                {
                    "type": "input_image",
                    "image_url": f"data:image/jpeg;base64,{base64_image}"
                }
            ]
        }
    ]
)

print(response)

Fájlbemenet

A látási képességekkel rendelkező modellek támogatják a PDF-bemenetet. A PDF-fájlok base64-kódolású adatokként vagy fájlazonosítókként is megadhatóak. A PDF-tartalom értelmezésének segítése érdekében a modell kontextusában a kinyert szöveg és az egyes oldalak képe is megjelenik. Ez akkor hasznos, ha a fő információkat diagramokon vagy nem szöveges tartalmakon keresztül továbbítják.

Note

  • Az összes kinyert szöveg és kép a modell környezetébe kerül. Győződjön meg arról, hogy tisztában van a PDF-ek bemenetként való használatának árazási és tokenhasználati következményeivel.

  • Egyetlen API-kérésben a több bemenet (fájl) között feltöltött tartalom méretének a modell környezethosszán belül kell lennie.

  • Csak a szöveg- és képbemeneteket támogató modellek fogadhatják el bemenetként a PDF-fájlokat.

  • A purposeuser_data jelenleg nem támogatott. Ideiglenes áthidaló megoldásként be kell állítania a célt a következőre assistants: .

PDF konvertálása Base64-be és elemzés

import base64
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

with open("PDF-FILE-NAME.pdf", "rb") as f: # assumes PDF is in the same directory as the executing script
    data = f.read()

base64_string = base64.b64encode(data).decode("utf-8")

response = client.responses.create(
    model="gpt-4o-mini", # model deployment name
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "filename": "PDF-FILE-NAME.pdf",
                    "file_data": f"data:application/pdf;base64,{base64_string}",
                },
                {
                    "type": "input_text",
                    "text": "Summarize this PDF",
                },
            ],
        },
    ]
)

print(response.output_text)

PDF feltöltése és elemzése

Töltse fel a PDF-fájlt. A purposeuser_data jelenleg nem támogatott. Áthidaló megoldásként a célt assistants értékre kell beállítani.

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)


# Upload a file with a purpose of "assistants"
file = client.files.create(
  file=open("nucleus_sampling.pdf", "rb"), # This assumes a .pdf file in the same directory as the executing script
  purpose="assistants"
)

print(file.model_dump_json(indent=2))
file_id = file.id

Output:

{
  "id": "assistant-KaVLJQTiWEvdz8yJQHHkqJ",
  "bytes": 4691115,
  "created_at": 1752174469,
  "filename": "nucleus_sampling.pdf",
  "object": "file",
  "purpose": "assistants",
  "status": "processed",
  "expires_at": null,
  "status_details": null
}

Ezután az id értékét átadja egy modellnek feldolgozásra a file_id alatt.

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model="gpt-4o-mini",
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "file_id":"assistant-KaVLJQTiWEvdz8yJQHHkqJ"
                },
                {
                    "type": "input_text",
                    "text": "Summarize this PDF",
                },
            ],
        },
    ]
)

print(response.output_text)
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/files \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -F purpose="assistants" \
  -F file="@your_file.pdf" \

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
        "model": "gpt-4.1",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "file_id": "assistant-123456789"
                    },
                    {
                        "type": "input_text",
                        "text": "ASK SOME QUESTION RELATED TO UPLOADED PDF"
                    }
                ]
            }
        ]
    }'

Távoli MCP-kiszolgálók használata

A modell képességeit úgy bővítheti, hogy távoli Model Context Protocol (MCP) kiszolgálókon üzemeltetett eszközökhöz csatlakoztatja. Ezeket a kiszolgálókat fejlesztők és szervezetek tartják karban, és olyan eszközöket tehetnek közzé, amelyeket az MCP-kompatibilis ügyfelek, például a Responses API érhetnek el.

A Model Context Protocol (MCP) egy nyílt szabvány, amely meghatározza, hogy az alkalmazások hogyan biztosítják az eszközöket és a környezetfüggő adatokat a nagy nyelvi modellek (LLM-ek) számára. Lehetővé teszi a külső eszközök egységes, méretezhető integrálását a modell-munkafolyamatokba.

Az alábbi példa bemutatja, hogyan használható a fiktív MCP-kiszolgáló az Azure REST API-val kapcsolatos információk lekérdezésére. Ez lehetővé teszi a modell számára, hogy valós időben kérje le és elemezze az adattár tartalmát.

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
  "model": "gpt-4.1",
  "tools": [
    {
      "type": "mcp",
      "server_label": "github",
      "server_url": "https://contoso.com/Azure/azure-rest-api-specs",
      "require_approval": "never"
    }
  ],
  "input": "What is this repo in 100 words?"
}'
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)
response = client.responses.create(
    model="gpt-4.1", # replace with your model deployment name 
    tools=[
        {
            "type": "mcp",
            "server_label": "github",
            "server_url": "https://contoso.com/Azure/azure-rest-api-specs",
            "require_approval": "never"
        },
    ],
    input="What transport protocols are supported in the 2025-03-26 version of the MCP spec?",
)

print(response.output_text)

Az MCP eszköz csak a Responses API-ban működik, és minden újabb modellben (gpt-4o, gpt-4.1 és érvelési modelljeink) elérhető. Az MCP-eszköz használatakor csak az eszközdefiníciók importálásakor vagy eszközhívások során használt jogkivonatokért kell fizetnie – további díjak nem merülnek fel.

Approvals

Alapértelmezés szerint a Responses API-nak explicit jóváhagyásra van szüksége ahhoz, hogy bármilyen adatot megosztanának egy távoli MCP-kiszolgálóval. Ez a jóváhagyási lépés segít biztosítani az átláthatóságot, és szabályozni tudja, hogy a rendszer milyen információkat küld külsőleg.

Javasoljuk, hogy tekintse át a távoli MCP-kiszolgálókkal megosztott összes adatot, és opcionálisan naplózza azokat az ellenőrzési célból.

Ha jóváhagyásra van szükség, a modell egy elemet ad vissza mcp_approval_request a válasz kimenetében. Ez az objektum tartalmazza a függőben lévő kérelem részleteit, és lehetővé teszi az adatok vizsgálatát vagy módosítását a folytatás előtt.

{
  "id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828",
  "type": "mcp_approval_request",
  "arguments": {},
  "name": "fetch_azure_rest_api_docs",
  "server_label": "github"
}

A távoli MCP-hívás folytatásához válaszolnia kell a jóváhagyási kérelemre egy új válaszobjektum létrehozásával, amely egy mcp_approval_response elemet tartalmaz. Ez az objektum megerősíti azt a szándékot, hogy lehetővé tegye a modell számára a megadott adatok távoli MCP-kiszolgálóra küldését.

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
  "model": "gpt-4.1",
  "tools": [
    {
      "type": "mcp",
      "server_label": "github",
      "server_url": "https://contoso.com/Azure/azure-rest-api-specs",
      "require_approval": "never"
    }
  ],
  "previous_response_id": "resp_682f750c5f9c8198aee5b480980b5cf60351aee697a7cd77",
  "input": [{
    "type": "mcp_approval_response",
    "approve": true,
    "approval_request_id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828"
  }]
}'
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model="gpt-4.1", # replace with your model deployment name 
    tools=[
        {
            "type": "mcp",
            "server_label": "github",
            "server_url": "https://contoso.com/Azure/azure-rest-api-specs",
            "require_approval": "never"
        },
    ],
    previous_response_id="resp_682f750c5f9c8198aee5b480980b5cf60351aee697a7cd77",
    input=[{
        "type": "mcp_approval_response",
        "approve": True,
        "approval_request_id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828"
    }],
)

Authentication

Important

  • A Responses API-beli MCP-ügyfélhez TLS 1.2-es vagy újabb verzióra van szükség.
  • A kölcsönös TLS (mTLS) jelenleg nem támogatott.
  • Az Azure-szolgáltatáscímkék jelenleg nem támogatottak az MCP-ügyfélforgalom esetében.

A GitHub MCP-kiszolgálótól eltérően a legtöbb távoli MCP-kiszolgálóhoz hitelesítés szükséges. A Válaszok API MCP-eszköze támogatja az egyéni fejléceket, így biztonságosan csatlakozhat ezekhez a kiszolgálókhoz az általuk igényelt hitelesítési sémával.

Közvetlenül a kérésben megadhatja az olyan fejléceket, mint az API-kulcsok, az OAuth hozzáférési jogkivonatok vagy más hitelesítő adatok. A leggyakrabban használt élőfej a Authorization fejléc.

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
        "model": "gpt-4.1",
        "input": "What is this repo in 100 words?"
        "tools": [
            {
                "type": "mcp",
                "server_label": "github",
                "server_url": "https://contoso.com/Azure/azure-rest-api-specs",
                "headers": {
                    "Authorization": "Bearer $YOUR_API_KEY"
            }
        ]
    }'
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model="gpt-4.1",
    input="What is this repo in 100 words?",
    tools=[
        {
            "type": "mcp",
            "server_label": "github",
            "server_url": "https://gitmcp.io/Azure/azure-rest-api-specs",
            "headers": {
                "Authorization": "Bearer $YOUR_API_KEY"
        }
    ]
)

print(response.output_text)

Háttérfeladatok

A háttér mód lehetővé teszi a hosszú ideig futó feladatok aszinkron futtatását olyan modellek használatával, mint az o3 és az o1-pro. Ez különösen hasznos olyan összetett érvelési feladatokhoz, amelyek több percet is igénybe vehetnek, például olyan ügynökök által kezelt feladatok esetében, mint a Codex vagy a Deep Research.

A háttér mód engedélyezésével elkerülheti az időtúllépéseket, és fenntarthatja a megbízhatóságot a kiterjesztett műveletek során. Amikor egy kérést elküld "background": true, a feladat aszinkron módon lesz feldolgozva, és az állapota időről időre lekérdezhető.

Háttérfeladat indításához állítsa a háttérparamétert igaz értékre a kérésben:

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
    "model": "o3",
    "input": "Write me a very long story",
    "background": true
  }'
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model = "o3",
    input = "Write me a very long story",
    background = True
)

print(response.status)

GET A végpont használatával ellenőrizze a háttérválasz állapotát. Folytassa a lekérdezést, amíg az állapot várólistára kerül vagy in_progress. Ha a válasz eléri a végleges (terminál) állapotot, az elérhető lesz a lekéréshez.

curl GET https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"
from time import sleep
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.create(
    model = "o3",
    input = "Write me a very long story",
    background = True
)

while response.status in {"queued", "in_progress"}:
    print(f"Current status: {response.status}")
    sleep(2)
    response = client.responses.retrieve(response.id)

print(f"Final status: {response.status}\nOutput:\n{response.output_text}")

A cancel végpont használatával megszakíthat egy folyamatban lévő háttérfeladatot. A megszakítás idempotens – a későbbi hívások a végső válaszobjektumot adják vissza.

curl -X POST https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890/cancel \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"
import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

response = client.responses.cancel("resp_1234567890")

print(response.status)

Háttérben történő válasz közvetítése

Háttérválasz streameléséhez állítsa mind a background, mind a stream értékét igazra. Ez akkor hasznos, ha később szeretné folytatni a streamelést megszakadt kapcsolat esetén. Az egyes események sequence_number használatával követheti nyomon a pozícióját.

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
    "model": "o3",
    "input": "Write me a very long story",
    "background": true,
    "stream": true
  }'

import os
from openai import OpenAI

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
  api_key=os.getenv("AZURE_OPENAI_API_KEY")  
)

# Fire off an async response but also start streaming immediately
stream = client.responses.create(
    model="o3",
    input="Write me a very long story",
    background=True,
    stream=True,
)

cursor = None
for event in stream:
    print(event)
    cursor = event["sequence_number"]

Note

A háttérválaszok késése jelenleg nagyobb, mint a szinkron válaszoké. A hiányosságok csökkentése érdekében fejlesztéseket végeznek.

Limitations

  • A háttér mód megköveteli store=true. Az állapot nélküli kérelmek nem támogatottak.
  • A streamelést csak akkor folytathatja, ha az eredeti kérést tartalmazza stream=true.
  • Szinkron válasz megszakításához állítsa le közvetlenül a kapcsolatot.

Streamelés folytatása egy adott pontról

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890?stream=true&starting_after=42 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"

Titkosított érvelési elemek

Ha állapot nélküli módban használja a Válaszok API-t – akár hamis értékre állítja store be, akár a szervezet nulla adatmegőrzési módban van regisztrálva – akkor is meg kell őriznie az érvelési környezetet a beszélgetések során. Ehhez titkosított érvelési elemeket is belefoglalhat az API-kérésekbe.

Ha meg szeretné őrizni az érvelési elemeket a különböző fordulókban, adja hozzá reasoning.encrypted_content a include paraméterhez a kérésben. Ez biztosítja, hogy a válasz tartalmazza az érvelési nyomkövetés titkosított verzióját, amely a jövőbeni kérések során továbbítható.

curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
  -d '{
    "model": "o4-mini",
    "reasoning": {"effort": "medium"},
    "input": "What is the weather like today?",
    "tools": [<YOUR_FUNCTION GOES HERE>],
    "include": ["reasoning.encrypted_content"]
  }'

Képgenerálás (előzetes verzió)

A Responses API lehetővé teszi a képek létrehozását beszélgetések és többlépéses munkafolyamatok részeként. Támogatja a környezeten belüli képbemeneteket és -kimeneteket, és beépített eszközöket tartalmaz a képek létrehozásához és szerkesztéséhez.

Az önálló Image API-hoz képest a Responses API számos előnyt kínál:

  • Streamelés: Részleges képkimenetek megjelenítése a generálás során az észlelt késleltetés javítása érdekében.
  • Rugalmas bemenetek: Fogadja el a képfájl azonosítóit bemenetként, a nyers kép bájtjai mellett.

Note

A Responses API képgeneráló eszközét csak a gpt-image-1-series modellek támogatják. Ezt a modellt azonban meghívhatja a támogatott modellek - gpt-4o, , gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o3gpt-5 és gpt-5.1 sorozatmodellek - listájából.

A Responses API képgenerálási eszköze jelenleg nem támogatja a streamelési módot. Streamelési mód használatához és részleges képek létrehozásához hívja meg a képgenerálási API-t közvetlenül a Responses API-n kívül.

Ha beszélgetési képi élményeket szeretne létrehozni a GPT Image használatával, használja a Responses API-t.

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",  
  api_key=token_provider,
  default_headers={"x-ms-oai-image-generation-deployment":"gpt-image-1", "api_version":"preview"}
)

response = client.responses.create(
    model="o3",
    input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
    tools=[{"type": "image_generation"}],
)

# Save the image to a file
image_data = [
    output.result
    for output in response.output
    if output.type == "image_generation_call"
]
    
if image_data:
    image_base64 = image_data[0]
    with open("otter.png", "wb") as f:
        f.write(base64.b64decode(image_base64))

Érvelési modellek

Az érvelési modellek válaszok API-val való használatára vonatkozó példákért tekintse meg az érvelési modellek útmutatóját.

Számítógép-használat

A számítógép-használat a Playwrighttal átkerült a dedikált számítógép-használati útmutatóhoz