😀 Разработка логики бэкэнда бота и работа над промптами
Под бэкэндом я понимаю
Что делает бэкэнд:
🤩 принимает файлы и тексты, файлы ресайзит;
🤩 отправляет уменьшенные файлы и тексты на предобработку по API в Gemini. Про предобработку буду писать отдельно;
🤩 для полученного результата предобработки создаётся эмбеддинг, вычисляется косинусное сходство между этим эмбеддингом и эмбеддингами из корпуса (корпус эмбеддингов — это результат предыдущего этапа);
🤩 из корпуса выбираются (retrieval) топ-10 дел с наибольшим косинусным сходством, заранее подготовленные описания дел вставляются (augmentation) в промпт на подготовку заключения;
🤩 обогащенный промпт отправляется по API в Gemini, Gemini генерирует заключение;
🤩 скрипт вставляет в заключение ссылку на кейс в базе ФАС и добавляет статичные дисклеймеры моего сочинения (если вы пробовали бот, то видели одинаковый блок в конце каждого заключения).
Бэкэнд не бэкэнд без двух промптов, содержание которых также было предметом долгого обдумывания. И продолжает им быть, ведь неотъемлемый компонент развития проекта — улучшение промпта. Именно для этого я прошу обратную связь, особенно от коллег-юристов, самую драгоценную.
😀 Продуктовая часть — сценарий бота и отладка
Это продумывание того, как бот взаимодействует с пользователем (то есть все кнопочки, окошки, их содержание, последовательность и прочие мелочи функционала), описание этого сценария в техническом задании-промпте, и много-много итераций локального тестирования (то есть сервером выступал мой ноутбук).
Этот этап был вторым самым длительным и богатым на тяжелые вздохи. Про вайб-кодинг здесь многие слышали, а слышали ли вы о
муж-дебагинге? Если с первым драфтом кода у AI Studio все очень неплохо, то с отладкой 😐 (здесь починит, там поломает, без спроса «улучшит», что-то потеряет… ух). В общем, если бы не супруг, который за пару вечеров поправил все косяки, релиз состоялся бы, но, наверное, на недели две позже и без такой радости. 😀 Переезд на сервер и релиз
Когда мы убедились, что все работает хорошо, то я очистила итоговый код от постыдных нейросетевых комментариев, сделала репозиторий на Github (уже две звезды, ура!)) и организовала пространство на render.com. Тоже не с первого раза, а где-то с третьего: одна из нейросетей мне наврала, что для Telegram-бота нужно создавать Web Service, хотя вообще-то нужен Background Worker, а также я была озадачена сокрытием базы знаний и корпуса эмбеддингов в приватном репозитории.
Но все решилось, запустилось, я написала коллегами и в чат ilovedocs и-и-и
———вы находитесь здесь———
Каждый этот этап можно расписать на три поста, что меня поражает, ведь проделанная работа кажется довольно простой, а продукт — крошка-малышка. Ну поражает и поражает, написать все равно очень хочется, поэтому не переключайтесь! 😀