Разработка мобильного приложения для локальных LLM: сбор требований | AiManual
AiManual Logo Ai / Manual.
19 Янв 2026 Гайд

Локальный ИИ на телефоне: как собрать требования сообщества и не сойти с ума

Гид для разработчиков: как собрать требования сообщества для идеального мобильного приложения с локальным ИИ. Архитектура, модели, офлайн-режим.

Зачем ещё одно приложение для ИИ?

Открываешь магазин приложений, пишешь в поиске "AI" и видишь сотню иконок с нейросетями. Большинство из них - тонкие клиенты для ChatGPT. Ещё пара десятков - генераторы картинок, которые сливают твои фото на свои серверы. Настоящих локальных приложений, где модель живёт в твоём телефоне, можно пересчитать по пальцам одной руки. И все они неидеальны.

Почему? Потому что их делают разработчики в вакууме. Они угадывают, что нужно пользователю. Иногда попадают, чаще - нет.

Сегодня мы не будем угадывать. Мы пойдём другим путём - спросим у тех, кто будет этим пользоваться. Но задавать глупые вопросы вроде "Какое приложение вы хотите?" - бесполезно. Люди не знают, чего хотят, пока не увидят это. Наша задача - вытащить из них реальные боли, скрытые потребности и технические ограничения, о которых они сами не догадываются.

Это не статья о том, как написать код. Это статья о том, как не написать лишний код. О том, как избежать шести месяцев разработки приложения, которое никто не будет использовать.

Кто эти люди и чего они на самом деле хотят

Разбиваем сообщество на три лагеря. Каждый со своей психикой и ожиданиями.

Тип пользователяЧто говоритЧто имеет в видуЧего боится
Параноик-приватник"Мои данные должны оставаться на устройстве"Не хочу, чтобы OpenAI знал, что я спрашиваю про геморрой в 3 ночиФоновой отправки логов, скрытых аналитик, "улучшения опыта"
Технарь-энтузиаст"Нужна поддержка GGUF, EXL2, AWQ форматов"Хочу кастомизировать всё до последнего бита, как в llama.cpp на стероидахУпрощённого интерфейса, который скрывает настройки
Обыватель с флагманом"Просто чтобы работало"Купил телефон за 100к, хочу похвастаться ИИ без интернетаСложных настроек, необходимости что-то скачивать отдельно

Смешивать эти три группы в одном интерфейсе - рецепт катастрофы. Параноик будет недоволен, что приложение просит доступ к интернету. Технарь взвоет от отсутствия продвинутых настроек квантования. Обыватель сломает мозг на первом же экране с выбором модели.

💡
Решение? Модульный подход. Базовое приложение для обывателей. Набор "про" настроек, которые включаются одним переключателем для технарей. И полная прозрачность сетевой активности для параноиков с логом всех исходящих соединений (который, в идеале, всегда пустой).

Сбор требований: как не получить "хочу всё и сразу"

Открываешь форум, создаёшь тему "Какое приложение для локального ИИ вы хотите?" и получаешь:

  • Поддержка всех моделей от Mistral до Qwen2.5
  • Работа на телефоне пятилетней давности
  • Скорость генерации как у ChatGPT
  • Ноль потребления батареи
  • И всё это бесплатно

Пользователи не виноваты. Они не знают, что 70-миллиардная модель не влезет в память их телефона. Что скорость зависит не только от оптимизации кода, но и от законов физики. Что батарея будет садиться, потому что нейросеть - это триллионы операций с матрицами в секунду.

Наша задача - задавать правильные вопросы, которые выявят реальные приоритеты.

1Вопросы, которые стоит задать

Вместо "Какие функции вы хотите?" спросите:

  • "Какую задачу вы решаете чаще всего: быстрый ответ, анализ документа, программирование?"
  • "Готовы ли вы ждать 10 секунд за ответ, если он будет точнее?"
  • "Что важнее: размер модели (больше знаний) или скорость (меньше ожидания)?"
  • "Загружали ли вы когда-нибудь модель весом больше 4 ГБ на телефон?"
  • "Использовали ли вы другие локальные приложения и что в них бесило больше всего?"

