Делай RAG
768 subscribers
24 photos
7 files
49 links
Канал об исследованиях неочевидных способах применения ИИ в работе юриста: RAG-системы, вайбкодинг, внедрение.

Связаться с автором через сообщения канала или [email protected]
Download Telegram
Это бот в этот непогожий понедельник. Первый раз прилег по необъяснимым причинам — видела по логам сервера, что кто-то пришел попользоваться ботом, но, как и я, на большую часть запросов получал грустное
500 An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting

Но я пытаюсь смотреть на #ботоводство как на уникальную жизненную ситуацию: возможность из каждой новой проблемы получить новое знание. Так, например, я узнала, что Google любезно сообщает об инцидентах здесь, а если никакого глобального инцидента нет, то предлагает посмотреть, что могло пойти не так с конкретно вашим проектом (впрочем, и на моем проекте тоже не было инцидентов).

Задуплилась не только Gemini, но и сам бот, причем и в бэкэндовой части, и в телеграмской. Например, бэкэнд не генерировал ссылки на базу ФАС, а оставлял только caseID (это номера, которые в базе ФАС присвоены страницам отдельных дел), который нейросеть подбирает из аугментированного второго промпта. А в интерфейсе Телеграма бот ругал меня за вводимый между запросами текст, не распознавал его как креатив и выдавал окно, которое должно выдаваться при прохождении опросника. Это все я поправила простым советским рубильником, перезапустив бота на сервере.
Короче, день проходит с ощущением загадки, которую я не могу разгадать Буду признательна, если у кого-то сегодня найдется минутка потыкать бота, поглядеть, сохраняются ли ошибки 🥱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍521
Ура, первое обновление! #commits
Ох, и тяжело же оно далось. И планировалось чуть раньше, и обновлялось вообще не то, что было задумано.

Что сделано:
🤩 при ошибке 500, которая появлялась в понедельник, бот теперь будет уведомлять пользователя о том, что есть проблема на стороне Google, и предлагать загрузить креатив попозже или почитать канал;
🤩 администратор бота будет получать сигнал о том, что кто-то из пользователей получил ошибку 500;
🤩 настроено сохранение загруженных картинок после ресайза на диск сервера;
🤩 расширено количество записей, которые вносятся в пользовательский лог:
содержимое пользовательского текстового сообщения;
количество потраченных токенов и метрики API;
полный стек-трейс при возникновении ошибок;
caseID и косинусное расстояние для top-10 релевантных дел, которые идут в Промпт 2 (тот промпт, что запрашивает итоговое заключение);
текст итогового Промпта 2;
путь к сохраненной после ресайза картинке.

А еще починилась неожиданно обнаруженная проблема стирания всех файлов и логов при ручном перезапуске бота, но это отдельная увлекательная история, чтобы рассказать её, мне нужно собраться с духом 🙂

Потестите, пожалуйста 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👏42
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
Сообщаю информацию о своей хозяйственной деятельности! Приходите послушать 💅 #spectacle

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
5🔥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
🔥106👍4
Смотрите, как меня сегодня утешает Gemini, и это он еще не в курсе, что все эти #commits я пилю на излете отпуска!

Что НАКОНЕЦ сделано:
🤩 добавлена страховка на случай поломок у Gemini 2.5 Pro (или, как это называет Gemini — отказоустойчивость, мне так нравится это слово, я тоже хочу быть отказоустойчивой…)!
Теперь у меня есть новая переменная окружения fallback_generative_model, то есть Gemini 2.5 Flash. Она включается, если происходят технические ошибки от Pro — ошибка 500, с которой я борюсь буквально с релиза, пустые parts при candidates (непонятно? Да и мне тоже, но я об этом вынашиваю пост). Пользователь честно об этом уведомляется, какая моделька выступала в каждом случае — логируется.

🤩 починено оформление ссылок на дела на сайте ФАС
Код в этой части упростился, были какие-то ненужные промежуточные этапы, но в основном заслуга выздоровления в корректировке промпта. Пришлось немного орать капсом на нейросеть и упростить ей инструкции. Единственный косяк, который можно наблюдать — от заключения к заключению моделька по велению своей бездушной генерировалки добавляет или не добавляет жирное форматирование для слова [ссылка], но это уже косметика.

