LLM Runner
Описание приложения
В приложении приведен пример локального мобильного чата с большими языковыми моделями (LLM) на базе llama.cpp. Проект демонстрирует интерфейс в стиле DeepSeek с боковой панелью диалогов и полноценной локальной историей переписки.
Содержание
- Совместимость
- Особенности сборки
- Информация о ветках
- Установка и запуск
- Скриншоты
- Варианты использования
- Структура проекта
- Правила использования и участие в разработке
Совместимость
Для сборки проекта требуется Conan для получения и установки зависимостей. Плагин корректно работает, начиная с версии Aurora OS 5.0.0.
Особенности сборки
Сборка проекта осуществляется с использованием системы сборки CMake. Проект использует пакетный менеджер Conan для получения зависимостей, включая библиотеку llama-cpp и её зависимости.
Для x86_64 в rpm/ru.auroraos.LlmRunner.spec добавлен временный обходной путь для Conan 2.7: создаётся обёртка над ldd, которая запускает /lib64/ld-linux-x86-64.so.2 --list, чтобы conan-deploy-libraries корректно определял и копировал разделяемые библиотеки для целевого исполняемого файла. Для более новых версий Conan, например 2.9, этот обходной путь не нужен, и достаточно строки conan-deploy-libraries "$EXECUTABLE" "$CONAN_LIB_DIR" "$SHARED_LIBRARIES".
Информация о ветках
Версии приложения соответствуют соглашению об наименовании веток
Установка и запуск
Установка и запуск производятся согласно инструкции Сборка примера.
Скриншоты

Варианты использования
Приложение демонстрирует функциональность локального LLM чата:
Управление чатами
- Создание, выбор, переименование и удаление диалогов
Локальный вывод
- Запуск локального вывода LLM с генерацией токенов в реальном времени с использованием llama.cpp
История переписки
- Полное локальное хранение истории чата с метками времени
Системные промпты
- Настраиваемые системные промпты для различных сценариев использования
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора с возможностями LLM.
- Файл CMakeLists.txt описывает структуру проекта для системы сборки CMake и зависимости llama.cpp.
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл LlmRunner.qml предоставляет реализацию окна приложения.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.LlmRunner.spec используется инструментом rpmbuild.
- Каталог src содержит исходный код на C++ с интеграцией llama.cpp.
- Файл types.h содержит общие структуры данных чатов и сообщений.
- Файлы chatmanager.h и chatmanager.cpp реализуют операции управления чатами (создание/выбор/переименование/удаление) и активным чатом.
- Файлы storagemanager.h и storagemanager.cpp отвечают за загрузку и сохранение истории чатов и системного промпта в локальное хранилище.
- Файлы modelmanager.h и modelmanager.cpp выполняют поиск пути к модели и инициализацию объектов llama.cpp (model/context/sampler).
- Файлы promptbuilder.h и promptbuilder.cpp формируют промпт из истории чата через шаблоны с fallback-логикой.
- Файлы tokenmanager.h и tokenmanager.cpp управляют подсчётом токенов, лимитами контекста и сжатием контекста.
- Файлы generationengine.h и generationengine.cpp выполняют фоновую генерацию токенов и потоковую передачу результата в UI через callback/сигналы.
- Файлы llamacontroller.h и llamacontroller.cpp предоставляют основной API для QML и координируют работу менеджеров.
- Файл main.cpp является точкой входа в приложение и регистрирует
LlamaControllerв контексте QML.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Каталог models содержит встроенные GGUF-модели, включая
Falcon-H1-Tiny-90M-Instruct.Q8_0.gguf; пользовательский путь к модели также можно задать черезLLAMA_MODEL_PATH. - Файл ru.auroraos.LlmRunner.desktop определяет отображение и параметры запуска приложения.
Правила использования и участие в разработке
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Для участия в разработке проекта, пожалуйста, прочитайте соглашение участника. Если вы планируете предоставить свой собственный исходный код для включения в проект, вам необходимо принять условия CLA.
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектах.