Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions src/xai_sdk/image.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import base64
import warnings
from typing import Any, Sequence, Union

import grpc
Expand Down Expand Up @@ -66,8 +67,18 @@ def prompt(self) -> str:

This is different from the prompt used in the request because prompts get rewritten by the
system.

.. deprecated::
This field is no longer populated by the server and always returns an empty string.
It will be removed in a future release.
"""
return self._image.up_sampled_prompt
warnings.warn(
"BaseImageResponse.prompt is deprecated and will be removed in a future release. "
"The field is no longer populated by the server.",
DeprecationWarning,
stacklevel=2,
)
return ""

@property
def respect_moderation(self) -> bool:
Expand Down Expand Up @@ -159,7 +170,7 @@ def _make_span_response_attributes(
image_pb2.ImageFormat.Name(request.format).removeprefix("IMG_FORMAT_").lower()
)
for index, response in enumerate(responses):
attributes[f"gen_ai.response.{index}.image.up_sampled_prompt"] = response.prompt
attributes[f"gen_ai.response.{index}.image.up_sampled_prompt"] = ""
attributes[f"gen_ai.response.{index}.image.respect_moderation"] = response.respect_moderation
if request.format == image_pb2.ImageFormat.IMG_FORMAT_URL:
if response._image.url:
Expand Down
34 changes: 17 additions & 17 deletions src/xai_sdk/proto/v5/image_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 2 additions & 4 deletions src/xai_sdk/proto/v5/image_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -109,16 +109,14 @@ class ImageResponse(_message.Message):
def __init__(self, images: _Optional[_Iterable[_Union[GeneratedImage, _Mapping]]] = ..., model: _Optional[str] = ..., usage: _Optional[_Union[_usage_pb2.SamplingUsage, _Mapping]] = ...) -> None: ...

class GeneratedImage(_message.Message):
__slots__ = ("base64", "url", "up_sampled_prompt", "respect_moderation")
__slots__ = ("base64", "url", "respect_moderation")
BASE64_FIELD_NUMBER: _ClassVar[int]
URL_FIELD_NUMBER: _ClassVar[int]
UP_SAMPLED_PROMPT_FIELD_NUMBER: _ClassVar[int]
RESPECT_MODERATION_FIELD_NUMBER: _ClassVar[int]
base64: str
url: str
up_sampled_prompt: str
respect_moderation: bool
def __init__(self, base64: _Optional[str] = ..., url: _Optional[str] = ..., up_sampled_prompt: _Optional[str] = ..., respect_moderation: bool = ...) -> None: ...
def __init__(self, base64: _Optional[str] = ..., url: _Optional[str] = ..., respect_moderation: bool = ...) -> None: ...

class ImageUrlContent(_message.Message):
__slots__ = ("image_url", "detail")
Expand Down
34 changes: 17 additions & 17 deletions src/xai_sdk/proto/v6/image_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 2 additions & 4 deletions src/xai_sdk/proto/v6/image_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,14 @@ class ImageResponse(_message.Message):
def __init__(self, images: _Optional[_Iterable[_Union[GeneratedImage, _Mapping]]] = ..., model: _Optional[str] = ..., usage: _Optional[_Union[_usage_pb2.SamplingUsage, _Mapping]] = ...) -> None: ...

class GeneratedImage(_message.Message):
__slots__ = ("base64", "url", "up_sampled_prompt", "respect_moderation")
__slots__ = ("base64", "url", "respect_moderation")
BASE64_FIELD_NUMBER: _ClassVar[int]
URL_FIELD_NUMBER: _ClassVar[int]
UP_SAMPLED_PROMPT_FIELD_NUMBER: _ClassVar[int]
RESPECT_MODERATION_FIELD_NUMBER: _ClassVar[int]
base64: str
url: str
up_sampled_prompt: str
respect_moderation: bool
def __init__(self, base64: _Optional[str] = ..., url: _Optional[str] = ..., up_sampled_prompt: _Optional[str] = ..., respect_moderation: bool = ...) -> None: ...
def __init__(self, base64: _Optional[str] = ..., url: _Optional[str] = ..., respect_moderation: bool = ...) -> None: ...

class ImageUrlContent(_message.Message):
__slots__ = ("image_url", "detail")
Expand Down
Loading