Делай RAG
178 subscribers
5 photos
14 links
Канал, посвященный развитию бота-помощника по проверке рекламных материалов @lastminute_legal_bot

👉🏻Github проекта https://github.com/ekaterina-ya/lastminute_legal

Связаться с автором через сообщения канала или [email protected]
加入频道
10 дней прошло с релиза бота, а дел по нему уже на полноценный рабочий день – когда рассказывали про вайб-кодинг, об этом умолчали 🥺
Коротко (нет) расскажу о своих ботных приключениях за последнее время.

🤩 Недавно я жаловалась, что логи не пишутся в базу данных, поэтому немало времени ушло на то, чтобы разобраться, как она устроена и что вообще делает.
Ответ убил — в базу данных логи и не должны были записываться Но она очень важна и нужна для учета расходования ежедневного лимита и нарушений правил и блокировок. А я ее чуть было не удалила.
Также было принято решение не выносить содержимое логов в какой-то структурированный вид на сервере, а на данном этапе просто их выгружать и локальным скриптиками собирать в таблицы.

🤩 Из-за понедельничной аварии на боте и его мануальной перезагрузки вскрылся важный фейл — все логи и база данных почему-то удаляются при перезапуске бота, хотя должны писаться на persistent disk.
Долгая диагностика привела к причине, бичующей даже самых сеньористых айтишников: в переменных окружения в адресе диска в самом начале пути к диску /////// НЕ СТОЯЛО КОСОЙ ЧЕРТЫ /////// Это вам не юриспруденция, здесь все точно. Помянем утраченные логи за три дня 😵

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

🤩 Много эмоций потрачено на отношения с нейросетями.
На время переезжала со всеми делами в chat gpt, сделала все по культуре: проект, актуальные .py-файлы, контекст о продукте и свои ожидания по ответам. Объясняет как устроен код он весьма неплохо, но попросить что-то переписать/дописать и объяснить, где это вставить — это просто провал, причем даже в 👑great for coding
👑 модели o4-mini-high.
Вернулась обратно в AI Studio, взаимодействуем в формате «в новый чат кидаю актуальную редакцию файлов с кодом», и с волшебной формулировкой «напиши минимально необходимые изменения в коде» по изолированным небольшим вопросам он неплохо отрабатывает. Все это было до вчерашнего релиза GPT-5, но почему-то я не преисполнена оптимизма, хотя, конечно, попробую.

🤩 Самое важное — отладка (уже почти наизусть выучила!) пайплайна внесения изменений через Терминал и git.
Локально у меня существует папка, которая полностью дублирует актуальную версию кода на Github с .sh файлом переменных окружения для локального тестирования. Файлы с кодом я правлю в Jupyter Lab, тестирую на специально созданном тестовом боте. Проверенные изменения командами git status, git add, git commit и git push быстро и элегантно записываются в репозиторий. Красота!

🤩 Пока я занималась вчерашними коммитами, резко назрели изменения на сегодняшние.
А именно Gemini решила пожестить и позапрещать невинный контент, а также забанить одну пользовательницу. Механизма разбана у меня не оказалось ✌️ (помните про точность формулировок промптов?), его я уже написала. Но нужно еще начать логировать фидбек от API с причинами отказа смотреть контент и поправить UX-часть: изменить подход к блокировкам и сделать более дружелюбные поясняющие окошки для пользователей бота.

🤩 Ну и напоследок — я наскрапила новых кейсов для, собственно, RAGа, но пока руки не доходят ими нормально заняться.
Попутно еще нашла косяки в уже имеющейся базе знаний. Самый яркий — мудрое Ненецое УФАС написало там, где все УФАСы размещают текст решения, фразу
по тексту решения

А само решение прицепило .doc-файлом. Исполнительный и инициативный Gemini при разметке сделал из «по тексту решения» целый кейс, где Кагоцел рекламировала счастливая семья, а ФАС признал это гарантией положительного действия. И это сочинение уже выдавалось пользователям в заключение, стыд!

Кто-то помнит пост недельной давности о ближайших планах по развитию бота? Мне теперь немного смешно его вспоминать, по розовым очкам пошла маленькая пока еще трещинка.
Сдамся ли я всем этим багам? Да ни за что! Оставайтесь на связи, мне самой уже интересно, что я буду думать еще через неделю.
Please open Telegram to view this post
VIEW IN TELEGRAM
7😁5👍3
Пока я перенастраиваю в боте систему цензуры и блокировок и готовлю для первичной разметки нейросетью новый кусочек RAGа, хочу рассказать о паре кейсов из практики УФАСов культурной столицы и её области. Оба они поразили меня тем, что в разных местах Интернета можно увидеть профеминистический дискурс, но найти его, копошась в практике ФАС, да еще и в таких формулах я совсем не ожидала.