Потестируйте, конечно, пожалуйста.
И мои извинения перед пользователем, который пользовал бота прямо в момент перезапуска (для деплоя, простигосподи, коммитов). Хорошая новость — каждый перезапуск бота сбрасывает дневные лимиты, ну и вообще сейчас Pro вам настругает заключений на пятерку с плюсом.

Небольшие заметки на полях по поводу второго изменения со ссылками #ботоводство
Потрачено было ни много ни мало два вечера и час сегодня днем, причем первый вечер весь не задался из-за того, что кодила я с Chat GPT 5. Мне по-прежнему не нравится с ней кодить, но интересный факт к вопросу о том, что нейросети не умеют считать.
Считать не умеют, но просить посчитать все же можно — я просила GPT проанализировать паттерны в формировании уникальных номеров дел и документов в базе данных ФАС. Они встраиваются в ссылки на сайт с базой и выглядят примерно так: c6512d40-4fd1-468e-9a5b-0659baa5c270.
Я промптила «мне нужно, чтобы ты выявил какие-то закономерности и описал их […]. например, общее количество символов, количество символов между знаками, какие это символы». И знаете, все посчитал, и общее количество, и количество между знаками. И закономерности все выявил и вообще просветил меня, что вообще-то это не просто какие-то номера, а сделанные по стандарту UUID v4 (Universally Unique Identifier), версия 4 — вон у них у всех третий блок всегда с четверки начинается.
Есть ощущение, что я открыла великое знание, что у велосипедов, как правило, 2 колеса 😐 И вас тоже поздравляю со знанием бесполезного факта о том, что ФАС для генерации айдишников дел и документов использует этот стандарт. Если вам зачем-то очень надо, можете даже сгенерировать себе какую-нибудь такую последовательность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2😁2
Делай RAG
Друзья, всем привет! До нашего митапа по вайбкодингу осталось ровно 2 недели. Мы начинаем представлять наших спикеров. Первый спикер - Екатерина Якуненко. Екатерина яркий пример того, как юрист с помощью вайбкодинга может создать свой продукт... с нуля...…
2025-08-25_MLH.pdf
18.8 MB
Некоторых своих друзей и знакомых из личных соцсетей я приманила сюда обещанием ссылки на выступление и презентацией — и, конечно, об этом забыла и сейчас вот вспомнила.
Видео здесь, презентацию приаттачила.
Посмотрите, если что-то особо интересно или непонятно — расскажите, на ближайшее некоторое время хочу открыть чакру писания постов обо всей этой заварущке (о боте, не встрече).

К слову о выступлениях и явках на другие мероприятия: 25го сентября буду на конференции ПравоТеха.
Сначала мне предложили заявиться на конкурс старт-апов (хоть я и не он). Я подумала, а почему бы и нет, в конце концов? Приятно же, когда зовут. В конкурсе я не прошла в основную программу, но прошла на то, что называется бизнес-дейтингом: возможностью поговорить о проекте с умными и опытными людьми. В раздумьях, что же я могу у них спросить 😊 учитывая, что проект монетизироваться не будет (и по моему глубокому убеждению к монетизации непригоден). Но в любом случае буду рада повидаться на форуме с кем-нибудь из читателей, кто там окажется!

Поскольку болтать о боте мне нравится, то я делаю аффирмацию на то, чтобы это были не единственные мои перфомансы, путем ввода хэштега #spectacle (на французский прононс, пожалуйста 👨‍🎨)
Please open Telegram to view this post
VIEW IN TELEGRAM
8👏4
«Кредиторы требуют капусту, а вы показываете им хрен! За это они хотят вам дать в тыкву!» прочитала я как-то месяц назад, работая над предыдущей порцией дел для RAGа. Почему-то я совсем не ожидала увидеть дальше в саммери от нейросети, что это была реклама юридических услуг в городе Хабаровске. Это дело было рождено для рубрики #мудростьФАС, и тема сегодняшего выпуска — креатив коллег 😱

Как бы вы сформулировали главную проблему этого ролика? Да, это был ролик:
Звуковую информацию произносит женщина, показывая называемые по тексту овощи – капусту, хрен, тыкву, кабачок.

