PromptDeck v1.1.0 - open-source десктопное приложение, собранное на Tauri и React для промптинга и бенчмаркинга LLM бок о бок. Один промпт уходит сразу нескольким моделям, ответы приходят потоком в соседние колонки, и разница в поведении видна без переключения между вкладками. Локальные провайдеры Ollama, LM Studio и llama.cpp работают с первых версий, а релиз 1.1 добавил облачные: OpenRouter, Groq, DeepSeek, Together, OpenAI, xAI, Kimi, NVIDIA NIM, Ollama Cloud, Gemini и кастомные эндпоинты.
Задача, которую решает инструмент, знакома каждому, кто выбирал модель под конкретную работу. Обычный чат держит одну модель, поэтому сравнение двух или трёх вариантов превращается в ручную возню: несколько окон, копирование одного и того же промпта, замеры времени на глазок и блокнот для выводов. PromptDeck собирает этот сценарий в одном окне и вдобавок пишет историю прогонов в локальный SQLite.
Приложение не требует аккаунта и не отправляет данные наружу: телеметрии нет, а облачные вызовы не выполняются, пока пользователь явно не добавит API-ключ. Список возможностей и заявленные ограничения совпадают с анонсом релиза на r/LocalLLaMA.
Что такое PromptDeck и какую задачу он решает
Ключевая идея простая: сравнение моделей живёт в одном окне, а не в четырёх приложениях. Вы отмечаете список моделей по провайдерам, отправляете промпт и получаете синхронную картину: потоковый текст ответа, скорость генерации, время до первого токена. Сценарий «локальная модель на своей видеокарте против облачной через API» становится воспроизводимым, потому что оба запуска идут с одинаковым входом.
Приложение кроссплатформенное: Windows, macOS и Linux. Бинарники лежат в GitHub Releases, а сборка из исходников запускается командой npm run tauri dev.
Ключевые возможности версии 1.1.0
- Облачные провайдеры: OpenRouter, Groq, DeepSeek, Together, OpenAI, xAI, Kimi, NVIDIA NIM, Ollama Cloud, Gemini и кастомные эндпоинты.
- Локальные провайдеры Ollama, LM Studio и llama.cpp остаются доступными.
- Один промпт против до четырёх моделей одновременно с потоковой выдачей.
- Выбор моделей по провайдеру и смешивание локальных и облачных моделей в одном запуске.
- Сравнение TPS и TTFT на графиках, где символ ~ помечает оценочный TPS, если сервер не сообщает данные об использовании.
- Test Suites: от 1 до 10 промптов по нескольким моделям и таблица результатов с победами по каждой модели.
- Голосование за победителя и постоянный лидерборд.
- Diff-просмотр ответов.
- История в локальном SQLite, экспорт в PDF, Markdown и CSV.
- Темы Light, Dark, AMOLED и локали EN, DE, FA.
Поддерживаемые провайдеры: локальные и облачные модели в одном окне
Список интеграций делится на три группы.
| Тип | Провайдеры |
|---|---|
| Локальные | Ollama, LM Studio, llama.cpp |
| Облачные, добавлены в 1.1 | OpenRouter, Groq, DeepSeek, Together, OpenAI, xAI, Kimi, NVIDIA NIM, Ollama Cloud, Gemini |
| Другие | Кастомные эндпоинты |
Провайдеры интегрированы как источники моделей, и это не значит, что в интерфейсе доступны все модели каждого сервиса. Ключевое преимущество в другом: в одном прогоне можно поставить рядом локальную модель и облачную, чтобы увидеть разницу в скорости и в самом ответе на одинаковом промпте. Если вы разбираетесь, какую открытую модель брать за основу, пригодится разбор позиций DeepSeek, Qwen и GLM на бенчмарках и в реальных условиях запуска.
Как добавить облачный провайдер и API-ключ
Облачные вызовы включаются только после того, как вы сами вставите API-ключ. Без ключа приложение работает в локальном режиме и никуда не стучится. Это удобно для тех, кто держит на машине чувствительные промпты: локальный контур не меняется от того, что в приложении появились облачные интеграции.
С хранением ключей есть нюанс, о котором разработчик говорит прямо: сейчас ключи лежат в локальном хранилище приложения, а перенос в OS-keychain только в планах. Практический вывод: относитесь к такому же уровню доверия, как к конфигу с токеном в домашней папке. На личном ПК это привычный компромисс, на общей рабочей машине стоит подумать дважды.
Параллельный запуск и метрики: TPS, TTFT и графики
Механика такая: промпт уходит до четырём моделям одновременно, каждая отдаёт ответ потоком, и текст появляется в реальном времени. Рядом строятся графики по двум метрикам. TPS (tokens per second) показывает скорость генерации, TTFT (time to first token) показывает, как быстро модель начинает отвечать. Вместе они дают рабочую картину: одно дело модель, которая думает три секунды и потом бодро печатает, и совсем другое, когда первый токен приходит через двадцать секунд.
Отдельная деталь, которая говорит о честности инструмента: если сервер не отдаёт данные об использовании токенов, TPS помечается символом ~ как оценочный. Это значит, что цифра посчитана приблизительно, и делать на её основе далеко идущие выводы не стоит. Для облачных API такое поведение встречается, для локальных движков зависит от бэкенда.
Зачем сравнивать TPS и TTFT на практике
Три типовых сценария. Первый: выбрать, держать ли задачу на локальной модели или уводить в облако, когда TTFT локального запуска на вашем железе устраивает, а TPS нет. Второй: проверить, как провайдер держит скорость в разное время суток. Третий: сравнить квантизации одной и той же модели, где разница в скорости заметнее, чем разница в ответах.
PromptDeck даёт измерительную линейку, но не заменяет полноценную проверку качества. Метрики говорят о скорости, а не о том, насколько ответ полезен. Конкретных значений TPS и TTFT для тех или иных моделей разработчик не публикует, и подставлять сюда числа из головы не нужно: замеры зависят от железа, квантизации, версии движка и загрузки провайдера.
Test Suites: пакетное тестирование моделей и голосование за победителя
Один промпт показывает немного. Test Suites позволяют прогнать от 1 до 10 промптов по нескольким моделям и получить таблицу результатов с победами по каждой модели. Голосование за победителя и постоянный лидерборд накапливают статистику по прогонам, diff-просмотр помогает сопоставить ответы построчно, история хранится в локальном SQLite, а экспорт в PDF, Markdown или CSV закрывает вопрос отчётов и дальнейшего анализа.
Важно понимать, что оценка здесь ручная. Инструмент не выставляет баллы за качество ответа и не подменяет собой автоматический бенчмарк: победителя выбирает человек, а приложение аккуратно фиксирует выбор вместе с контекстом прогона.
Как организовать тестовый набор промптов
Начните с трёх-пяти промптов, которые покрывают ваши реальные задачи: генерация кода, суммаризация длинного текста, ответ на вопрос по фактам, свободный креатив. Промпты должны быть одинаковыми для всех моделей, иначе сравнение теряет смысл. Записывайте не только победителя, но и условия: какие модели участвовали, локальные они или облачные, какие настройки генерации стояли.
PromptDeck не навязывает методологию и не поставляет готовых наборов промптов. Это конструктор: вы сами решаете, что считать успехом. Если планируете делиться результатами с сообществом, стоит заранее посмотреть, какие требования к оформлению постов действуют в r/LocalLLaMA, чтобы цифры и условия теста читались однозначно.
Приватность и хранение данных: что остаётся на вашей машине
Все данные лежат локально в SQLite: история прогонов, голоса, результаты Test Suites. Телеметрия отсутствует, то есть приложение не отправляет разработчику статистику использования. Облачные запросы выполняются только при явном добавлении ключа, и до этого момента трафик наружу не идёт. Эти же формулировки даны в исходном описании релиза.
Слабое место одно и оно названо открыто: API-ключи хранятся в локальном хранилище, а не в системном keychain. Если устройство скомпрометировано, ключи могут оказаться доступны, как и любой файл с секретом в домашней папке. Миграция в OS-keychain заявлена в планах, но на момент версии 1.1.0 она не сделана. Называть приложение «полностью безопасным» было бы неверно, и сам автор проекта так его не описывает.
Ограничения и честные минусы PromptDeck v1.1.0
Ограничений два, и оба заявлены разработчиком.
- Облачные API-ключи лежат в локальном хранилище, перенос в OS-keychain запланирован, но ещё не выполнен.
- Учёта стоимости облачных запусков нет: приложение не считает, во сколько обошёлся прогон по платным API.
Для личного использования на своём ПК оба пункта чаще всего терпимы: ключ лежит на одной машине, а расходы по облачным вызовам видно в биллинге провайдера. Для команды или проекта с аудитом затрат картина иная. Отсутствие подсчёта стоимости означает, что бюджет придётся контролировать на стороне провайдера, а хранение ключей в локальном хранилище усложняет работу на общих машинах.
Проект открыт для issues и pull request, а для новичков поддерживается набор меток good first issue. Это сигнал, что про ограничения известно и работа идёт, но дат выхода следующих версий автор не называет, и ждать их как гарантию не стоит.
Установка и запуск: Windows, macOS, Linux
Два пути. Первый: скачать готовый бинарник из GitHub Releases под свою систему, Windows, macOS или Linux. Второй: собрать из исходников, для запуска в режиме разработки используется команда npm run tauri dev. Кто уже держит под рукой локальный стек, тому второй вариант привычнее, а кому нужно просто попробовать сравнение, хватит бинарника.
Tauri - фреймворк для десктопных приложений, где интерфейс собирается на веб-технологиях, а нативная часть отвечает за работу с системой. На практике для пользователя это означает обычное окно приложения без браузерной обвязки. Если ваша основная работа связана с лаунчерами и локальным запуском моделей, посмотрите ещё опыт Arandu v0.6.5 с запуском моделей через llama.cpp: инструменты решают разные задачи и хорошо дополняют друг друга. При обнаружении бага разумно открыть issue на GitHub: проект развивается за счёт обратной связи.
Кому стоит попробовать PromptDeck, а кому нет
Подойдёт тем, кто выбирает модель под конкретную задачу и хочет видеть ответы рядом, а не по памяти. Разработчикам и ML-инженерам пригодится сравнивать кандидатов на продакшен с одинаковым входом. Пользователям локальных LLM - сопоставлять свои модели с облачными и понимать, где заканчивается выигрыш от собственного железа. Энтузиастам - вести лидерборды и фиксировать историю экспериментов в SQLite с выгрузкой в PDF или CSV.
Не подойдёт тем, кто ищет автоматический бенчмарк с оценкой качества ответов: здесь победу выбирает человек. Проблемой окажется и отсутствие учёта стоимости, если вы гоняете через платные API большие объёмы. Не стоит начинать с приложения, если политика безопасности не допускает хранение ключей вне системного keychain.
Практический старт выглядит так. Поставьте приложение, запустите один промпт против двух моделей: локальной через Ollama и облачной, например через Groq или OpenRouter. Посмотрите на TTFT и TPS, оцените сами ответы, отметьте победителя. Когда почувствуете, что одного промпта мало, соберите набор из трёх-пяти задач по своим рабочим сценариям и прогоните его как Test Suite: так накапливается статистика, на которую не влияют чужие советы из ленты.