user12252877

user12252877

На Пикабу
99 рейтинг 0 подписчиков 0 подписок 1 пост 0 в горячем
0

Как курьер умный список покупек в Docker писал⁠⁠

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

Тута здеся непонятные слова, можно не подглядывать даже.

Технологический стек проекта «Список покупок»:

  • Backend: Go 1.23, gorilla/mux

  • База данных: MySQL 8, SQL

  • Frontend: HTML5, CSS3, JavaScript

  • Инфраструктура: Docker, Docker Compose, Ubuntu Server 24.04 LTS, VMware

  • Локальный ИИ: Ollama, Qwen 3 4B

  • Распознавание речи: Whisper / faster-whisper

  • Взаимодействие компонентов: HTTP, JSON, REST-подобный API

  • Голосовой ввод в браузере: MediaRecorder, WebM/Opus

  • Администрирование и эксплуатация: Linux, systemd timers, автоматическое резервное копирование MySQL

Естественно я с помощью chatgpt писал, но это была боль, про которую я хотел просто рассказать и поделиться впечатлением и тем как добавлял всякие фишечки, как оно чуть ли не из хелловорлда стало тем, что как по мне не стыдно даже показать.

Для начала, коротко вводная. Последние уже пару лет курьером работаю, то в самокате, то в яндексе, даже пост писал про это, но забыл пароль от аккаунта, и даже почту через которую входил. Так что пост будет от "Пикабушника 20 секунд". Если что погромирование я в школе только изучал - там паскаль был, всякие устройства ввода-вывода, потом тетрис на паскале, попытки в какую-то симуляцию гравитации. Один раз еще были попытки подружиться adnroid studio - но не срослось. С тех пор я максимум там эникей - чуть лучше мастера по обьявлению.

Начну вообще сильно сначала, как я до такого докатился от курьерства. Так случилось, что наткнулся сначала на пост, что как обновление компа можно занедорого взять какую-нибудь китайскую материнку с xeon на 28 ядер и 32гб ddr4. Подумал, присмотрел на маркетплейсе, получил, собрал вместо своей сборки на селероне, воткнул туда свою lowprofile geforce 750 4gb, да NVME. Как-то на этой сборке даже KCD2 прошел. Но сидел, и не понимал, а на кой мне эти 28 не самых быстрых ядер? Посмотрел игрульки которым бы это пригодилось - да не особо, кроме stellaris (нравится как времяпровождение вечером). Подумал еще - ну можно виртуалки поднять типа win serv, попробовать себя в доменах, да тоже без задач не прёт - непонятно что и зачем делаешь. Спросил у chatgpt, а он мне говорит - чувак, ты девопс будущий, сиди докер изучай. Я на тот момент о Docker знал что это такой синий кит для айтишников, а у девопсов положено фурсьюты носить. И что там можно на уаленке работать и деньги даже за это получать.

Штош, началось обучение. Накатил Убунту, под руководством уже устаревшего ChatGpt 3.5 вроде бы, началось - поставить докер, всё окружение к нему, какой-то go, всякое остальное, чтобы я свой первый Hello World увидел в окошке браузера на 127.0.0.1. Далее был затуп. А что можно сделать, что-то реальное, что бы я мог сам использовать. Пока думал - пытался через chatgp попробовать сделать в браузере древнюю новосибирскую забаву gopnik.exe (из промпта в начале был только readme и копипсата "игрового" процесса). Ну увидел, что через жопу, но оно работает так.

Вспомнил, что у родителей часто было такое, что регулярно им надо было согласовывать что надо в супермаркете домой купить. Каждый раз звонки - это надо? А хлеб надо? А что-то еще кончилось? Каждый раз уточнения и всё время по кругу. Решил - сделать какой-нибудь список покупок онлайн. Но так, чтобы тапов по экрану было минимум. Чтобы то что постоянно берут можно было в пару тапов отметить, что-то из редкого - вписать на раз. А в магазине это сразу увидеть и тоже отметитить в один тап, что куплено. Ну и началось.

Я скриншотов не делал особо, не думал что пост буду писать

Я скриншотов не делал особо, не думал что пост буду писать

А началась жопа. Из html у меня были только совсем основы, когда еще в школьные годы пытались свои странички рисовать в web 1.0. Накидал полукилометровый промпт в чатгпт, что я хочу, как оно должно работать, всё остальное - и получил результат - он мне сразу скинул почти готовое решение в несколько файлов. Я подкинул их - вроде даже что-то работает, кнопочки жмутся, количество увеличивается.

Это оно в начале так выглядело

Это оно в начале так выглядело

Но оно же не могло заработать с первого раза. Я первый раз вообще писал в окошко ИИ что я хочу, он ловко отвечал, что нужно поменять какую-то функцию, или перепиши там в css чтото. А я вот эти ваши питоны от go не отличаю, а тут сразу в разных места и sql и go и js и css и html и json и всё это непонятное. Но хуже того, я кидаю в чат все файлы разом (они тогда еще влезали в окно контекста, но только единожды) и этот ваш ИИ начинает мне переписывать их. Вот ваши файлы с функцией онлайн обновления списков - если добавили на одной странице, где заказ делать, хлеб, то на странице с которой в магазин идти - там тоже будет хлеб, причем сразу. Но только что-то докер не собирался. Я кидаю ошибку в чат - а chatgpt мне - да, точно, как филигранно написан у вас код, но вот только версии go друг с другом несовместимы. Просто исправьте на более новую, вот команда в консольку.