Призывать показывать хрен — непристойно? Непристойно, но главное, чего нельзя было делать, это формировать негативное отношение к социальной группе «кредиторы». Занимательно, что ответственные коллеги пытались перестраховаться путем направления в ФАС запроса на проверку рекламы до её публикации, но зачем делать сегодня работу, которую можно сделать завтра и записать её себе в KPI?

Эти коллеги, утверждающие, что у них водятся лучшие адвокаты Симферополя, могли бы стать героями одного из прошлых постов о топовых отмазках. Вообще хотели они написать, что они опытные, а не лучшие, но виновата во всем рекламная платформа, автоматическим колдунством меняющая ключевые слова на более привлекательные. Целую большую телегу дал рекламопроизводитель:
«Принцип работы данного сервиса заключается в том, что в зависимости от запроса пользователя сервис перенастраивает ключевые слова. В том числе заменяет текст на более релевантный. С точки зрения конверсии, YAGLA проводит тестирование, сравнивает исходную версию страниц с подменяемыми элементами. В итоге показываются только варианты с наилучшей конверсией.»

ФАС пригласил директора этого сервиса, чтобы он рассказал, что за чудо у него такое, а он возьми и слей всю контору — все подмены пользователь настраивает сам 😵
Одним из инструментов сервиса YAGLA является таблица подмен - таблица, которая содержит варианты запросов пользователей [...] Пользователь, используя сервис YAGLA в своем личном кабинете на сайте самостоятельно заполняет Таблицу подмен, исходя из которой контент сайта изменяется под поисковый запрос. При этом сервис YAGLA никаким образом не влияет на содержание рекламных объявлений и заголовков.

Будь на дворе 2025-й год, а не 2021-й, как в этом кейсе, во всем виноват был бы искусственный интеллект, а там поди докажи уже…

Эти коллеги очень заботились о своих клиентах — текущих и будущих. Рассылали им сообщения в Whatsapp с таким текстом (без согласия, разумеется, но ведь во благо!..):
Будьте предельно осторожны. На нашем рынке очень много недобросовестных компаний. Либо откровенных мошенников. Как пример: крупнейшая компания «Единый центр защиты» последние три месяца не выполняет своих обязательств и на этой неделе закрыли офис в Адлере.

Вот хочешь людям помочь, а тебя обвиняют в какой-то там недобросовестной конкуренции…

Ну что тут скажешь! Коллеги, не хулиганьте!

К новостям о боте: я сделала и обкатываю на практике 2021-го года свой RAG-pipeline, на наросшей практике 2025-го его дозакруглю. А это значит, что к концу недели, наверное, будет подращивание RAGа, а на следующей — всякие посты о том, как эта моя воронка вся работает.
Всем отличной рабочей недели, stay tuned and watchful! ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁3
Изнеможённо сообщаю о #RAG_expansion. Подрастание на 3⃣1⃣0⃣ дел, всего сейчас 1⃣4⃣6⃣2⃣. Охват — с октября 2020 по середину сентября 2025. Чуть не дотянулось до красивых цифр в 1500 и 5 лет)

Все это подрастание сопровождалось двумя большими процессами:

🤩 Выстраивание единого пайплайна или воронки «скрапинг - разметка - эмбеддинги», то есть единого кода процесса
Делала я это вместе с Claude. И вроде бы все скорее нормально, но так или иначе воронка даёт течь буквально в каждой сессии)) Это несовершенство, с которым я решила смириться: скоро уже практика, стоящая добавления в базу, кончится, занимаюсь я этим примерно раз в месяц, поэтому нет смысла бороться за абсолютную бесперебойность.

🤩🤩🤩🤩 Миграция RAG-файлов
Напомню, что за этими тремя буквами на практике стоят два файла: таблица в формате csv с размеченными кейсами и корпус эмбеддингов в формате npy (подробнее об этом здесь). Они лежали на Github в приватном репозитории, где есть ограничения по размеру файлов (до 25 МБ). Еще в прошлый раз npy-файл перестал помещать в эти 25 МБ, и в качестве временной меры нужно было менять уровень точности (float) у эмбеддингов (в комменты скину пояснение от Perplexity, что это значит).
Мера никуда негодная, и надо было переезжать. Переезд случился в самое очевидное место — на Persistent disk моего сервера, где хранятся логи и база данных.
Почему я сразу там не разместилась? Это хороший вопрос, место же очевидное. Именно это я пыталась сделать перед релизом, но что-то не задалось, и консультировавшая меня AI Studio сказала, что это невозможно. Предлагаю назначить виноватой именно её, а не меня, которая наверняка замусорила контекст чата, в котором происходила консультация 😀

Короче, переезд состоялся и был мучительным. На Github можно увидеть какие-то странные истерические полуночные коммиты, попозже их потру (кстати, кто-то поставил еще звездочку, спасибо ❤️!).
Я теперь могу дать несколько советов (вряд ли они кому-то понадобятся и запомнятся сейчас, просто помните, что я собрала фейл-бинго и могу что-то знать):
🤩 если вам понадобится разместить что-то в Google Drive в качестве промежуточного хранилища, не забудьте отжать в настройках галочку, которая переводит файлы в гугловские среды типа sheets;
🤩 если вам понадобится преобразовать ссылки доступа к файлу на Драйве в ссылку для прямого скачивания — делайте это нейросетью, не доверяйте глазам своим и рукам своим;
🤩 ВСЕГДА надо тестировать локально. Пока вам кажется, что в вашем csv ничего не поменялось, в нем ПОЧЕМУ-ТО поменялись разделители с запятой на точку с запятой;
🤩 если основной рабочий файл с кодом не может запуститься и входит в безнадежную петлю попыток запуска, то в shellе вашего сервера вы ничего не сможете написать, чтобы хотя бы выяснить в чем проблема (и придется делать странные коммиты в коде).

В качестве вишенки на торте аутпут первого предобработочного промпта стал выдаваться на английском языке (сам промпт на русском и аутпут до вчера тоже всегда был на русском).
Просто какая-то комедия, но со всем удалось справиться 😀😐

Надеюсь, ваш поздний вечер пятницы был приятнее моего и хороших вам выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3😁3
Кто смотрел презентацию с моего первого спикерского инцидента, тот может помнить эту картинку — воронку, визуализирующую пайплайн моей работы над базой знаний. За прошедший месяц я собрала его в единый код в ноутбуке на JupyterLab, и он отработал уже раз 6, поэтому нельзя более тянуть, и пора открыть серию постов #делайRAG обо всей внутренней кухне этого процесса. И начать логично с самого верха воронки — скрапинга.

Скрапинг (кто-то говорит скрейпинг) — это автоматизированное извлечение информации с сайтов, то есть скрипт «читает» страницы сайтов, но примерно в стотыщ раз быстрее, чем это делает человек, попутно вытягивая их них всякие нужные данные. Это была первая вайбкодинговая задачка, которую я себе поставила и которую радостно очень быстро выполнила, и это задачка, которая может быть актуальна многим юристам, в том числе не собирающимся делать ни RAGов, ни тем более ботов. И я, знаете ли, могу даже дать некоторые, как мне кажется, полезные советы — они будут в конце.

Я попросила Claude описать функциональность скрапера как-то кратко, но максимально по сути, и он выдал «интеллектуальный веб-краулер с функцией инкрементального обновления данных». 😵 Имеется в виду, что скрапер умеет собирать дела за указанный пользователем временной период, причем как смотрит новые (отсутствующие в базе), так и отслеживает появление новых решений в уже известных делах.
Здесь нужно небольшое пояснение
ФАС структурирует базу данных (по крайней мере в части рекламных дел) так: создает карточку дела, которой присваивается UUID (здесь про это). Внутри карточки с делом размещаются документы по делу отдельными страничками (определение о возбуждении, решение, предписание и т.д). Соответственно, в разных моментах времени эта карточка может быть пустой или содержать разное количество документов. Меня для целей сборки RAGа интересуют только карточки с решениями. У каждой карточки с документов есть свой UUID (в моих файлах он идет как docID).

Скрапер делает поисковые запросы по 4 фильтрам, затем выкачивает тексты решений в txt и попутно ведет лог с записями всех caseID и относимых к ним docID. Это если кратко, более подробно расписанные этапы для особо любопытных прикладываю в pdf-аттаче, также там всякие скриншоты с анализом проблемных мест в базе ФАС.

