Библиотека для асинхронной работы с Grok через мобильный gRPC-канал: отправка сообщений, потоковый вывод ответа, парсинг protobuf-чанков и получение структурированных данных API.
- асинхронный клиент
- streaming-ответ через
new_ask_stream() - обычный запрос через
new_ask() - protobuf/gRPC framing
- типизированные Pydantic-модели
- потоковый парсинг чанков
- обработка REST/gRPC/stream ошибок
- поддержка metadata/tool responses/search results
pip install git+ssh://git@github.com/boykopovar/Grok3API.git -U- Python 3.8+
- aiohttp
- coincurve
import asyncio
from grok3api.client import GrokClient
from grok3api.types.request import ChatRequest
from grok3api.types import TokenChunk
async def main():
async with GrokClient() as client:
while True:
print("\nGrok: ", end="")
async for chunk in client.new_ask_stream(
request=ChatRequest(
message=input("\nYou: "),
temporary=False
),
chunks_white_list=(TokenChunk,)
):
print(chunk.token, end="", flush=True)
if __name__ == "__main__":
asyncio.run(main())import asyncio
from grok3api.client import GrokClient
from grok3api.types.request import ChatRequest
async def main():
async with GrokClient() as client:
response = await client.new_ask(
ChatRequest(
message="Hello",
temporary=False
)
)
print(response.text)
print(response.model_response)
if __name__ == "__main__":
asyncio.run(main())import asyncio
from grok3api.client import GrokClient
from grok3api.types.request import ChatRequest, AddResponseRequest
async def main():
async with GrokClient() as client:
first = await client.new_ask(
ChatRequest(
message="Hello",
temporary=False
)
)
second = await client.add_response(
AddResponseRequest(
conversation_id=first.conversation.conversation_id,
message="How are you?"
)
)
print(second.text)
if __name__ == "__main__":
asyncio.run(main())Все модели полностью соответствуют реальным protobuf/gRPC ответам API.
В библиотеке отсутствуют:
- упрощённые структуры
- искусственные abstraction layers
- нормализация полей
- переименование payload-данных
- скрытие оригинальных значений API
TokenChunkModelResponseChunkFinalMetadataChunkSurveyChunkConversationChunkTitleChunk
AskResponseModelResponseFinalMetadataConversationSurveyResponseStepToolUsageResultWebSearchResultXPostRagResultCollectionSearchResultItemConnectorSearchResultItemStreamError
- web search
- X/Twitter search
- RAG results
- connector search
- collection search
- memory updates
- code execution
- image generation
- video generation
- audio generation
from grok3api.types.exceptions import (
GrokApiError,
GrokRestError,
GrokGrpcError,
GrokRateLimitError,
GrokUnderHeavyUsageError,
GrokStreamError,
GrokUnavailableRegionError,
GrokTooManyRequestsError
)- protobuf request сериализуется в binary payload
- payload упаковывается в gRPC frame
- запрос отправляется в mobile gRPC endpoint
- клиент читает streaming response
- protobuf chunks декодируются в Pydantic-модели
Проект не связан с xAI и не является официальным SDK.
Это независимая реализация мобильного Grok API, полученная в результате реверс-инжиниринга.