responses.parse() with background=True returns unparseable Response from retrieve() - missing ParsedResponse support for background mode

Offen
#2,830 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@shouryamaanjain arbeitet bereits daran.

Seit 01.3.2026.

  • #2909 von @shouryamaanjain — offen

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
api

Rechercherichtung

Beginnen Sie mit den Einstiegspunkten responses.parse() und responses.retrieve() und führen Sie die bereitgestellte AsyncOpenAI-Reproduktion mit background=True und MySchema aus. Verfolgen Sie, wie jeder Aufruf seine Response erstellt, und definieren Sie den Abschluss entweder als Beibehaltung der geparsten Ausgabe während des Abrufs oder als eindeutige Ablehnung des nicht unterstützten Workflows, mit Abdeckung für das gewählte Verhalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug
Confirm this is an issue with the Python library and not an underlying OpenAI API
  • This is an issue with the Python library
Describe the bug

When using responses.parse() with background=True and a text_format (structured output), the initial call returns a ParsedResponse wrapper. However, when polling for completion using responses.retrieve(), a plain Response object is returned instead of ParsedResponse.

This means output_parsed is not available on the retrieved response, and users must manually parse output_text using their schema's model_validate_json().

The SDK accepts background=True in parse() without warning, but doesn't provide a way to complete the workflow with proper parsing.

Expected behavior:
Either:

  • retrieve() should accept a text_format parameter to return ParsedResponse
    A new retrieve_parsed() method should exist
  • Or parse() should raise an error/warning when background=True is used
To Reproduce

from openai import AsyncOpenAI
from pydantic import BaseModel

class MySchema(BaseModel):
name: str
value: int

client = AsyncOpenAI()

Start background request with structured output

response = await client.responses.parse(
model="gpt-4.1",
input="Generate a name and value",
text_format=MySchema,
background=True
)

Poll for completion

while response.status in ("in_progress", "queued"):
await asyncio.sleep(0.5)
response = await client.responses.retrieve(response.id)

This fails - Response has no output_parsed attribute

print(response.output_parsed) # AttributeError: 'Response' object has no attribute 'output_parsed'

Workaround required:

result = MySchema.model_validate_json(response.output_text)

Code snippets

OS

macOS

Python version

Python v3.12

Library version

openai v2.15.0

Vorherrschende Sprache
Python
Sterne
32k
Forks
6.7k
Ø Merge
16 Std. 48 Min.
Gemergte PRs (30 T.)
185

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus openai/openai-python

Alle Issues in openai/openai-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.