Анализировать проблемные места сайтов, с которых вы хотите что-то скрапить — важно, если вам нужна достаточно полная база без мусора. Вот несколько бутылочных горлышек, с которыми пришлось поработать (причина у них по сути одна — неконсистентное ведение базы знаний, пополняют-то её люди):
🤩 выше говорила, что поиск ведется по 4 параметрам, а именно 1) Управление - Управление контроля рекламы и недобросовестной конкуренции, 2) Процедура - Реклама, 3) Сфера - Рынок рекламы, 4) Доп. критерии - реклама.
Подавляющее большинство проходит в параметре «процедура», но далеко не все: рекламный кейс может заваляться и по другим параметрам (например, здесь, в параметре процедура указано «КоАП», а я по нему не проверяю).
🤩 в подавляющем большинстве дел текст решения выкладывается на странице, и скрапер его собирает и создает на моем компьютере txt-файл. Но некоторые УФАСы выкладывают тексты решений в других форматах, которые подвешивают в карточку отдельным аттачментом, оставляя основной текст страницы пустым или заполненным какой-нибудь фразой.
Это остается проблемой, скрапинг таких аттачей я пока не делала. Но опытным путем было установлено, что если в Gemini на разметку послать написанный ерундовый текст, то она может из этого сочинить целое дело, поэтому этот нюанс учтен в пайплайне дальше - на отправку по API на разметку идут только тексты из файлов от 100 кб.
🤩 я докопала уже до 2018-го года и, кажется, ФАС начал более или менее консистентно вести базу, используя UUID с какого-то момента в 2018-м, потому что что-то там точно поменялось в названиях страничек с решениями.
Думаю пока, что с этим делать, много ли там вообще чего-то ценного для RAGа с учетом того, что законодательство за последние 7 лет достаточно сильно поменялось.

Ну и советы с обещанным аттачем ниже!
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3
FAS BD scraper_details.pdf
1.1 MB
Советы!

1️⃣ Собственно, первый вы уже поняли: нужно изучать, как устроены сайты, с которых вы хотите что-то скрапить и парсить. Нужно и глазами покопаться, и призвать на помощь нейросети: я просто сохраняла в браузере html-файлики с основной страницей поисковых фильтров, со страницей дела (где есть caseID) и страницей решения. Так и нейросети будет легче составлять код скрапера.

2️⃣ Просите закодить небольшую паузу в посылании запросов, чтобы сайт не решил, что его дудосят, и не выдал бан вашему IP (особенно если это какой-то реальный IP, с которого вы по работе часто взаимодействуете с сайтом).

3️⃣ Если для каких-то целей вы используете сервисы из трех букв, то на время скрапинга баз решений российских гос.орагнов ковровую активность этих сервисов придется приостанавливать — будьте к этому готовы.

4️⃣ Используйте обязательно логи того, где скрапер побывал и что скачал — если будут какие-то прерывания в соединении, или вы будете скрапить с какой-то регулярностью, это будет совершенно бесценной информацией, экономящей кучу времени.

5️⃣ Помните, что структурированные базы — это вообще-то охраняемый результат интеллектуальной деятельности, и полезно на всякий случай чекать режим допустимого использования. У ФАС об этом вот здесь, например (к вопросу о коммерциализации) 📈
Материалы сайта ФАС России являются общедоступными и открытыми для использования в некоммерческих (личных, ознакомительных, образовательных, исследовательских и аналогичных) целях.


Кстати, хотите hot tea на тему коммерциализации с Форума Правотеха? 👩‍❤️‍👨 Ну какой растущий канал без hot tea, извините меня… Будет завтра! Я хотела предложить читателям сказать, нужно ли выложить код скрапера, но с новыми вводными даже не знаю уже))
Поэтому просто рассказывайте о своем опыте скрапопарсинга и приколах, с которыми пришлось столкнуться.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥3
Была вчера на Форуме Правотеха — хорошо сделанное большущее мероприятие, спасибо им, что позвали. Позвали в виде полуфиналистки конкурса старт-апов на бизнес-дейтинг , и в честь этого я распечатала вИзИтКи и сделала небольшой лендинг. В честь преодоления очередной красивой цифры в 2⃣0⃣0⃣ подписчиков презентую его и здесь под звуки воображаемых фанфар
🥁https://ekaterina-ya.github.io/ 🕺
(пишите, если нужна инструкция, как с минимальными временными тратами такое сделать))

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