2Технические ограничения: правда жизни

Пока пользователи мечтают, мы должны спустить их на землю. Современный флагман - это:

  • 8-12 ГБ оперативной памяти
  • Из них системе нужно 2-3 ГБ
  • На приложение остаётся 5-6 ГБ в лучшем случае
  • Модель должна влезать в эти 5-6 ГБ вместе со всем остальным

Переводим в реальность: модель на 7 миллиардов параметров в 4-битном квантовании занимает ~4 ГБ. Это наш потолок для комфортной работы. Можно впихнуть 13B, но тогда приложение будет постоянно выгружаться из памяти.

Самая частая ошибка новичков: пытаться запустить модель, которая не влезает в RAM. Система начинает свопировать, телефон превращается в грелку, батарея умирает за час. Пользователь удаляет приложение и пишет гневный отзыв.

Архитектура: что скрывать, а что выпячивать

Вот где большинство существующих приложений обламываются. Они либо показывают все технические детали (пугая обывателей), либо прячут всё (зля технарей).

Слои интерфейса

Представьте трёхслойный пирог:

СлойЧто видит пользовательЧто происходит внутри
БазовыйКнопка "Спросить", поле ввода, выбор из 3 предустановленных моделейАвтоматическая загрузка моделей, предустановленные промпты, кэширование
ПродвинутыйНастройки квантования, контекстное окно, температура, топ-pПрямой доступ к параметрам llama.cpp, выбор разных бэкендов
ЭкспертныйRaw лог генерации, график использования памяти, детализация по токенамОтладка, бенчмарки, сравнение разных моделей

Каждый следующий слой открывается отдельным переключателем. Обыватель живёт в базовом слое и счастлив. Технарь включает продвинутый и копается в настройках. Параноик включает экспертный и проверяет, не утекает ли что-то в сеть.

Модели: каталог или хаос

Ещё одна точка боли. Пользователь открывает приложение и видит список из 200 моделей с названиями вроде "dolphin-2.9.2-mistral-7b-q4_k_m.gguf". Его глаза стекленеют.

Решение? Курированный каталог с человеческими названиями:

  • "Быстрый помощник" (TinyLlama 1.1B, 500 МБ)
  • "Умный ассистент" (Mistral 7B, 4 ГБ)
  • "Эксперт-программист" (CodeLlama 7B, 4 ГБ)
  • "Многоязычный переводчик" (Qwen2.5 7B, 4 ГБ)

Под капотом - те же технические названия, но пользователь не должен их видеть. Для технарей - отдельная кнопка "Расширенный каталог" со всеми моделями и фильтрами по размеру, типу, квантованию.

💡
Самая востребованная функция, о которой все молчат: автоматическое удаление неиспользуемых моделей. Пользователь скачал пять моделей на 20 ГБ, память телефона забита, он злится на приложение. Простое правило: если модель не использовалась месяц - предложить удалить её или перенести в облако (с явным запросом разрешения).

Офлайн-режим: не просто отсутствие интернета

Когда пользователь говорит "офлайн-режим", он имеет в виду не просто работу без интернета. Он хочет:

  1. Полную предсказуемость - если приложение работает сегодня, оно должно работать завтра в самолёте
  2. Ноль неожиданных запросов к сети - никаких "проверка обновлений модели" в фоне
  3. Локальное хранение истории - чтобы диалоги не пропадали при переустановке
  4. Возможность подготовки заранее - скачать всё нужное при наличии Wi-Fi

Это технически сложнее, чем кажется. Особенно пункт про "ноль запросов к сети". Многие библиотеки аналитики устроены так, что пытаются отправить данные при любом удобном случае. Придётся их либо вырезать, либо заглушать на уровне системы.

