Aller au contenu principal
NUKOE

Создание Android приложения с Google Generative AI: пошаговое руководство

• 10 min •
Illustration d'une application Android intégrant l'IA générative de Google.

Создание Android-приложения, интегрирующего генеративный ИИ, больше не является прерогативой команд, имеющих исследовательский отдел. Google умножил инструменты, чтобы любой Android-разработчик мог добавить интеллектуальные возможности в своё приложение, не будучи экспертом в машинном обучении. Это руководство шаг за шагом проведёт вас через создание Android-приложения, использующего Google Vertex AI Agent Builder, начиная с пустого проекта и заканчивая первым взаимодействием на естественном языке.

Почему генеративный ИИ меняет правила игры для Android-разработчиков

Расцвет языковых моделей изменил то, как мы проектируем пользовательские интерфейсы. Вместо кнопок и жёстких форм пользователь теперь может общаться с приложением. Согласно статье Google Cloud, "vibe coding" — описание того, что вы хотите создать, на естественном языке — становится полноценным методом разработки (источник: Cloud Google - Vibe Coding Explained). Для Android это открывает путь к встроенным персональным помощникам, генераторам контента или инструментам анализа в реальном времени.

Официальное руководство "AI on Android" (источник: Developer Android - AI on Android) перечисляет доступные API: ML Kit, TensorFlow Lite и новые API через Google AI Edge. Но для продвинутой генеративной обработки Vertex AI Agent Builder является наиболее полным инструментом.

Практический пример: интеллектуальное приложение для управления задачами

Представим приложение "SmartTasks", которое позволяет пользователю добавлять задачи, организовывать их и получать контекстные предложения (например: "Каков мой приоритет на сегодня?"). Генеративный ИИ используется для анализа задач и предложения порядка приоритетов, подведения итогов дня или даже генерации подзадач.

Этот пример намеренно прост, чтобы сосредоточиться на интеграции. Вы сможете адаптировать его под свои нужды.

Предварительные требования

  • Android Studio (последняя стабильная версия)
  • Проект Firebase (бесплатный) для аутентификации и облачного хранения
  • Проект Google Cloud с включённой оплатой (Vertex AI — платный сервис, но с начальным кредитом)
  • Базовые знания Kotlin и Android

Шаг 1: Создание Android-проекта и добавление Firebase

Откройте Android Studio и создайте новый проект с "Empty Views Activity". Назовите его "SmartTasks".

Затем добавьте Firebase в ваш проект. Официальная документация (источник: Firebase Google - Add Firebase to your Android project) подробно описывает процедуру:

  1. Перейдите в консоль Firebase, создайте проект, если ещё не сделали этого.
  2. Добавьте Android-приложение с именем пакета вашего проекта.
  3. Скачайте файл `google-services.json` и поместите его в папку `app/` вашего проекта.
  4. Добавьте зависимости Firebase в `build.gradle` (уровень приложения):
implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-auth-ktx")
implementation("com.google.firebase:firebase-firestore-ktx")
  1. Синхронизируйте проект.

Firebase будет использоваться для аутентификации (обязательно для защиты доступа к Vertex AI) и для хранения задач.

Шаг 2: Активация Vertex AI Agent Builder

Vertex AI Agent Builder позволяет создавать диалоговых агентов на основе языковых моделей. Официальный codelab (источник: Codelabs Developers Google - Building AI Agents with Vertex AI Agent Builder) подробно описывает процесс.

  1. В консоли Google Cloud активируйте API Vertex AI.
  2. Создайте "Агента" в Vertex AI Agent Builder:
  • Дайте ему имя: "SmartTasksAgent"
  • Выберите базовую модель (например, `gemini-1.5-pro`)
  • Добавьте системные инструкции: "Ты — помощник по продуктивности. Ты помогаешь пользователю организовывать его задачи. Отвечай на русском."
  1. Запишите `agent_id` (выглядит как `projects/.../locations/.../agents/...`).
  2. Сгенерируйте ключ API (или используйте сервисный аккаунт) для вызова агента из Android-приложения.

> Совет: Для безопасности не встраивайте ключ непосредственно в приложение. Используйте Firebase Functions в качестве прокси или SDK Vertex AI для Android (в предварительной версии).

Шаг 3: Интеграция SDK Vertex AI в приложение

Google недавно выпустил Android SDK для Vertex AI (в альфа-версии). Добавить его в проект просто:

implementation("com.google.cloud:google-cloud-vertexai:0.3.0") // Проверьте версию

Если вы предпочитаете REST-подход, вы можете использовать Retrofit для прямого вызова API. Но SDK упрощает аутентификацию и стриминг.

Создайте репозиторий для централизации вызовов:

class SmartTasksRepository(private val agentId: String) {
    private val vertexAI = VertexAI.init(/ контекст /)

    suspend fun askAgent(prompt: String): String {
        val agent = vertexAI.agent(agentId)
        val response = agent.sendMessage(prompt)
        return response.text
    }
}

> Примечание: Так как SDK находится в альфа-версии, API может измениться. Обращайтесь к официальной документации для последних обновлений.

Шаг 4: Пользовательский интерфейс для чата

Создайте простой экран с RecyclerView для отображения сообщений и полем ввода. Используйте ViewModel для управления состоянием.

class ChatViewModel(private val repository: SmartTasksRepository) : ViewModel() {
    private val _messages = MutableLiveData<List<Message>>()
    val messages: LiveData<List<Message>> = _messages

    fun sendMessage(text: String) {
        viewModelScope.launch {
            _messages.value = _messages.value + Message(text, isUser = true)
            val response = repository.askAgent(text)
            _messages.value = _messages.value + Message(response, isUser = false)
        }
    }
}

Шаг 5: Связывание задач Firebase с агентом

Чтобы агент знал о задачах пользователя, необходимо предоставить ему контекст. Когда пользователь задаёт вопрос, получите задачи из Firestore и отправьте их в качестве контекста в промпт.

Пример:

val tasks = firestore.collection("users").document(userId).collection("tasks").get().await()
val context = "Вот мои текущие задачи: ${tasks.documents.joinToString { it.data }}"
val prompt = "$context

${userInput}"
val response = repository.askAgent(prompt)

Развёртывание и тестирование

Протестируйте приложение на эмуляторе или физическом устройстве. Убедитесь, что агент отвечает корректно. Например:

  • Пользователь: "Каков мой приоритет на сегодня?"
  • Агент: "Судя по твоим задачам, приоритет — закончить отчёт по проекту, так как он должен быть сдан завтра. Затем у тебя встреча в 14:00."

Оптимизация и переход в продакшн

  • Обработка ошибок: Добавьте таймауты и сообщения об ошибках, если агент не отвечает.
  • Лимиты квот: Vertex AI имеет ограничения на количество запросов в минуту. Используйте кэш на стороне клиента для частых вопросов.
  • Безопасность: Проверяйте пользовательский ввод для предотвращения инъекций промптов.
  • Затраты: Отслеживайте потребление через консоль Google Cloud и оптимизируйте количество токенов, ограничивая контекст.

Генеративный ИИ на Android ещё молод, но инструменты Google делают его доступным. Комбинируя Firebase для бэкенда и Vertex AI для интеллекта, вы можете создавать приложения, которые понимают естественный язык ваших пользователей. Это руководство дало вам основы; теперь ваша очередь представить возможности.

Для дальнейшего изучения

Эти источники позволят вам углубиться в каждый шаг.