Потом была питч-сессия финалистов, и каково было мое удивление, когда вышедшие на сцену спикеры стали рассказывать о телеграм-боте, проверяющем рекламу, у которого есть база знаний, а ЦА — юристы, блогеры, предприниматели. Знакомо звучит, согласны, узнали?)) вот уж воистину идеи витают в воздухе.

Удивительно, боту нет и 2 месяцев (через 3 дня будет!), а я уже стою перед этическим вызовом, как корректно подать свои мысли от этой информации. Несколько идей:
🤩 нейросети и вайб-кодинг — сила! Девушки говорили, что им их бота делали два месяца два разработчика. Интересные чувства испытывала, слушая ответ на вопрос эксперта о том, насколько легко повторить продукт.
🤩 идеи о коммерциализации в виде какой-то подписочной истории я точно откладываю в далекое и невостребованное: в текущем и развивающемся виде бот будет работать так же бесплатно.
Но к разным добросовестным коллаборациям я морально готова и личка моя открыта 🙏
🤩 если кто-то захочет поучаствовать в двойном неслепом никем неконтролируемом и несколько предвзятом (шутка) исследовании в части пересекающегося функционала и дать мне развернутые комментарии и типа небольшого интервью — напишите в комменты или личку, и я вас возьму на карандаш

Вообще очень много хороших эмоций от форума. Здорово было повидаться с людьми из сообществ ilovedocs и MLH, но самым настоящим счастьем была совершенно неожиданная встреча с моим добрым университетским другом Никитой, который живет и работает в Екатеринбурге. Университетские связи действительно какие-то невероятно крепкие, им не вредит ни время, ни расстояние.
Пока меня не понесло дальше в лирику о жизненных путях, сворачиваюсь и желаю всем отличной пятницы и выходных! ❤️

#ботоводство
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍10🔥5
Продолжаю рассказ про воронку #делайRAG. Начинается превращение из «гусеницы», сырого текста решения ФАС со всякой не самой важной для нашей великой цели информацией, в идеальную математическую бабочку-эмбеддинг 🦋 Начинается превращение с разметки.
Следующий компонент кода пайплайна отправляет каждый выскрапленный текст решения УФАС в нейросеть по API. Почти каждый, как упоминала в прошлый раз: код проверяет, точно ли там есть какой-то стоящий траты токенов текст (соломоново решение отправлять тексты из txt-файлов более 100 кб).
Если вы знаете, что такое API и зачем это нужно, читайте дальше 📥

API (Application Programming Interface) — это такой способ организовать взаимодействие созданной вами программы и какого-то другого сервиса. То есть я обращаюсь к нейросети не привычным образом через чат в браузере, а мой скрипт автоматизированно отправляет ей шаблонные запросы, она возвращает определенным образом структурированные ответы. Так и бот работает, к слову. Хочу все сделать пост про разные обнаруженные мной нюансы у API Gemini.
Главная выгода использования API в данном кейсе — скорость, масштаб и сохранение качества (каждый запрос — как новый чат, не замусоренный контекстом). На данный момент я прогнала уже несколько тысяч текстов, и без скрепленного API союза нейросети и скрипта для такого же результата понадобились бы месяцы непрерывной отупляющей работы.


Промпт ставит нейросети несколько задач по анализу кейсов:

Задача 1: Первичная проверка релевантности ФЗ О рекламе
Поскольку, как вы помните, базу данных ФАС заполняют люди, а скрапинг идет по 4 фильтрам, в этих фильтрах оседает всякое залётное, и прежде всего из дел по госзакупкам. Нейросеть первым делом определяет, относится ли дело вообще к ФЗ О рекламе, и если нет, то модель должна вернуть минималистичный JSON с флагом is_relevant_to_ad_law: false и коротким объяснением причины, не тратя ресурсы на дальнейший анализ. Как это может выглядеть - смотрите в pdf-аттаче!
Если вы знаете, что такое JSON и зачем это нужно — проходите-не-задерживайтесь 📥

