Объект GrokResponse
возвращается методом create
и содержит полную информацию о ответе от API Grok. Этот объект предоставляет как сам ответ модели (текст, изображения, вложения), так и метаданные, связанные с процессом генерации, включая состояние ответа, идентификаторы и дополнительные параметры.
Метод create
возвращает объект GrokResponse
, который служит основным контейнером для всех данных, полученных от API Grok в ответ на запрос пользователя. Он объединяет текст ответа, сгенерированные изображения, вложения и информацию о состоянии обработки запроса.
Объект GrokResponse
включает следующие поля:
Поле | Тип | Описание |
---|---|---|
modelResponse |
ModelResponse |
Вложенный объект с основным ответом модели (текст, изображения, вложения). |
isThinking |
bool |
Указывает, продолжает ли модель обработку ответа (True — в процессе). |
isSoftStop |
bool |
Указывает, был ли ответ остановлен по критерию (например, длина). |
responseId |
str |
Уникальный идентификатор ответа. |
newTitle |
Optional[str] |
Новый заголовок, если он был сгенерирован или обновлён (может быть None ). |
error |
Optional[str] |
Сообщение об ошибке. None - если ошибки не произошло. |
error_code |
Optional[Union[int, str]] |
Код ошибки. None - если ошибки не произошло. Unknown - в случае ошибки без кода. |
-
modelResponse
Тип:ModelResponse
Основной вложенный объект, содержащий ответ модели. Включает текст (message
), сгенерированные изображения (generatedImages
), вложения и дополнительные метаданные. Для доступа к тексту используйтеmodelResponse.message
. -
isThinking
Тип:bool
Показывает, находится ли модель в процессе генерации ответа. ЕслиFalse
, ответ полностью готов. -
isSoftStop
Тип:bool
Указывает, был ли процесс генерации прерван по критерию, например, из-за достижения максимальной длины текста. -
responseId
Тип:str
Уникальный идентификатор ответа, который можно использовать для отслеживания или связи с запросом. -
newTitle
Тип:Optional[str]
Опциональный заголовок, который может быть сгенерирован или обновлён в процессе обработки. Если заголовок не изменялся, значение равноNone
.
from grok3api.client import GrokClient
def main():
cookies = "YOUR_COOKIES_FROM_BROWSER"
# Создаём клиент
client = GrokClient(cookies=cookies)
# Отправляем запрос
response = client.ask(message="Привет, Grok!")
# Выводим текст ответа
print(response.modelResponse.message) # "Здравствуйте! Чем могу помочь?"
# Проверяем, завершён ли ответ
print(response.isThinking) # False (ответ готов)
# Выводим идентификатор ответа
print(response.responseId) # "abc123XYZ"
# Проверяем новый заголовок
print(response.newTitle) # None или новый заголовок
if __name__ == '__main__':
main()
-
ModelResponse
Вложенный объект внутриGrokResponse
, содержащий текст ответа, вложения (например, изображения или файлы) и метаданные. Подробности описаны ниже. -
GeneratedImage
Объект для работы со сгенерированными изображениями, доступный черезmodelResponse.generatedImages
. Используется для загрузки и сохранения изображений.
-
GrokResponse
как контейнер
Этот объект объединяет всю информацию об ответе API и предоставляет удобный доступ к данным через свои поля. -
Доступ к тексту ответа
Используйтеresponse.modelResponse.message
, чтобы получить текст ответа. -
Работа с изображениями
Если в ответе есть изображения, они доступны черезresponse.modelResponse.generatedImages
. Каждое изображение — объектGeneratedImage
с методами для загрузки и сохранения.
ModelResponse
— ключевая часть GrokResponse
, содержащая детализированный ответ модели. Вот обновлённая структура его полей:
Поле | Тип | Описание |
---|---|---|
responseId |
str |
Уникальный идентификатор ответа. |
message |
str |
Текст ответа модели. |
sender |
str |
Отправитель сообщения (обычно "ASSISTANT"). |
createTime |
str |
Время создания ответа в формате ISO. |
parentResponseId |
str |
ID сообщения, на которое отвечает данный ответ. |
manual |
bool |
Указывает, создан ли ответ вручную (False — сгенерирован моделью). |
partial |
bool |
Указывает, является ли ответ неполным (True — ещё генерируется). |
shared |
bool |
Указывает, разделён ли ответ с другими (True — да, False — приватный). |
query |
str |
Оригинальный запрос пользователя. |
queryType |
str |
Тип запроса (для аналитики). |
webSearchResults |
List[Any] |
Результаты веб-поиска, использованные моделью. |
xpostIds |
List[Any] |
IDs X-постов, на которые ссылалась модель. |
xposts |
List[Any] |
X-посты, на которые ссылалась модель. |
generatedImages |
List[GeneratedImage] |
Список сгенерированных изображений. |
imageAttachments |
List[Any] |
Список вложений изображений. |
fileAttachments |
List[Any] |
Список вложений файлов. |
cardAttachmentsJson |
List[Any] |
JSON-данные для вложений типа "карточка". |
fileUris |
List[Any] |
URIs прикреплённых файлов. |
fileAttachmentsMetadata |
List[Any] |
Метаданные вложений файлов. |
isControl |
bool |
Указывает, является ли ответ системным (например, сообщение об ошибке). |
steps |
List[Any] |
Шаги или процесс рассуждений модели для генерации ответа. |
mediaTypes |
List[Any] |
Типы медиа в ответе (например, "image", "file"). |
💡 Не все поля используются в каждом запросе. Например,
webSearchResults
илиsteps
заполняются только при определённых условиях.
Объект GeneratedImage
используется для работы с изображениями, доступными через modelResponse.generatedImages
:
Поле | Тип | Описание |
---|---|---|
cookies |
str |
Cookies для доступа к изображению (на случай перезапуска Chrome). |
url |
str |
Неполный URL изображения (anon-users/...-generated_image.jpg ). |
_base_url |
str |
Базовый URL (по умолчанию "https://assets.grok.com"). |
-
download() -> Optional[BytesIO]
Загружает изображение и возвращает его как объектBytesIO
. -
save_to(path: str) -> bool
Сохраняет изображение в файл по указанному пути.
from grok3api.client import GrokClient
def main():
cookies = "YOUR_COOKIES_FROM_BROWSER"
# Создаём клиент
client = GrokClient(cookies=cookies)
# Отправляем запрос для создания изображения
response = client.ask(message="Создай изображение корабля")
# Проверяем, есть ли сгенерированные изображения, и сохраняем первое
if response.modelResponse.generatedImages:
image = response.modelResponse.generatedImages[0]
image.save_to("ship.jpg") # Сохраняет изображение как ship.jpg
print("Изображение корабля сохранено как ship.jpg")
else:
print("Изображения не были сгенерированы.")
if __name__ == '__main__':
main()
- Получение текста: Используйте
response.modelResponse.message
для быстрого доступа к тексту. - Проверка статуса: Поле
isThinking
показывает, завершён ли ответ (скоро будет добавлена возможность получения ответа по частям). - Работа с изображениями: Используйте методы
download()
иsave_to()
для загрузки и сохранения картинок. - Эксперименты: Пробуйте разные параметры в методе
create
, чтобы раскрыть дополнительные возможности.