Навайбкодил приложение по вечерам! 50К строк за 4 месяца

Навайбкодил приложение по вечерам! 50К строк за 4 месяца


Навайбкодил приложение по вечерам! 50К строк за 4 месяца


00:00 Введение


• Автор создал приложение для Mac за четыре месяца.

• Приложение называется «Саммит Но» и доступно в App Store.

• Для разработки потребовались знания в области компьютерных наук.


00:44 Проблема менеджера


• Приложение основано на проблеме менеджера, который проводит много времени на звонках.

• Важно запоминать и отслеживать важные моменты разговоров.

• Ручная запись заметок не всегда удобна во время напряжённых разговоров.


02:20 Эксперименты с ИИ


• Автор экспериментировал с системами, которые записывают и анализируют разговоры.

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

• Решение: создание локального приложения для записи и обработки звука.


04:04 Начало разработки


• Автор начал с выбора проблемы, в которой мало разбирается.

• Разработка велась по вечерам после работы, что ограничивало время.

• Первый месяц ушёл на обвязку и ядро приложения.


06:04 Проблемы с записью звука


• Стандартная функция macOS для записи звука и видео с экрана не подходила.

• Необходимо было записывать только звук, а не звук и видео.

• После нахождения примера готового приложения проблема была решена.


07:48 Проблемы с транскрибацией


• Звук с наушников и экрана записывался в разных форматах, что мешало транскрибации.

• Использовалась библиотека Sper для перевода звука в текст.

• Возникали проблемы с памятью, которые требовали дополнительного времени для решения.


09:21 Использование локальной ИИ-модели


• После решения проблем с памятью автор рассматривал возможность использования локальной ИИ-модели.

• Рассматривалось приложение «О-Лама» для запуска моделей и предоставления серверного API.


10:16 Проблемы с фреймворками


• Автор решил интегрировать LLM в своё приложение, чтобы избежать необходимости устанавливать дополнительные приложения.

• Использовал библиотеку Llama C++ для запуска LLM-совместимых моделей из C++.

• Возникли конфликты из-за использования общей базовой библиотеки GGML, которая не была версирована отдельно.


11:59 Переход на динамические библиотеки


• Отказался от использования фреймворков и перешёл на динамические библиотеки.

• Большинство кода написал Клод, автор добавил лишь небольшую часть.


12:35 Проблемы с загрузкой данных в LLM


• Данные нужно загружать частями, а не одним сообщением, даже если контекст большой.

• Возникла проблема с логит-токенами: их нужно писать после каждого сообщения, а не в конце батча.


14:33 Решение проблем с логит-токенами


• Нашёл пример в репозитории C++, который помог решить проблему.

• Переписал код на Swift для корректной работы с батчами.


15:30 Работа с состояниями и реактивностью


• Использовал реактивность Swift UI для обновления интерфейса.

• Разработал систему состояний для документа, включая новое состояние, состояние записи и транскрипации.


17:24 Рефакторинг и проверка кода


• Клод генерировал документы рефакторинга, которые помогали проверять код.

• Иногда Клод не выполнял работу должным образом, но после итераций проблема была решена.


18:13 Разделение состояния


• Разделил состояние на динамическое, сессионное и персистентное.

• После сборки ядра стало проще добавлять новые функции.


19:07 Добавление новой функции


• Пользователь предложил добавить поиск по транскрипту.

• Клод быстро создал решение, которое было улучшено автором.


20:03 Ограничения автора


• Автор не успевал следить за всем контекстом из-за дополнительной работы.

• Сайт был сгенерирован Клодом, но требовал доработки.


22:00 Подготовка к релизу


• Написание приложения оказалось проще, чем его упаковка и подготовка к релизу.

• Необходимо было упаковать брендинг, сайт, документацию и подготовить сообщения.


22:08 Проблемы с релизом приложения


• Приложение разрабатывалось три месяца, а подготовка к релизу заняла два месяца.

• Автор написал пост на LinkedIn, но приложение для новых пользователей не работало.

• Проблема была в сломанной схеме данных из-за первичных ключей.


23:05 Ответственность за ошибку


• Автор не протестировал приложение для новых пользователей.

• Ошибка была его собственной, а не результатом работы LLM.

• Новый релиз был проверен App Store и выпущен.


24:57 Уроки и выводы


• LLM — хороший инструмент для опытных разработчиков, но требует смены парадигмы мышления.

• За короткий срок создаётся много кода, который может быть низкого качества.

• Скорость разработки достигается за счёт срезания углов в других местах.


25:46 Ограничения LLM


• LLM подходит для веб-сервисов, но не для сложных мобильных приложений.

• Без визуальной обратной связи LLM плохо справляется с мелкими изменениями.

• Иногда автор жалел токенов на мелкие изменения.


26:46 Анонс приложения


• Автор предлагает своё приложение для менеджеров и консультантов.

• Приложение позволяет сохранять звонки на Mac с хорошим объёмом оперативной памяти.

• Первые 30 звонков бесплатны, автор просит оставлять комментарии с замечаниями и предложениями.


27:35 Заключение


• Автор предупреждает, что видео не является площадкой для рекламы конкурентных приложений.

• Благодарит зрителей и прощается.

Report Page