JSON (JavaScript Object Notation) — это текстовый формат для структурированного хранения данных, который организует информацию в виде пар «ключ:значение». В приведенном выше тексте ключ — «is_relevant_to_ad_law», а значение — «false». Направляя каждый API-запрос, я запрашиваю одну и ту же информацию, и мне нужно, чтобы нейросеть её располагала не беспорядочно, как токены лягут, а именно структурированно. Если по ключу «is_relevant_to_ad_law» значение становится «true», то будет дальнейший анализ, где ключей уже намного больше. Из таких пар «ключ-значение» легко собираются таблички. Но таблички — это лишь вершина айсберга, в этих массивах легко можно вылавливать другие данные с помощью скриптов без парсинга всего текста.


Задача 2: Оценка ценности дела для RAG-базы
Прошедшие первичный отсев герои попадают на, собственно, разметку. В этой задаче у меня два основных соображения:
1. мой бот проверяет только субстантивную часть, а всё, что касается каналов размещения и прочих нюансов реального мира (лицензии, соответствие рекламным тезисам реальному положению дел) — не трогает. Поэтому и в базе знаний этих дел мне нужно (забегая вперед скажу, что соотношение «субстантивные»-«технические» в практике делится год от года примерно 60/40 в пользу то одной категории, то второй).
2. У меня есть ни на чём особенном не обоснованное убеждение, что хорошему RAGу по нишевому юридическому вопросу не требуются стотыщмильонов документов. Я могу быть не права, конечно. Но есть ощущение, что качество ответов не станет сильно лучше, если у меня в базе будут сотни написанных под копирку дел о том, что слова «парилки ашкудишки» на окне табачной лавки являются запрещенной рекламной табака. Нужно всякое МЯСО, где УФАСы проявляли #мудростьФАС или иным образом зажигали по всяким тонким, интересным, неочевидным вопросикам, за которые мы так любим рекламное право. Вот без этого прям никак, без этого можно вообще ни за какие RAGи и не садиться.

Я не умею писать короткие посты, конец и аттач далее 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍5
Gemini API annotation_details.pdf
598.9 KB
Исходя из этих соображений нейросети повелено делать грейдинг (регрессию?) ценности дела для базы знаний от 0 до 10 по обозначенным мной критериям. Подробнее о критериях смотрите в аттаче, а если коротко, то:
🤩0 баллов получают все дела по вопросам размещения рекламы в материальном мире (нерелевантные задачам бота то есть)
🤩 1-3 — банальные прямолинейные нарушения простых требований и запретов (пиво рекламировали, дисклеймеры на БАДы забыли и т.д.)
🤩 4-7 — комбинации нарушений, нарушения по определенным видам продукции, достаточно очевидные нарушения, не требующие великой аргументационной мысли, но по важным статьям
🤩 8-10 — все, что задает тон всей комнате практике, где нет очевидного решения, пограничные случаи, слои метаиронии, всякое интересное и дающее смысл профессии.
А зачем мне нужны все эти баллы — будет в посте про этап ручного отсмотра (то есть в следующем).

Задача 3: Структурированное извлечение данных
После оценки нейросеть извлекает ключевую информацию и стряпает из неё JSON. Моделька вытягивает название УФАСа (раньше это делалось скриптом, но при сборке пайплайна кое-что отвалилось и пришлось заставлять модель), информацию о нарушителе и отрасли, в которой он работает, детальное описание содержания рекламы с прямыми цитатами её описания, платформу размещения, суть нарушения, аргументацию ФАС с сильными цитатами из решения, а также список нарушенных норм (пункт-часть-статья) ФЗ О рекламе. Смотрите также в аттаче примерчики.
Испытываю уже сожаление по поводу того, что дату принятия решения не вытаскивала все это время, ведь у меня появилось много новых идей, что я могла бы со всей этой инфой делать — и для работы, и для радости. Но дело поправимое!

Что я со всеми эти JSONами делаю — в следующий раз. Не забудьте поглядеть в аттач, там sneak peaks и в промпт, и в JSONы, и в самую святая святых — базу знаний. И некоторое занудство о работе кода, направляющего API-запросы, там есть любопытные выстраданные решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4👍1