Как подключить Groq к Android-приложению на Kotlin
23 сентября 2026 · гайд разработчика · 7 минут чтения
Groq — самый быстрый инференс для Whisper и Qwen3 — интегрируется в Android-приложение за вечер. Вот проверенный маршрут из Амалии: зависимости, запросы, грабли.
Зависимости
Достаточно OkHttp — никакого SDK-ад-дона: implementation("com.squareup.okhttp3:okhttp:4.12.0"). Coroutines для асинхронности — они уже у тебя.
STT: multipart-запрос к Whisper
Эндпоинт — /openai/v1/audio/transcriptions, модель whisper-large-v3-turbo. Ключевые грабли: сырое PCM-аудио API не принимает (400) — пакуй в WAV; частота — 16/44,1 кГц, 16 бит. Один POST на фразу — без WebSocket-страхов: почему так надёжнее и быстрее.
LLM: chat-запрос с JSON-режимом
Эндпоинт — /openai/v1/chat/completions, модель — Qwen3-класс. Обязательно:
response_format: {"type": "json_object"}— строгий JSON на выходе (зачем он для tool calling);- системный промпт — характер ассистента, он же правила JSON-схемы;
- парсинг ответа — kotlinx.serialization с fallback-логикой на сломанный JSON.
Обработка ошибок: то, что отличает прототип от продукта
- 429 — лимит: у бесплатного тарифа окна ~43 с между пачками (живые цифры лимитов) — очередь с экспоненциальной задержкой;
- 5xx/сеть — фраза не теряется: буфер повторной отправки при возврате связи;
- Таймауты — жёсткий потолок на запрос: пользователь не будет ждать вечность даже ради идеального ответа;
- Ключи — только из local.properties или настроек приложения, никогда в git: привязка ключей без аккаунтов.
Референсная реализация
Полный рабочий код — в репозитории Амалии: GroqSttClient.kt (multipart + человеческие тексты ошибок) и GroqLLM.kt (JSON-режим + tool calling) — github.com/kurumi-mProject/amalia, лицензия MIT: бери и адаптируй.
Проверить скорость того же API в готовом приложении: скачать Амалию и сравнить с эталоном 0,87 с.