Распространённые ошибки (чтобы вы их не повторили)

Ошибка 1: Скачивание моделей напрямую из приложения без прогресса и возобновления. Пользователь качал модель 3 ГБ на мобильном интернете, связь прервалась на 99% - всё начинается сначала. Решение: использовать resumable загрузки с проверкой контрольных сумм.

Ошибка 2: Хранение моделей в приватной папке приложения. Пользователь не может скопировать модель с компьютера или перенести на SD-карту. Решение: использовать общедоступные директории с возможностью указать свой путь.

Ошибка 3: Игнорирование тепловыделения. Приложение запускает модель, телефон греется до 50 градусов, система принудительно снижает частоту процессора, генерация замедляется в 10 раз. Решение: мониторить температуру и динамически регулировать параметры генерации.

Что спросить у сообщества прямо сейчас

Если вы читаете это и планируете своё приложение - вот готовый список вопросов для вашего опроса:

  • Какой максимальный размер модели вы готовы скачать на телефон? (2 ГБ, 4 ГБ, 8 ГБ, больше не важно)
  • Что для вас критичнее: качество ответов или скорость генерации?
  • Планируете ли вы использовать приложение в полёте/метро/где нет интернета?
  • Нужна ли вам интеграция с другими приложениями (например, быстрый ответ из любого места)?
  • Готовы ли вы платить за приложение, если оно будет делать именно то, что вам нужно?
  • Какая одна функция заставит вас удалить конкурирующее приложение и перейти к вам?

Не делайте опрос в Google Forms. Разместите его там, где сидит ваша целевая аудитория: на специализированных форумах, в Telegram-каналах про локальный ИИ, в чатах разработчиков. Дайте людям почувствовать, что их мнение действительно повлияет на продукт.

А что насчёт инструментов и расширений?

Продвинутые пользователи всё чаще спрашивают про Tool Calling - возможность ИИ взаимодействовать с другими приложениями. На телефоне это особенно актуально:

  • "Добавь встречу в календарь на завтра в 15:00"
  • "Найди в галерее фото с прошлого отпуска"
  • "Проложи маршрут до ближайшей кофейни"

Технически это адская задача на мобильных платформах. iOS и Android жёстко ограничивают межпроцессное взаимодействие. Но спросить у сообщества, какие интеграции им нужны в первую очередь, стоит уже сейчас. Возможно, окажется, что всем нужен просто доступ к заметкам и календарю, а не полноценный плагин к Google Maps.

И последнее: про monetization

Самый неудобный вопрос. Локальное приложение по определению сложно монетизировать - раз пользователь скачал модель, он уже всё получил. Но спросить нужно:

  • Что вы предпочтёте: разовую покупку, подписку или донат?
  • За что вы готовы платить: за удобный интерфейс, за предустановленные промпты, за синхронизацию между устройствами?
  • Согласны ли вы на ненавязчивую рекламу, если приложение будет бесплатным?

Ответы вас удивят. Часть сообщества готова платить за приватность. Другая часть - за удобство. Третья считает, что всё должно быть бесплатно, потому что "модели и так открытые".

Главное - спросить до того, как написать первую строчку кода. Потому что архитектура приложения с подпиской отличается от архитектуры приложения с разовой покупкой. И сильно отличается от архитектуры полностью бесплатного приложения.

Самый ценный совет в конце: начните с прототипа на самом простом стеке. Не пытайтесь сразу сделать кроссплатформенное приложение с поддержкой всех моделей. Возьмите одну модель (например, TinyLlama), сделайте простой интерфейс на React Native или Flutter, как в нашем предыдущем гайде, и дайте его тестовой группе. Первая обратная связь будет в 10 раз ценнее всех опросов вместе взятых.

Потому что пользователи не знают, чего хотят, пока не попробуют. Наша задача - дать им попробовать как можно раньше. И слушать. Внимательно слушать.