Я меняю, компилтся и на следующей итерации, он опять пишет на другой версии go. Ну ладно. Через эти попытки, постоянные уточнения что ему нужно делать и на какой версии приходим так скажем к версии, которая хотя бы работает

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

Админка стала не нужна - вся стала жестами, тапами, свайпами

Админка стала не нужна - вся стала жестами, тапами, свайпами

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

Ну и когда оно примерно так начало работать - я такой думаю - а может я в домовой чат скину, чтобы там соседи попользовались, может кто спасибо скажет. Но для этого надо хотя бы чтобы разные пользователи были. И это была фатальная ошибка что будет просто. Естественно, для этого надо было сначала переписывать как у нас сама база товаров работает, потому что пользователями там и не пахло. А значит что это алкоgpt мне похерил вообще все на первой же попытке. Я пару дней пытался чтобы у меня обратно что-то работало.

Вот с этой плюшкой, чтобы в один жест можно было купить не все товары сразу, а часть я провозился часов 5-6, чтобы оно на телефоне работало.

Вот с этой плюшкой, чтобы в один жест можно было купить не все товары сразу, а часть я провозился часов 5-6, чтобы оно на телефоне работало.

Яже погромист - я в дефолтном терминале код делал. Я VS Code на прошлой неделе поставил, но про это в следующем посте. Я нихера не понимал вообще что сломалось и где и как смотреть и как чинить. Было обидно, и я почти забросил это на какое то время. Но потом увидел новость про версию chatgpt поновее, да откопал в архивах убунты примерно последнее что у меня не работало и решил продолжить прогресс, ведь планов было - громадье. Ну и за примерно неделю вывел несколько в более удобный вид уже считай сервис.

Кстати, одна из штук, которая мне больше всего зашла как задумка - это реально голосовой ввод просеяный через LLM - он всё что угодно понимал и в список переводил, я почти день только промпт нужный допиливал. А вот и тестовая фраза для промпта, чтобы он учел всякое и лишнего не нёс.

Так, запиши, пожалуйста, что надо купить, а то я сейчас всё забуду. Значит, молока возьми три бутылки, хотя нет, не три, две хватит. Хлеба батон обычного и ещё один нарезной, если нарезного не будет, тогда второй обычный. Яйца десяток... нет, стоп, яйца не бери, я только что увидела, что у нас ещё две упаковки есть. Грибов возьми немного, ну килограмм, наверное, хотя если шампиньонов нет, можно вешенки.

Ещё надо что-нибудь к чаю, только не слишком сладкое — ну там печенье, вафли какие-нибудь, короче сам выбери. И для пиццы всё, потому что вечером будем делать пиццу. Тесто я вроде сама сделаю, мука дома есть, сыр тоже кажется есть, надо посмотреть. Колбасу возьми, помидоры возьми, а, нет, помидоры не надо, они у нас есть. Огурцы тоже не бери, я их сначала зачем-то сказала, не знаю.

А ещё на завтра хочу пельменей налепить, поэтому возьми муку, мясо трёх видов и минералку. Мясо — ну говядину, свинину и курицу, наверное. Хотя курицу можно индейкой заменить, если индейка нормальная будет, тогда курицу не бери. И сметаны возьми, нет, сметану не надо, она уже есть.

Для окрошки всё купи, квас дома есть, картошка тоже есть, яйца мы уже выяснили есть, так что их точно не надо. Колбаса, кажется, нужна. Огурцы нужны. Зелень какая-нибудь. Редиску возьми. И вообще если чего-то важного для окрошки не хватает — добавь сам, но не тащи всякую ерунду.

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

И ещё красной рыбы на бутерброды... нет, отбой, рыба осталась после праздника, её не покупай. Масла сливочного пачку возьми. Нет, погоди, масла тоже не надо, его буквально вчера купили. Лимоны два штуки. И кофе, обычный молотый, одну пачку.

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

Теперь всё реально удобно, голосовое распознавание есть, тёмная тема, PWA, офлайн режим который помнит список даже на парковке, логины по приглашениям, группы, сейчас следующий этап - это алису прикрутить чтобы вообще без тапов добавлять себе в список покупок, потом динамическую фильтрацию товаров, если списочек большой. И еще несколько приколюх, которые не будут засирать интерфейс, но кажется, что будут удобнее. Единственное, у меня QWEN сейчас на процессоре крутится, и обрабатывает голосовой список несколько секунд, так что если кто хочет попробовать - не ругайте голосовой ввод, я и так постарался, чтобы он не сразу всё отадавал, а по мере формирования списка.

Это мне qwen чайный пирог предлагает к чаю. Нерешаемо на данный момент - qwen поумнее будет отвечать минут по 5.

Это мне qwen чайный пирог предлагает к чаю. Нерешаемо на данный момент - qwen поумнее будет отвечать минут по 5.

И да, если кто-то хочет попробовать, у меня там сейчас регистрация по приглашениям, чтобы мой процессор дома не охренел LLM крутить. Напишите, я кину ссылку в личку и код приглашения. Я бы очень рад был любым отзывам.

А то что оно в темном режиме на пикабу похоже - это я случайно увидел, уже когда темную тему доделывал вчера. В следующем посте расскажу уже про то как всякие плюшки для удобства придумывал.

Показать полностью 5
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества