LLM Runner

LLM Runner

запуск на ОС Аврора LLamacpp

RU | EN

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".

Информация о ветках

Версии приложения соответствуют соглашению об наименовании веток

Установка и запуск

Установка и запуск производятся согласно инструкции Сборка примера.

Скриншоты

Screenshots

Варианты использования

Приложение демонстрирует функциональность локального LLM чата:

Управление чатами

  • Создание, выбор, переименование и удаление диалогов

Локальный вывод

  • Запуск локального вывода LLM с генерацией токенов в реальном времени с использованием llama.cpp

История переписки

  • Полное локальное хранение истории чата с метками времени

Системные промпты

  • Настраиваемые системные промпты для различных сценариев использования

Структура проекта

Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора с возможностями LLM.

  • Файл CMakeLists.txt описывает структуру проекта для системы сборки CMake и зависимости llama.cpp.
  • Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
  • Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
    • Каталог cover содержит реализации обложек приложения.
    • Каталог icons содержит дополнительные иконки интерфейса пользователя.
    • Каталог pages содержит страницы приложения.
    • Файл LlmRunner.qml предоставляет реализацию окна приложения.
  • Каталог rpm содержит настройки сборки rpm-пакета.
  • Каталог 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.

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

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.