Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Svars-API:et är ett nytt tillståndskänsligt API från Azure OpenAI. Den samlar de bästa funktionerna från API:et för chattavslut och assistenter i en enhetlig upplevelse. Svars-API:et lägger också till stöd för den nya computer-use-preview modellen som driver funktionen Datoranvändning .
API för svar
API-stöd
Regional tillgänglighet
Svars-API:et är för närvarande tillgängligt i följande regioner:
- australiaeast
- Brasilien Södra
- Kanadacentrala
- Kanada Öst
- eastus
- eastus2
- francecentral
- Tyskland Västra Centrala
- Norra Italien
- japaneast
- koreacentral
- northcentralus
- norwayeast
- polandcentral
- Sydafrika Nord
- southcentralus
- southeastasia
- southindia
- spaincentral
- swedencentral
- switzerlandnorth
- uaenorth
- uksouth
- westus
- westus3
Modellstöd
- 
              gpt-5-pro(Version:2025-10-06)
- 
              gpt-5-codex(Version:2025-09-11)
- 
              gpt-5(Version:2025-08-07)
- 
              gpt-5-mini(Version:2025-08-07)
- 
              gpt-5-nano(Version:2025-08-07)
- 
              gpt-5-chat(Version:2025-08-07)
- 
              gpt-5-chat(Version:2025-10-03)
- 
              gpt-5-codex(Version:2025-09-15)
- 
              gpt-4o(Versioner:2024-11-20,2024-08-06,2024-05-13)
- 
              gpt-4o-mini(Version:2024-07-18)
- computer-use-preview
- 
              gpt-4.1(Version:2025-04-14)
- 
              gpt-4.1-nano(Version:2025-04-14)
- 
              gpt-4.1-mini(Version:2025-04-14)
- 
              gpt-image-1(Version:2025-04-15)
- 
              gpt-image-1-mini(Version:2025-10-06)
- 
              o1(Version:2024-12-17)
- 
              o3-mini(Version:2025-01-31)
- 
              o3(Version:2025-04-16)
- 
              o4-mini(Version:2025-04-16)
Alla modeller är inte tillgängliga i de regioner som stöds av svars-API:et. Kontrollera modellsidan för tillgänglighet för modellregion.
Note
Stöds inte för närvarande:
- Webbsökningsverktyget
- Bildgenerering med redigering och direktuppspelning i flera svängar – kommer snart
- Bilder kan inte laddas upp som en fil och refereras sedan som indata. Kommer snart.
Det finns ett känt problem med följande:
- PDF som indatafil stöds nu, men det finns för närvarande inte stöd för att user_dataange filuppladdningssyfte.
- Prestandaproblem när bakgrundsläget används med strömning. Problemet förväntas snart lösas.
Referensdokumentation
Komma igång med svars-API:et
För att komma åt API-kommandona för svar måste du uppgradera din version av OpenAI-biblioteket.
pip install --upgrade openai
Generera ett textsvar
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
Använd API-nycklar med försiktighet. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt. Om du använder en API-nyckel lagrar du den på ett säkert sätt i Azure Key Vault. Mer information om hur du använder API-nycklar på ett säkert sätt i dina appar finns i API-nycklar med Azure Key Vault.
Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.
Hämta ett svar
Hämta ett svar från ett tidigare anrop till svars-API:et.
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
Använd API-nycklar med försiktighet. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt. Om du använder en API-nyckel lagrar du den på ett säkert sätt i Azure Key Vault. Mer information om hur du använder API-nycklar på ett säkert sätt i dina appar finns i API-nycklar med Azure Key Vault.
Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.
Ta bort svar
Som standard bevaras svarsdata i 30 dagar. Om du vill ta bort ett svar kan du använda 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)
Att länka samman svar
Du kan länka ihop svar genom att skicka response.id från föregående svar till parametern previous_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.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)) 
Observera från utdata att även om vi aldrig delade den första indatafrågan med second_response API-anropet, ger previous_response_id modellen fullständig kontext om tidigare frågor och svar för att besvara den nya frågan.
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
}
Manuell kedjning av svar
Du kan också manuellt kedja ihop svar med hjälp av metoden nedan:
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='')
Funktionsanrop
Svars-API:et stöder funktionsanrop.
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)) 
Kodtolkare
Med verktyget Kodtolkning kan modeller skriva och köra Python-kod i en säker, sandbox-miljö. Den stöder en rad avancerade uppgifter, bland annat:
- Bearbeta filer med olika dataformat och strukturer
- Generera filer som innehåller data och visualiseringar (till exempel grafer)
- Iterativt skriva och köra kod för att lösa problem – modeller kan felsöka och försöka kod igen tills det lyckas
- Förbättra det visuella resonemanget i modeller som stöds (till exempel o3, o4-mini) genom att aktivera bildtransformationer som beskärning, zoomning och rotation
- Det här verktyget är särskilt användbart för scenarier som rör dataanalys, matematisk beräkning och kodgenerering.
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
Kodtolken har ytterligare avgifter utöver de tokenbaserade avgifterna för Azure OpenAI-användning. Om ditt svars-API anropar kodtolkaren samtidigt i två olika trådar skapas två kodtolkarsessioner. Varje session är aktiv som standard i 1 timme med en timeout på 20 minuter.
Kodtolkningsverktyget kräver en container – en fullständigt sandboxad virtuell maskin där modellen kan exekvera Python-kod. Containrar kan innehålla uppladdade filer eller filer som genererats under körningen.
Om du vill skapa en container anger du "container": { "type": "auto", "file_ids": ["file-1", "file-2"] } i verktygskonfigurationen när du skapar ett nytt svarsobjekt. Detta skapar automatiskt en ny container eller återanvänder en aktiv från en tidigare code_interpreter_call i modellens kontext. I code_interpreter_call utdata av API:n innehåller det container_id som genererades. Den här containern upphör att gälla om den inte används på 20 minuter.
Filens indata och utdata
När du kör kodtolkaren kan modellen skapa egna filer. Om du till exempel ber den att konstruera ett diagram eller skapa en CSV skapar den dessa avbildningar direkt i containern. De här filerna citeras i anteckningarna i nästa meddelande.
Alla filer i modellindata laddas upp automatiskt till containern. Du behöver inte uttryckligen ladda upp den till containern.
Filer som stöds
| Filformat | MIME type | 
|---|---|
| .c | text/x-c | 
| .cs | text/x-csharp | 
| .cpp | text/x-c++ | 
| .csv | text/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 eller "text/xml" | 
| .zip | application/zip | 
Lista indataobjekt
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"
}
Bildinmatning
Bild-URL
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-kodad bild
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)
Filinmatning
Modeller med visionsfunktioner stöder PDF-indata. PDF-filer kan anges antingen som Base64-kodade data eller som fil-ID: er. För att hjälpa modeller att tolka PDF-innehåll inkluderas både den extraherade texten och en bild av varje sida i modellens kontext. Detta är användbart när viktig information förmedlas via diagram eller icke-textinnehåll.
Note
- All extraherad text och alla bilder placeras i modellens kontext. Se till att du förstår pris- och tokenanvändningskonsekvenserna av att använda PDF-filer som indata. 
- I en enda API-begäran bör storleken på innehåll som laddas upp över flera indata (filer) ligga inom modellens kontextlängd. 
- Endast modeller som stöder både text- och bildindata kan acceptera PDF-filer som indata. 
- En - purposeav- user_datastöds för närvarande inte. Som en tillfällig lösning måste du ange syftet till- assistants.
Konvertera PDF till Base64 och analysera
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)
Ladda upp PDF och analysera
Ladda upp PDF-filen. En purpose av user_data stöds för närvarande inte. Som en lösning måste du ange syftet som assistants.
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
}
Sedan tar du värdet för id och skickar det till en modell för bearbetning under file_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.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"
                    }
                ]
            }
        ]
    }'