Какие в Петербурге живут разные люди! Одни делают мемы, считая слово «титечная» чистым петербуржством, а другие обращаются в ФАС (из каких именно побуждений, к сожалению, неизвестно) и затевают вот это дело.
Решение довольно коротко и четко повторяет позицию Рекламного совета:
… использование просторечия, сведение женщины исключительно к одной части её тела могут рассматриваться как унижение женского достоинства.

А значит, нарушена ч. 6 ст. 5 Закона о рекламе, повелено проекцию снять. Петербуржцы если среди подписчиков есть, поглядите при случае, светятся ли эти 8 букв все еще на пилястре Невского, 15?

Гораздо более эмоциональная разборка произошла из-за рекламы, изображения которой мне не удалось нагуглить, но описана она следующим образом:
На рекламных баннерах было представлено изображение молодой девушки в шортах, которая держит в руках французский багет, и следующим текстом: «НА ВСЁ ГОТОВАЯ квартира с отделкой + мебель в подарок

Как мы узнаем далее из решения, девушка багет держала вовсе не для того, чтобы порезать ножом и сделать из него бутерброд.
Мнение петербуржцев о креативе застройщика КВС суммировали так: «…такую рекламу … в таком культурном городе как наш…», «… откровенная пошлость…», «… унижает российских девушек»!!!

Основные тезисы Ленинградского УФАСа по поводу этого остроумнейшего креатива:
🤩 реклама объективизирует и сексуализирует женский образ, что считается неэтичным, поскольку влечет за собой отрицание субъективности женщины [наверное, имелась в виду субъектность. Все равно круто, жду кейсов, где будет еще слово агентность];
🤩 отождествление человека и неодушевленного объекта является унизительным для человека;
🤩 оборот «на всё готовая» в обычном узусе не соотносится с квартирой, но ассоциативно связан с человеческими характеристиками. Подтверждением этого тезиса может служить поисковая выдача Яндекса при запросе данного словосочетания [жду, когда подтверждением тезиса будет считаться ответ нейросетей];
🤩 рекламодатель в данном случае грубо попирает традиционные ценности российского общества [как вам? Прям топ-10 неожиданных аниме-концовок].

Думаете все? Нет, ведь этот кейс еще примечателен дискуссией о том, что представляют собой традиционные ценности! Застройщик сообщил Рекламному совету:
…красивая женщина на кухне - это то, что так хочется мужчине с традиционными ценностями! Поэтому компания делает рекламу с социальным оттенком и призывает девушек ждать мужей на кухне. А мужчина, зная, что его ждет такая женщина дома, никогда не сойдет с праведного пути [забавно, что утром я искала в голове, как по-русски будет слово righteousness]. Такие семьи будут надежны и долговечны и, конечно, все это только увеличит деторождаемость в стране. А значит, наша компания выполняет еще одну важную социальную задачу - увеличение деторождаемости в РФ.

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

Интересно, что запретить эти же самые вещи можно было бы с позиций скорее ханжеских, но УФАСы предпочли какой-то человекоцентричный подход и защиту личного достоинства. И, преисполнившись ощущением righteousnessности, заявляю в конце патетично, что по моим меркам этот путь решает очень даже достойные социальные задачи ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
110😁6👍2💯2
Сообщаю информацию о своей хозяйственной деятельности! Приходите послушать 💅

UPD — онлайн тоже вроде как есть https://moscow-legal-hackers.timepad.ru/event/3497617/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏2
Forwarded from Saglara Lidzhieva
Друзья, всем привет!

До нашего митапа по вайбкодингу осталось ровно 2 недели.

Мы начинаем представлять наших спикеров.

Первый спикер - Екатерина Якуненко.

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

Екатерина — автор бота @lastminute_legal_bot.

Бот проводит проверку рекламных материалов на соответствие и практике ФАС.

За пару недель ботом успело воспользоваться около сотни уникальных пользователей.

О своем опыте Екатерина делится в телеграм-канале "Делай RAG".

А еще два месяца назад Екатерина не представляла, что у нее будет свой бот, что этот бот будет отправлять по API аугментированные запросы в нейросеть. Совсем недавно это были какие-то где-то услышанные слова, а теперь — осмысленная ежедневная деятельность. И это стало возможно благодаря LLM — весь код написан с их помощью.

