Commit 0311d6b5
Changed files (3)
examples
src
examples/demo.py
@@ -36,3 +36,18 @@ for chunk in stream:
print(chunk.choices[0].delta.content, end="")
print()
+
+# Response headers:
+print("----- custom response headers test -----")
+response = client.chat.completions.with_raw_response.create(
+ model="gpt-4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Say this is a test",
+ }
+ ],
+)
+completion = response.parse()
+print(response.request_id)
+print(completion.choices[0].message.content)
src/openai/_legacy_response.py
@@ -71,6 +71,10 @@ class LegacyAPIResponse(Generic[R]):
self._options = options
self.http_response = raw
+ @property
+ def request_id(self) -> str | None:
+ return self.http_response.headers.get("x-request-id") # type: ignore[no-any-return]
+
@overload
def parse(self, *, to: type[_T]) -> _T:
...
src/openai/_response.py
@@ -258,6 +258,10 @@ class BaseAPIResponse(Generic[R]):
class APIResponse(BaseAPIResponse[R]):
+ @property
+ def request_id(self) -> str | None:
+ return self.http_response.headers.get("x-request-id") # type: ignore[no-any-return]
+
@overload
def parse(self, *, to: type[_T]) -> _T:
...
@@ -362,6 +366,10 @@ class APIResponse(BaseAPIResponse[R]):
class AsyncAPIResponse(BaseAPIResponse[R]):
+ @property
+ def request_id(self) -> str | None:
+ return self.http_response.headers.get("x-request-id") # type: ignore[no-any-return]
+
@overload
async def parse(self, *, to: type[_T]) -> _T:
...