Använda fjärranslutna MCP-servrar
Du kan utöka funktionerna i din modell genom att ansluta den till verktyg som finns på MCP-servrar (Remote Model Context Protocol). Dessa servrar underhålls av utvecklare och organisationer och exponerar verktyg som kan nås av MCP-kompatibla klienter, till exempel svars-API:et.
Model Context Protocol (MCP) är en öppen standard som definierar hur program tillhandahåller verktyg och kontextuella data till stora språkmodeller (LLM). Det möjliggör konsekvent och skalbar integrering av externa verktyg i modellarbetsflöden.
I följande exempel visas hur du använder den fiktiva MCP-servern för att fråga efter information om Azure REST API. På så sätt kan modellen hämta och resonera över lagringsplatsens innehåll i realtid.
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)
MCP-verktyget fungerar endast i svars-API:et och är tillgängligt för alla nyare modeller (gpt-4o, gpt-4.1 och våra resonemangsmodeller). När du använder MCP-verktyget betalar du bara för token som används när du importerar verktygsdefinitioner eller gör verktygsanrop – det ingår inga ytterligare avgifter.
Approvals
Svars-API:et kräver som standard uttryckligt godkännande innan data delas med en fjärransluten MCP-server. Det här godkännandesteget hjälper till att säkerställa transparens och ger dig kontroll över vilken information som skickas externt.
Vi rekommenderar att du granskar alla data som delas med fjärranslutna MCP-servrar och om du vill logga dem i granskningssyfte.
När ett godkännande krävs returnerar modellen ett mcp_approval_request objekt i svarsutdata. Det här objektet innehåller information om den väntande begäran och gör att du kan inspektera eller ändra data innan du fortsätter.
{
  "id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828",
  "type": "mcp_approval_request",
  "arguments": {},
  "name": "fetch_azure_rest_api_docs",
  "server_label": "github"
}
Om du vill fortsätta med mcp-fjärranropet måste du svara på begäran om godkännande genom att skapa ett nytt svarsobjekt som innehåller ett mcp_approval_response objekt. Det här objektet bekräftar din avsikt att tillåta att modellen skickar angivna data till den fjärranslutna MCP-servern.
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
Till skillnad från GitHub MCP-servern kräver de flesta fjärranslutna MCP-servrar autentisering. MCP-verktyget i svars-API:et stöder anpassade huvuden, så att du kan ansluta till dessa servrar på ett säkert sätt med det autentiseringsschema som krävs.
Du kan ange rubriker som API-nycklar, OAuth-åtkomsttoken eller andra autentiseringsuppgifter direkt i din begäran. Den vanligaste rubriken är Authorization rubriken.
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)
Bakgrundsaktiviteter
Med bakgrundsläge kan du köra långvariga uppgifter asynkront med modeller som o3 och o1-pro. Detta är särskilt användbart för komplexa resonemangsuppgifter som kan ta flera minuter att slutföra, till exempel de som hanteras av agenter som Codex eller Deep Research.
Genom att aktivera bakgrundsläge kan du undvika timeouter och upprätthålla tillförlitligheten under utökade åtgärder. När en begäran skickas med "background": truebearbetas uppgiften asynkront och du kan söka efter dess status över tid.
Om du vill starta en bakgrundsaktivitet anger du bakgrundsparametern till true i din begäran:
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 Använd slutpunkten för att kontrollera statusen för ett bakgrundssvar. Fortsätt att övervaka medan statusen är i kö eller pågår. När svaret når ett slutligt tillstånd blir det tillgängligt för hämtning.
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}")
Du kan avbryta en pågående bakgrundsaktivitet med hjälp av cancel slutpunkten. Att avbryta är idempotent – efterföljande anrop returnerar det slutliga svarsobjektet.
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)
Strömma ett bakgrundssvar
Om du vill strömma ett bakgrundssvar anger du både background och stream till sant. Det här är användbart om du vill återuppta direktuppspelningen senare vid en avbruten anslutning. Använd sequence_number från varje händelse för att spåra din position.
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
Bakgrundssvar har för närvarande en högre svarstid för tid till första token än synkrona svar. Förbättringar pågår för att minska denna lucka.
Limitations
- Bakgrundsläget kräver store=true. Tillståndslösa begäranden stöds inte.
- Du kan bara återuppta direktuppspelningen om den ursprungliga begäran inkluderade stream=true.
- Avsluta anslutningen direkt om du vill avbryta ett synkront svar.
Återuppta direktuppspelning från en viss punkt
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"
Krypterade resonemangsobjekt
När du använder Respons-API:et i tillståndslöst läge – antingen genom att ställa in store till false eller när din organisation har registrerats för ingen datalagring – måste du fortfarande bevara resonemangskontexten mellan konversationer. Det gör du genom att inkludera krypterade resonemangsobjekt i dina API-begäranden.
Om du vill behålla resonemangsobjekt över svängar lägger du till reasoning.encrypted_content parametern include i din begäran. Detta säkerställer att svaret innehåller en krypterad version av resonemangsspårningen, som kan skickas vidare i framtida begäranden.
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"]
  }'
Bildgenerering (förhandsversion)
Svars-API:et möjliggör bildgenerering som en del av konversationer och arbetsflöden i flera steg. Den stöder bildindata och utdata i kontexten och innehåller inbyggda verktyg för att generera och redigera bilder.
Jämfört med det fristående bild-API:et har svars-API:et flera fördelar:
- Direktuppspelning: Visa partiella bildutdata under genereringen för att förbättra den upplevda svarstiden.
- Flexibla indata: Acceptera bildfil-ID:t som indata, förutom råa bildbyte.
Note
Avbildningsgenereringsverktyget i svars-API:et stöds endast av seriemodellerna gpt-image-1 . Du kan dock anropa den här modellen från den här listan över modeller som stöds – gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o3och gpt-5 seriemodeller.
Verktyget för generering av svars-API-avbildning stöder för närvarande inte strömningsläge. Om du vill använda strömningsläge och generera partiella bilder anropar du api:et för bildgenerering direkt utanför API:et För svar.
Använd API:et Svar om du vill skapa konversationsbildupplevelser med GPT Image.
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))
Resonemangsmodeller
Exempel på hur du använder resonemangsmodeller med svars-API:et finns i guiden för resonemangsmodeller.
Datoranvändning
Datoranvändning med Playwright har flyttats till modellguiden för dedikerad datoranvändning