В своем выступлении Екатерина расскажет:
- почему она решила заняться кодингом и выбрала тему проверки рекламных материалов;
- какие простые и доступные каждому инструменты использует в работе над ботом;
- что уже сегодня умеет бот и какие есть планы по его развитию;
- немного о «темной» (но очень затягивающей) стороне того, что поначалу кажется волшебством.
🔥16👍2
#commits! Все они были незапланированные и вынужденные страшным ханжеством Gemini, которая не пропускала безобидные вещи вплоть до бана одной пользовательницы.

🤩 улучшено логирование
Теперь ответ от API собирается в json, из которого видно и метрики API, и ошибки, и результаты работы модели (т.н. finish reasons, в которых отражается наличие ответа или его ошибочное отсутствие, блокировки из-за нарушения ограничений в промпте либо аутпуте).
Также там фиксируется оценка моделью вероятности нарушения контетом правил: она ставит баллы probability по каким-то категориям с номерами.
Убрано логирование Промпта 2, эту простыню на 8-9 тысяч токенов все равно читать не буду, а лог раздувает до адских размеров.

🤩 изменена система обработки ошибок и неблокирующих finish reasons
Оказалось, что изначально обрабатывающие контент функции содержали отлов ошибк и превращение их в ответ модели, поэтому, например, пользователи видели текст с ошибкой 500. Первый патч этой проблемы был совсем неправильным.
Сейчас т.н. HTTP-ошибки, все finish reasons, кроме блокирующих, пустые ответы и прочие непредвиденные реакции нейросети обрабатываются в отдельном блоке except, общем для всех функций.
Если происходит ошибка, бот сообщает пользователю о проблемах на стороне Google, предлагает вернуться позже и не уменьшает ежедневный лимит, а администратору посылает работающее (а не как в прошлый раз) уведомление об аварии.

🤩 доведена до ума система обработки непристойного контента и блокировок
Здесь несколько изменений, тесно связанных с предыдущими. «Блокирующие» finish reasons обрабатываются отдельно. Думаю написать об этом подробный пост, цензура у нейросетей — многослойная тема.
Если модель отказывается работать по цензурным причинам, добавляется счетчик нарушений. 7 нарушений подряд или 15 всего ведут к блокировке (я по-прежнему надеюсь, что это не понадобится, так как фильтры на цензуру входящего контента вообще сняты вообще, и больше необоснованных отказов не должно быть).
Тем не менее, для забаненных пользователей добавлена возможность связаться с администратором, а администратору — команда для разбана.

🤩 улучшение коммуникации с пользователем
Поправила и унифицировала все окна, которые получает пользователь от бота, сделала их более человечными (до этого местами был отмороженный текст, который накодила AI Studio), пояснила, что нейросеть может ошибаться в своей оценке пристойности креативов.

В целом Gemini не должна больше жестить так, как раньше. А если начнет, то мы точно будем знать причины ее поведения.

Как всегда прошу 🥹 попробовать. Попробуйте послать боту картинок и слоганов на грани с nsfw и шовинизмом 😊
А я на пару недель завязываю с кодингом и буду уже делать RAG (хочу добить до тысячи кейсов в базе), писать посты и готовиться к митапу.
Все эти испытания лажовой исходной архитектурой кода очевидно посланы мне для того, чтобы было о чем порассказывать 28 августа. Всем хороших выходных и не забудьте зарегистрироваться на тусовку!)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏43
Очень хотела объявить сегодня торжественно о первом — и сразу таком красивом и внушительном пополнении RAGа, но пришлось кое-что менять в корпусе эмбеддингов. И пока вместо того, чтобы бояться, что все начнет работать хуже, чем работало, напишу вам под вечер немного развлекательного контента. Подрубрика «Рекламодатель привел довод» 🤡

Вот что можно возразить, когда на рекламу
Пластика может быть интимной! В отделении гинекологии Эс КлассКлиник (рядом с надписью почти на половину площади рекламной конструкции изображены руки, сложенные лодочкой, в ладонях зажата розовая роза)

ФАС тебе говорит, что ни одна мировая культура не признает допустимым использование подобных изображений, символизирующих половые органы, в публичных местах с целью продвижения услуг?
Ну, вы понимаете же, описать на баннере процесс интимной пластики как медицинской процедуры весьма непросто, поэтому дизайнером было предложено ассоциативное изображение цветка-розы, олицетворяющей женщину. Женские ладони розу держат потому, что интимная пластика в основном проводится у женщин и женщинами-гинекологами. Короче, смысловая нагрузка была следующей: «Женские руки гинеколога заботятся о женщине (цветке-розы)» 👀
Чувствуете потоки женской энергии? 💅 Я, знаете ли, даже верю им. Но ФАС не поверило, возможно потому, что по этому делу председателем комиссии была Никуйко Ирина Борисовна.

Всегда хорошо работает отмазка «да я просто пошутил 😏», решил хозяин Дома кафеля в Оренбурге. Рассказать о своем кафеле он решил, наклеив на регулярный автобус вот такую наклейку с небольшой фигой в кармане:
Дом кафеля. Лучшая плитка и керамогранит в городе
* по мнению владельца магазина

Какие у ФАС могли быть претензии к такому креативу вы можете догадаться. Но вообще-то, как сообщил ИП-кафельщик, целью рекламы было развлечь, а не обмануть потенциальных покупателей. Фига в кармане не сработала, комиссии УФАСа весело не было. Но жители Оренбурга продолжают развлекаться, ведь стоит им ввести в поисковике «мир кафеля оренбург», как развлечение являет себя, будто и не было никакого разбирательства и никакого штрафа.

Ну и безотказный вариант — свалить вину на кого-то!
Наружку с рецептурным препаратом и утверждением о лучших ценах повесил менеджер, а двух гусей со слоганом
Один день без пи*а конечно не  убьёт тебя, но зачем рисковать?

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

К слову, бот уже третий день работает на Gemini 2.5 Flash, как-то Pro не планирует отмирать, кажется. Поделитесь, если кто использовал в последние пару дней и, допустим, неделю назад — чувствуется ли разница в ответах?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁32🙈1
И все-таки ура! 🤩
Сообщаю о первом пополнении базы знаний! #RAG_expansion
Cейчас в базе 😀😀😀😀 дела, она охватывает практику с 2022 года по середину августа 2025.

Некоторые подробности:

🤩 Воронка: на последнем скрапинге за 2022 и 2025-й год наскачивалось 2138 решений.
Предварительная разметка нейросетью определила, что из них 805 релевантны для RAG (то есть касаются субстантивных нарушений, а не каналов распространения, а также вообще относятся к ФЗ О рекламе — в базе ФАСа возможно всякое).
После моего отсмотра осталось 424, они присоединились к уже имеющимся.
Уже имеющиеся также подчистила от залетных определений о возбуждении дела и предписаний, убрала то, что нейросеть придумала про Кагоцел.

🤩 Выяснились всякие технические нюансы, касающиеся разделителей столбцов в csv-файлах и их отношениях с моим кодом, обвязывающим работу с RAGом, да и кодом бота тоже.
А еще пополненный корпус эмбеддингов перестал влазить на Github (28 мб вместо максимальных 25). Для этого пришлось делать уменьшение точности, с float32 до float16… в качестве временной меры, потом, наверное, я либо придумаю способ обращаться к большому файлу, либо сделаю несколько корпусов эмбеддингов.
ВРОДЕ БЫ точность не стала хуже, кейсы подбираются вполне хорошо.

🤩 Стал понятен будущий облик пайплайна пополнения RAGа, где что можно соптимизировать, какие дыры закрыть. Следующее пополнение будет результатом аккуратного и, надеюсь, отлаженного процесса.

Бот продолжает работать на Gemini 2.5 Flash. Флеш менее послушен к указаниям промпта в части оформления ссылок на кейсы, за что прошу прощения 😪 Гарантирую, что практика не придумана! Если вдруг очень нужны реквизиты кейсов — пишите мне, все скину, даже все топ-10 подобранных, а не только упомянутые в заключении.
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2🎉2👍1
Поглядите на картинку из моей завтрашней презентации. Чтобы написать на ней второе и третье число пришлось вчера доставать логи и узнать, что скачивание логов с диска на сервере сломалось — до такой степени, что скачали их в итоге через wormhole.

Есть ощущение себя собачкой из мема This is fine, вокруг которой все горит — с логами проблема, с оформлением ссылок в заключениях беда, Gemini Pro продолжает выдавать пятисотые ошибки, из бэклога от несделанного идет дым… а я делаю слайдики 💀 Самооправдываюсь тем, что сдувать восьмилетнюю пыль с навыков публичных выступлений, полученных в муткортовском прошлом — не коту чихнуть, дело ответственное😼

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

Других новостей нет! Радуюсь круглой сотне уникальных пользователей. Учитывая, что промоция была только в первую неделю, это очень приятно видеть! Еще приятнее знать, что некоторые коллеги используют бот в своей работе ☺️ Звучит как речь на юбилей, и это почти правда, ведь в пятницу месяц с релиза! (Не верится, кажется, что уже год трудов)
Please open Telegram to view this post
VIEW IN TELEGRAM
123
В честь небольшого отпуска в Калининградской области (затеянного, в свою очередь, в честь моего завтрашнего тридцатилетия 😊) рубрика #мудростьФАС! Давно у меня лежал припасённым один кейс, про который я точно знала, что он Калининградский, а заглянув в RAG по приезде обнаружила, что и другой из припасённых — отсюда же.

Для начала скажу, что за 3,5 года Калининградский УФАС вынес около 20 решений по субстантивным нарушениям (напомню, что в RAG у меня идут только дела, касающиеся содержания рекламных материалов, а не способов распространения, т.е. в основном статьи 5, 7 и глава 3 ФЗ О рекламе). У меня в базе 14, из них 3 по криптотрейдерам и целый 0 по банкам и банкротствам (хотя последние три года все УФАСы всей страны были очень заняты крестовым походом против банков, МФОшек и юристов, банкротящих физ.лиц). Наверное, это нам что-то может сказать о финансовом благополучии региона.
Основной источник кейсов для этой рубрики и точка приложения мудрости УФАСов - это, конечно, запрет на непристойщину и всё, что может кого бы то ни было оскорбить (ч. 6 ст. 5). Вообще уже думаю рассказать каким-нибудь антропологам, что срез представлений российского общества о том, что нравственно в 20х годах XXI века, нужно искать именно там (а еще в правилах разных больших чатов в Телеграме).

Первое оскорбление нравственности некоторые гости Калининградской области могли заметить по прилету в Храброво буквально в начале этого года — решение свеженькое, от марта.
в зоне прилета аэровокзального комплекса АО «Аэропорт Храброво» размещен рекламный баннер (стенд) (фото 1) ООО «Поматти» с текстом следующего содержания:
«Не вы ли забыли, являясь гурманом,
На Прусскую землю приехав,
Название фабрики, что марципаном
Известна тут два с лишним века?
Так я подскажу вам, любезные гости,
Древнейшую фабрику, кстати,
Всё лишнее сразу, прошу вас, отбросьте
Запомните имя – Pomatti».
Поскольку места эти уже 80 лет как не Прусская земля, с креативом не согласились многие: Русская община, Координационный Совет представителей общественных организаций Калининградской области, Институт гуманитарных наук БФУ им. Канта. И УФАС тоже, докинув еще и обвинений в том, что никакая вы не фабрика-два-с-лишним-века.
Вообще решение очень насыщенное различными аргументами и доводами, есть ощущение, что ребята своим креативом наступили на какую-то больную мозоль и тихо тлеющий конфликт. Очень много здесь брендов строит идентичность на том, что они делают что-то прусское, а очень многие мои знакомые любят Область за то, что она совсем-совсем «не похожа на Россию». Короче, я поняла для себя вопрос, о котором лучше НЕ разговаривать ни с какими местными)

Второй кейс попроще, можно сказать уже привычные вопросы отношений полов. «Пошлая, мерзкая и унижающей всех женщин», по мнению заявителя, реклама
на которой изображена женщина с телефоном в руках и текстом следующего содержания: «Порадуй не только жену. Второй айфон со скидкой 8%». […]
Спорная реклама содержит образ молодой женщины, прикладывающей палец к губам и прикрывающей лицо смартфоном. Жест и мимика женщины указывает на её приглашение сохранить в тайне некоторое действие/событие.

Процитирую без дополнительных комментариев позицию Рекламного совета (возможно, рубрику стоит назвать «Мудрость Рекламного совета»?):
Слоган «Порадуй не только жену» в контексте визуального образа женщины с интимной мимикой (приглашение к секрету, сексуализированная поза) создает двусмысленную и провокационную интерпретацию, в которой женщина используется как намек на любовницу или объект «второй радости», иными словами — товар или «наградной» образ. Это объективация женщины и восприятие её как «бонуса», что способно оскорбить достоинство женщин как социальной группы.


Всё, у меня всё! Всех причастных с днем знаний! Мудрости всем, чутья и такта, особенно в работе с креативщиками и их бурными творческими потоками ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥94👍1