Смотрите, как меня сегодня утешает Gemini, и это он еще не в курсе, что все эти #commits я пилю на излете отпуска!
Что НАКОНЕЦ сделано:
🤩 добавлена страховка на случай поломок у Gemini 2.5 Pro (или, как это называет Gemini — отказоустойчивость, мне так нравится это слово, я тоже хочу быть отказоустойчивой…)!
Теперь у меня есть новая переменная окружения fallback_generative_model, то есть Gemini 2.5 Flash. Она включается, если происходят технические ошибки от Pro — ошибка 500, с которой я борюсь буквально с релиза, пустые parts при candidates (непонятно? Да и мне тоже, но я об этом вынашиваю пост). Пользователь честно об этом уведомляется, какая моделька выступала в каждом случае — логируется.
🤩 починено оформление ссылок на дела на сайте ФАС
Код в этой части упростился, были какие-то ненужные промежуточные этапы, но в основном заслуга выздоровления в корректировке промпта. Пришлось немного орать капсом на нейросеть и упростить ей инструкции. Единственный косяк, который можно наблюдать — от заключения к заключению моделька по велению своей бездушной генерировалки добавляет или не добавляет жирное форматирование для слова [ссылка], но это уже косметика.
Потестируйте, конечно, пожалуйста.
И мои извинения перед пользователем, который пользовал бота прямо в момент перезапуска (дляна пятерку с плюсом.
Небольшие заметки на полях по поводу второго изменения со ссылками #ботоводство
Потрачено было ни много ни мало два вечера и час сегодня днем, причем первый вечер весь не задался из-за того, что кодила я с Chat GPT 5. Мне по-прежнему не нравится с ней кодить, но интересный факт к вопросу о том, что нейросети не умеют считать.
Считать не умеют, но просить посчитать все же можно — я просила GPT проанализировать паттерны в формировании уникальных номеров дел и документов в базе данных ФАС. Они встраиваются в ссылки на сайт с базой и выглядят примерно так:
Я промптила «мне нужно, чтобы ты выявил какие-то закономерности и описал их […]. например, общее количество символов, количество символов между знаками, какие это символы». И знаете, все посчитал, и общее количество, и количество между знаками. И закономерности все выявил и вообще просветил меня, что вообще-то это не просто какие-то номера, а сделанные по стандарту UUID v4 (Universally Unique Identifier), версия 4 — вон у них у всех третий блок всегда с четверки начинается.
Есть ощущение, что я открыла великое знание, что у велосипедов, как правило, 2 колеса😐 И вас тоже поздравляю со знанием бесполезного факта о том, что ФАС для генерации айдишников дел и документов использует этот стандарт. Если вам зачем-то очень надо, можете даже сгенерировать себе какую-нибудь такую последовательность.
Что НАКОНЕЦ сделано:
Теперь у меня есть новая переменная окружения 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
👍6❤4🔥2😁2
Делай RAG
Друзья, всем привет! До нашего митапа по вайбкодингу осталось ровно 2 недели. Мы начинаем представлять наших спикеров. Первый спикер - Екатерина Якуненко. Екатерина яркий пример того, как юрист с помощью вайбкодинга может создать свой продукт... с нуля...…
2025-08-25_MLH.pdf
18.8 MB
Некоторых своих друзей и знакомых из личных соцсетей я приманила сюда обещанием ссылки на выступление и презентацией — и, конечно, об этом забыла и сейчас вот вспомнила.
Видео здесь, презентацию приаттачила.
Посмотрите, если что-то особо интересно или непонятно — расскажите, на ближайшее некоторое время хочу открыть чакру писания постов обо всей этой заварущке (о боте, не встрече).
К слову о выступлениях и явках на другие мероприятия: 25го сентября буду на конференции ПравоТеха.
Сначала мне предложили заявиться на конкурс старт-апов (хоть я и не он). Я подумала, а почему бы и нет, в конце концов?Приятно же, когда зовут. В конкурсе я не прошла в основную программу, но прошла на то, что называется бизнес-дейтингом: возможностью поговорить о проекте с умными и опытными людьми. В раздумьях, что же я могу у них спросить 😊 учитывая, что проект монетизироваться не будет (и по моему глубокому убеждению к монетизации непригоден). Но в любом случае буду рада повидаться на форуме с кем-нибудь из читателей, кто там окажется!
Поскольку болтать о боте мне нравится, то я делаю аффирмацию на то, чтобы это были не единственные мои перфомансы, путем ввода хэштега #spectacle (на французский прононс, пожалуйста👨🎨 )
Видео здесь, презентацию приаттачила.
Посмотрите, если что-то особо интересно или непонятно — расскажите, на ближайшее некоторое время хочу открыть чакру писания постов обо всей этой заварущке (о боте, не встрече).
К слову о выступлениях и явках на другие мероприятия: 25го сентября буду на конференции ПравоТеха.
Сначала мне предложили заявиться на конкурс старт-апов (хоть я и не он). Я подумала, а почему бы и нет, в конце концов?
Поскольку болтать о боте мне нравится, то я делаю аффирмацию на то, чтобы это были не единственные мои перфомансы, путем ввода хэштега #spectacle (на французский прононс, пожалуйста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👏4
«Кредиторы требуют капусту, а вы показываете им хрен! За это они хотят вам дать в тыкву!» прочитала я как-то месяц назад, работая над предыдущей порцией дел для RAGа. Почему-то я совсем не ожидала увидеть дальше в саммери от нейросети, что это была реклама юридических услуг в городе Хабаровске. Это дело было рождено для рубрики #мудростьФАС, и тема сегодняшего выпуска — креатив коллег 😱
Как бы вы сформулировали главную проблему этого ролика? Да, это был ролик:
Призывать показывать хрен — непристойно? Непристойно, но главное, чего нельзя было делать, это формировать негативное отношение к социальной группе «кредиторы». Занимательно, что ответственные коллеги пытались перестраховаться путем направления в ФАС запроса на проверку рекламы до её публикации, но зачем делать сегодня работу, которую можно сделать завтра и записать её себе в KPI?
Эти коллеги, утверждающие, что у них водятся лучшие адвокаты Симферополя, могли бы стать героями одного из прошлых постов о топовых отмазках. Вообще хотели они написать, что они опытные, а не лучшие, но виновата во всем рекламная платформа, автоматическим колдунством меняющая ключевые слова на более привлекательные. Целую большую телегу дал рекламопроизводитель:
ФАС пригласил директора этого сервиса, чтобы он рассказал, что за чудо у него такое, а он возьми и слей всю контору — все подмены пользователь настраивает сам😵
Будь на дворе 2025-й год, а не 2021-й, как в этом кейсе, во всем виноват был бы искусственный интеллект, а там поди докажи уже…
Эти коллеги очень заботились о своих клиентах — текущих и будущих. Рассылали им сообщения в Whatsapp с таким текстом (без согласия, разумеется, но ведь во благо!..):
Вот хочешь людям помочь, а тебя обвиняют в какой-то там недобросовестной конкуренции…
Ну что тут скажешь! Коллеги, не хулиганьте!
К новостям о боте: я сделала и обкатываю на практике 2021-го года свой RAG-pipeline, на наросшей практике 2025-го его дозакруглю. А это значит, что к концу недели, наверное, будет подращивание RAGа, а на следующей — всякие посты о том, как эта моя воронка вся работает.
Всем отличной рабочей недели, stay tuned and watchful!☕️
Как бы вы сформулировали главную проблему этого ролика? Да, это был ролик:
Звуковую информацию произносит женщина, показывая называемые по тексту овощи – капусту, хрен, тыкву, кабачок.
Призывать показывать хрен — непристойно? Непристойно, но главное, чего нельзя было делать, это формировать негативное отношение к социальной группе «кредиторы». Занимательно, что ответственные коллеги пытались перестраховаться путем направления в ФАС запроса на проверку рекламы до её публикации, но зачем делать сегодня работу, которую можно сделать завтра и записать её себе в 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-файлов
Напомню, что за этими тремя буквами на практике стоят два файла: таблица в формате
Мера никуда негодная, и надо было переезжать. Переезд случился в самое очевидное место — на Persistent disk моего сервера, где хранятся логи и база данных.
Почему я сразу там не разместилась? Это хороший вопрос, место же очевидное. Именно это я пыталась сделать перед релизом, но что-то не задалось, и консультировавшая меня AI Studio сказала, что это невозможно. Предлагаю назначить виноватой именно её,а не меня, которая наверняка замусорила контекст чата, в котором происходила консультация 😀
Короче, переезд состоялся и был мучительным. На Github можно увидеть какие-то странные истерические полуночные коммиты, попозже их потру (кстати, кто-то поставил еще звездочку, спасибо❤️ !).
Я теперь могу дать несколько советов (вряд ли они кому-то понадобятся и запомнятся сейчас, просто помните, что я собрала фейл-бинго и могу что-то знать):
🤩 если вам понадобится разместить что-то в Google Drive в качестве промежуточного хранилища, не забудьте отжать в настройках галочку, которая переводит файлы в гугловские среды типа sheets;
🤩 если вам понадобится преобразовать ссылки доступа к файлу на Драйве в ссылку для прямого скачивания — делайте это нейросетью, не доверяйте глазам своим и рукам своим;
🤩 ВСЕГДА надо тестировать локально. Пока вам кажется, что в вашем csv ничего не поменялось, в нем ПОЧЕМУ-ТО поменялись разделители с запятой на точку с запятой;
🤩 если основной рабочий файл с кодом не может запуститься и входит в безнадежную петлю попыток запуска, то в shellе вашего сервера вы ничего не сможете написать, чтобы хотя бы выяснить в чем проблема (и придется делать странные коммиты в коде).
В качестве вишенки на торте аутпут первого предобработочного промпта стал выдаваться на английском языке (сам промпт на русском и аутпут до вчера тоже всегда был на русском).
Просто какая-то комедия, но со всем удалось справиться😀 😐
Надеюсь, ваш поздний вечер пятницы был приятнее моего и хороших вам выходных!
Все это подрастание сопровождалось двумя большими процессами:
Делала я это вместе с Claude. И вроде бы все скорее нормально, но так или иначе воронка даёт течь буквально в каждой сессии)) Это несовершенство, с которым я решила смириться: скоро уже практика, стоящая добавления в базу, кончится, занимаюсь я этим примерно раз в месяц, поэтому нет смысла бороться за абсолютную бесперебойность.
Напомню, что за этими тремя буквами на практике стоят два файла: таблица в формате
csv с размеченными кейсами и корпус эмбеддингов в формате npy (подробнее об этом здесь). Они лежали на Github в приватном репозитории, где есть ограничения по размеру файлов (до 25 МБ). Еще в прошлый раз npy-файл перестал помещать в эти 25 МБ, и в качестве временной меры нужно было менять уровень точности (float) у эмбеддингов (в комменты скину пояснение от Perplexity, что это значит). Мера никуда негодная, и надо было переезжать. Переезд случился в самое очевидное место — на Persistent disk моего сервера, где хранятся логи и база данных.
Почему я сразу там не разместилась? Это хороший вопрос, место же очевидное. Именно это я пыталась сделать перед релизом, но что-то не задалось, и консультировавшая меня AI Studio сказала, что это невозможно. Предлагаю назначить виноватой именно её,
Короче, переезд состоялся и был мучительным. На Github можно увидеть какие-то странные истерические полуночные коммиты, попозже их потру (кстати, кто-то поставил еще звездочку, спасибо
Я теперь могу дать несколько советов (вряд ли они кому-то понадобятся и запомнятся сейчас, просто помните, что я собрала фейл-бинго и могу что-то знать):
В качестве вишенки на торте аутпут первого предобработочного промпта стал выдаваться на английском языке (сам промпт на русском и аутпут до вчера тоже всегда был на русском).
Просто какая-то комедия, но со всем удалось справиться
Надеюсь, ваш поздний вечер пятницы был приятнее моего и хороших вам выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥3😁3
Кто смотрел презентацию с моего первого спикерского инцидента, тот может помнить эту картинку — воронку, визуализирующую пайплайн моей работы над базой знаний. За прошедший месяц я собрала его в единый код в ноутбуке на JupyterLab, и он отработал уже раз 6, поэтому нельзя более тянуть, и пора открыть серию постов #делайRAG обо всей внутренней кухне этого процесса. И начать логично с самого верха воронки — скрапинга.
Скрапинг (кто-то говорит скрейпинг) — это автоматизированное извлечение информации с сайтов, то есть скрипт «читает» страницы сайтов, но примерно в стотыщ раз быстрее, чем это делает человек, попутно вытягивая их них всякие нужные данные. Это была первая вайбкодинговая задачка, которую я себе поставила и которую радостно очень быстро выполнила, и это задачка, которая может быть актуальна многим юристам, в том числе не собирающимся делать ни RAGов, ни тем более ботов. И я, знаете ли, могу даже дать некоторые, как мне кажется, полезные советы — они будут в конце.
Я попросила Claude описать функциональность скрапера как-то кратко, но максимально по сути, и он выдал «интеллектуальный веб-краулер с функцией инкрементального обновления данных».😵 Имеется в виду, что скрапер умеет собирать дела за указанный пользователем временной период, причем как смотрит новые (отсутствующие в базе), так и отслеживает появление новых решений в уже известных делах.
Скрапер делает поисковые запросы по 4 фильтрам, затем выкачивает тексты решений в txt и попутно ведет лог с записями всех caseID и относимых к ним docID. Это если кратко, более подробно расписанные этапы для особо любопытных прикладываю в pdf-аттаче, также там всякие скриншоты с анализом проблемных мест в базе ФАС.
Анализировать проблемные места сайтов, с которых вы хотите что-то скрапить — важно, если вам нужна достаточно полная база без мусора. Вот несколько бутылочных горлышек, с которыми пришлось поработать (причина у них по сути одна — неконсистентное ведение базы знаний, пополняют-то её люди):
🤩 выше говорила, что поиск ведется по 4 параметрам, а именно 1)
Подавляющее большинство проходит в параметре «процедура», но далеко не все: рекламный кейс может заваляться и по другим параметрам (например, здесь, в параметре
🤩 в подавляющем большинстве дел текст решения выкладывается на странице, и скрапер его собирает и создает на моем компьютере txt-файл. Но некоторые УФАСы выкладывают тексты решений в других форматах, которые подвешивают в карточку отдельным аттачментом, оставляя основной текст страницы пустым или заполненным какой-нибудь фразой.
Это остается проблемой, скрапинг таких аттачей я пока не делала. Но опытным путем было установлено, что если в Gemini на разметку послать написанный ерундовый текст, то она может из этого сочинить целое дело, поэтому этот нюанс учтен в пайплайне дальше - на отправку по API на разметку идут только тексты из файлов от 100 кб.
🤩 я докопала уже до 2018-го года и, кажется, ФАС начал более или менее консистентно вести базу, используя UUID с какого-то момента в 2018-м, потому что что-то там точно поменялось в названиях страничек с решениями.
Думаю пока, что с этим делать, много ли там вообще чего-то ценного для RAGа с учетом того, что законодательство за последние 7 лет достаточно сильно поменялось.
Ну и советы с обещанным аттачем ниже!
Скрапинг (кто-то говорит скрейпинг) — это автоматизированное извлечение информации с сайтов, то есть скрипт «читает» страницы сайтов, но примерно в стотыщ раз быстрее, чем это делает человек, попутно вытягивая их них всякие нужные данные. Это была первая вайбкодинговая задачка, которую я себе поставила и которую радостно очень быстро выполнила, и это задачка, которая может быть актуальна многим юристам, в том числе не собирающимся делать ни RAGов, ни тем более ботов. И я, знаете ли, могу даже дать некоторые, как мне кажется, полезные советы — они будут в конце.
Я попросила Claude описать функциональность скрапера как-то кратко, но максимально по сути, и он выдал «интеллектуальный веб-краулер с функцией инкрементального обновления данных».
Здесь нужно небольшое пояснение
ФАС структурирует базу данных (по крайней мере в части рекламных дел) так: создает карточку дела, которой присваивается UUID (здесь про это). Внутри карточки с делом размещаются документы по делу отдельными страничками (определение о возбуждении, решение, предписание и т.д). Соответственно, в разных моментах времени эта карточка может быть пустой или содержать разное количество документов. Меня для целей сборки RAGа интересуют только карточки с решениями. У каждой карточки с документов есть свой UUID (в моих файлах он идет как docID).
Скрапер делает поисковые запросы по 4 фильтрам, затем выкачивает тексты решений в txt и попутно ведет лог с записями всех caseID и относимых к ним docID. Это если кратко, более подробно расписанные этапы для особо любопытных прикладываю в pdf-аттаче, также там всякие скриншоты с анализом проблемных мест в базе ФАС.
Анализировать проблемные места сайтов, с которых вы хотите что-то скрапить — важно, если вам нужна достаточно полная база без мусора. Вот несколько бутылочных горлышек, с которыми пришлось поработать (причина у них по сути одна — неконсистентное ведение базы знаний, пополняют-то её люди):
Управление - Управление контроля рекламы и недобросовестной конкуренции, 2) Процедура - Реклама, 3) Сфера - Рынок рекламы, 4) Доп. критерии - реклама. Подавляющее большинство проходит в параметре «процедура», но далеко не все: рекламный кейс может заваляться и по другим параметрам (например, здесь, в параметре
процедура указано «КоАП», а я по нему не проверяю).Это остается проблемой, скрапинг таких аттачей я пока не делала. Но опытным путем было установлено, что если в Gemini на разметку послать написанный ерундовый текст, то она может из этого сочинить целое дело, поэтому этот нюанс учтен в пайплайне дальше - на отправку по API на разметку идут только тексты из файлов от 100 кб.
Думаю пока, что с этим делать, много ли там вообще чего-то ценного для RAGа с учетом того, что законодательство за последние 7 лет достаточно сильно поменялось.
Ну и советы с обещанным аттачем ниже!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3
FAS BD scraper_details.pdf
1.1 MB
Материалы сайта ФАС России являются общедоступными и открытыми для использования в некоммерческих (личных, ознакомительных, образовательных, исследовательских и аналогичных) целях.
Кстати, хотите 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, но самым настоящим счастьем была совершенно неожиданная встреча с моим добрым университетским другом Никитой, который живет и работает в Екатеринбурге. Университетские связи действительно какие-то невероятно крепкие, им не вредит ни время, ни расстояние.
Пока меня не понесло дальше в лирику о жизненных путях, сворачиваюсь и желаю всем отличной пятницы и выходных!❤️
#ботоводство
(пишите, если нужна инструкция, как с минимальными временными тратами такое сделать))
Короче, на бизнес-дейтинге я поговорила с 5 людьми, 3 из 5 сказали, что монетизировать конечно же нужно, причем были и занимательные идеи. Один эксперт с техническим профилем назвал мне всякие словосочетания, которые могут мне помочь преодолеть пороки семантического поиска по базе. И еще девушка дала довольно интересный, но не бесспорный тейк о том, что маркетологу такой инструмент, как мой ботец, не нужен — ему нужен
Потом была питч-сессия финалистов, и каково было мое удивление, когда вышедшие на сцену спикеры стали рассказывать
о телеграм-боте, проверяющем рекламу, у которого есть база знаний, а ЦА — юристы, блогеры, предприниматели. Знакомо звучит, согласны, узнали?)) вот уж воистину идеи витают в воздухе. Удивительно, боту нет и 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 и зачем это нужно, читайте дальше📥
Промпт ставит нейросети несколько задач по анализу кейсов:
Задача 1: Первичная проверка релевантности ФЗ О рекламе
Поскольку, как вы помните, базу данных ФАС заполняют люди, а скрапинг идет по 4 фильтрам, в этих фильтрах оседает всякое залётное, и прежде всего из дел по госзакупкам. Нейросеть первым делом определяет, относится ли дело вообще к ФЗ О рекламе, и если нет, то модель должна вернуть минималистичный JSON с флагом
Если вы знаете, что такое JSON и зачем это нужно — проходите-не-задерживайтесь📥
Задача 2: Оценка ценности дела для RAG-базы
Прошедшие первичный отсев герои попадают на, собственно, разметку. В этой задаче у меня два основных соображения:
1. мой бот проверяет только субстантивную часть, а всё, что касается каналов размещения и прочих нюансов реального мира (лицензии, соответствие рекламным тезисам реальному положению дел) — не трогает. Поэтому и в базе знаний этих дел мне нужно (забегая вперед скажу, что соотношение «субстантивные»-«технические» в практике делится год от года примерно 60/40 в пользу то одной категории, то второй).
2. У меня есть ни на чём особенном не обоснованное убеждение, что хорошему RAGу по нишевому юридическому вопросу не требуются стотыщмильонов документов. Я могу быть не права, конечно. Но есть ощущение, что качество ответов не станет сильно лучше, если у меня в базе будут сотни написанных под копирку дел о том, что слова «парилки ашкудишки» на окне табачной лавки являются запрещенной рекламной табака. Нужно всякое МЯСО, где УФАСы проявляли #мудростьФАС или иным образом зажигали по всяким тонким, интересным, неочевидным вопросикам, за которые мы так любим рекламное право. Вот без этого прям никак, без этого можно вообще ни за какие 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-запросы, там есть любопытные выстраданные решения.
А зачем мне нужны все эти баллы — будет в посте про этап ручного отсмотра (то есть в следующем).
Задача 3: Структурированное извлечение данных
После оценки нейросеть извлекает ключевую информацию и стряпает из неё JSON. Моделька вытягивает название УФАСа (раньше это делалось скриптом, но при сборке пайплайна кое-что отвалилось и пришлось заставлять модель), информацию о нарушителе и отрасли, в которой он работает, детальное описание содержания рекламы с прямыми цитатами её описания, платформу размещения, суть нарушения, аргументацию ФАС с сильными цитатами из решения, а также список нарушенных норм (пункт-часть-статья) ФЗ О рекламе. Смотрите также в аттаче примерчики.
Испытываю уже сожаление по поводу того, что дату принятия решения не вытаскивала все это время, ведь у меня появилось много новых идей, что я могла бы со всей этой инфой делать — и для работы, и для радости. Но дело поправимое!
Что я со всеми эти JSONами делаю — в следующий раз. Не забудьте поглядеть в аттач, там sneak peaks и в промпт, и в JSONы, и в самую святая святых — базу знаний. И некоторое занудство о работе кода, направляющего API-запросы, там есть любопытные выстраданные решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥4👍1
Написала как бы полезную колонку, вежливо приглашающую в конце попользовать бот, на некогда славном портале vc.ru. Опять же данные статистические, становящиеся заметными при работе над базой знаний, куда-то можно пристроить.
Если у вас вдруг завалялся там аккаунт, буду рада вашей поддержке в виде лайка-коммента🥺 очень интересно, придёт ли оттуда кто-то в бот или сюда. Вероятно, что нет, ведь короткие посты писать я не умею, а зазывание в бот в самом конце. Но всё равно есть ощущение, что колонка на VC — это необходимый к выполнению ритуал, ты не думаешь, просто делаешь.
Какие вообще новости, какие планы? #ботоводство Ближайшая большая задача, вызывающая прокрастинацию такого масштаба, что я досмотрела второй сезон Отчаянных домохозяек — это отладка работы с логами (пользовательскими данными). Она пока выглядит тупой их выгрузкой из диска, собиранием плохим скриптом в глупую таблицу с неактуальными колонками. Пока даже лень подумать, что из них и в каком виде я хочу видеть.
И вообще задач очень много: и практику за 2019-2020 просеять, и датасет собрать с какой-то аналитикой по нему, и вообще хочется углубиться в какую-то матчасть RAGостроительства применительно к юридическим разным задачам. Да и не все заявленные в самом начале планы ещё выполнены. Забавно, как даже такие маленькие скромные проектики, как этот, генерят своим существованием необходимость всё время шуршать.
На этой неделе сфокусируюсь на одном — подготовке небольшого выступления для кое-какого мероприятия: с такими вещами сильно не попрокрастинируешь. Желаю всем на этой неделе энергии, а если её нет — поберечь себя без особых угрызений совести❤️
Если у вас вдруг завалялся там аккаунт, буду рада вашей поддержке в виде лайка-коммента
Какие вообще новости, какие планы? #ботоводство Ближайшая большая задача, вызывающая прокрастинацию такого масштаба, что я досмотрела второй сезон Отчаянных домохозяек — это отладка работы с логами (пользовательскими данными). Она пока выглядит тупой их выгрузкой из диска, собиранием плохим скриптом в глупую таблицу с неактуальными колонками. Пока даже лень подумать, что из них и в каком виде я хочу видеть.
И вообще задач очень много: и практику за 2019-2020 просеять, и датасет собрать с какой-то аналитикой по нему, и вообще хочется углубиться в какую-то матчасть RAGостроительства применительно к юридическим разным задачам. Да и не все заявленные в самом начале планы ещё выполнены. Забавно, как даже такие маленькие скромные проектики, как этот, генерят своим существованием необходимость всё время шуршать.
На этой неделе сфокусируюсь на одном — подготовке небольшого выступления для кое-какого мероприятия: с такими вещами сильно не попрокрастинируешь. Желаю всем на этой неделе энергии, а если её нет — поберечь себя без особых угрызений совести
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤4👍2
Вчера была на митапе Moscow legal hackers на тему культуры внедрения ИИ в юридической функции, вернулась домой необычно заряженная, почти вприпрыжку. Уровень спикеров и масштаб проделанной ими работы очень впечатляющий, не могу подобрать другого слова.
3 консалтинга, 3 инхауса, и относительно небольшие компании, и гиганты рынка показали, что все всем известные бутылочные горлышки внедрения ИИ в наш консервативный домен вполне преодолимы.
Хочется зафиксировать мои личные #keytakeaways и рефлексию:
🤩 У всех инхаус-спикеров успешно внедренный ИИ в юр.функции — это реализация поставленной c-level руководством задачи этим заниматься в рамках выполнения общекомпаниевых статегических задач.
В общем-то это самоочевидно, только с c-levelа может прийти нормальная мотивация и, разумеется, деньги.
🤩 Внедрение предполагает оптимизацию имеющихся и выработку новых процессов, а также менеджмент других затронутых по каскаду смежных процессов. И это «процессостроительство», разумеется, не новая область человеческой деятельности, у неё есть давно отработанные методы реализации.
Особенно классно, если в компании уже есть опыт внедрения чего бы то ни было подобного и люди, умеющие этим заниматься (то бишь та самая культура внедрения?..).
🤩 У половины спикеров в работе компании помимо стандартной конфиденциальной/коммерческой информации есть и охраняемые законом тайны, поэтому у всех ИИ внедрен on prem (они же локальные, они же private LLM).
И, видимо, не так всё это ужасно плохо с нормальными базами знаний и файн-тьюнингом. И не так драматически дорого по железу, как об этом часто говорят (с другой стороны, коллеги не делились уровнем удовлетворенности и метриками качества ответов, хотя как их сделать — та еще загадка).
🤩 Организационная готовность юр.функции — еще один кусочек пазла, без которого ничего не сложится. Курированные базы знаний и knowledge management важны и интересны как деятельность сами по себе, но много ли кто в инхаусе этим занимается? А в плане внедрения это просто обязательная домашка, без которой можно разве что прикрутить бестолкового чат-бота с его родным датасетом и простой суммаризатор/пересказчик текстов.
🤩 Людей нужно учить этим всем пользоваться, иначе инвестиции и потраченные организационные усилия были кинуты на мертворожденную задачу.
«Учить» еще при этом так, чтобы это не воспринималось как дополнительная неоплачиваемая нагрузка, а с донесением ценности и пиететом к какой-то усредненной learning capacity занятого работой сотрудника.
Надеюсь, читатели канала поняли, что я периодически занимаюсь тем, что осознаю тот факт, что у велосипедов в среднем два колеса, поэтому если мои выводы покажутся банальными и самоочевидными — приглашаю сорвать покровы и рассказать свои пушкобомбовые инсайты по теме в комментариях!
3 консалтинга, 3 инхауса, и относительно небольшие компании, и гиганты рынка показали, что все всем известные бутылочные горлышки внедрения ИИ в наш консервативный домен вполне преодолимы.
Хочется зафиксировать мои личные #keytakeaways и рефлексию:
В общем-то это самоочевидно, только с c-levelа может прийти нормальная мотивация и, разумеется, деньги.
Особенно классно, если в компании уже есть опыт внедрения чего бы то ни было подобного и люди, умеющие этим заниматься (то бишь та самая культура внедрения?..).
И, видимо, не так всё это ужасно плохо с нормальными базами знаний и файн-тьюнингом. И не так драматически дорого по железу, как об этом часто говорят (с другой стороны, коллеги не делились уровнем удовлетворенности и метриками качества ответов, хотя как их сделать — та еще загадка).
«Учить» еще при этом так, чтобы это не воспринималось как дополнительная неоплачиваемая нагрузка, а с донесением ценности и пиететом к какой-то усредненной learning capacity занятого работой сотрудника.
Надеюсь, читатели канала поняли, что я периодически занимаюсь тем, что осознаю тот факт, что у велосипедов в среднем два колеса, поэтому если мои выводы покажутся банальными и самоочевидными — приглашаю сорвать покровы и рассказать свои пушкобомбовые инсайты по теме в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥5👍2
Воскресно-лирическое
В пятницу Рунетлекс Академия устроила замечательный выпускной вечер для завершивших курс по использованию нейросетей в работе юриста.
Я сама закончила второй поток, что был в мае-июне, и именно после него решила делать бота. Без курса я бы даже не то что не решилась бы, а у меня просто не возникло вообще такой идеи. Те самые три буквы, вокруг которых существует канал и бот(RAG, если вдруг кто не понял…) , я просто никогда в глаза не видела до курса, и тем более мне не приходило в голову ещё и кодить с нейросетями. Вот настолько курс расширил границы моего познания, вот такое ускорение дал на абсолютно ровном месте.
Прошло уже три потока, и на третьем я была ментором. Менторы посильно подсказывают студентам курса что-то по материалу и организации, дают искорку движухе в чате потока и чатах вебинаров, поддерживают студентов в стрессовые моменты. Вроде бы просто пишешь в чатиках, а потом мама курса, Ксения Даньшина, зовёт нас вместе с командой Академии и спикерами выйти к студентам🥰 🥰
Будет четвертый поток — уже скоро, в ноябре. Я там тоже буду менторить. Если вы вдруг давно смотрели на курс, то не могу не посоветовать: вижу воочию, как он развивается, крепнет и становится всё круче, сохраняя при этом душевность и доступность. По моему опыту хождения на всякие повышения квалификации, это самый необычный образовательный продукт на рынке юр.образования. Если вам нужны детали о курсе, напишите мне в личку или комментарии🙂
И про выпускной еще скажу, что я мало когда в своей жизни получала столько поддерживающей обратной связи, как в этот раз по теме бота. У меня сложно с принятием комплиментов, на самом деле, но когда мне на следующий день написала добрые слова экс-служащая ФАС, я просто отлетела от радости! Да и вообще знать, что кто-то реально поделкой пользуется на пользу себе — становится не жалко всех этих вайбкодинговых мучений.
Вот. Спасибо всем причастным за этот классный пятничный вечер!❤️
В пятницу Рунетлекс Академия устроила замечательный выпускной вечер для завершивших курс по использованию нейросетей в работе юриста.
Я сама закончила второй поток, что был в мае-июне, и именно после него решила делать бота. Без курса я бы даже не то что не решилась бы, а у меня просто не возникло вообще такой идеи. Те самые три буквы, вокруг которых существует канал и бот
Прошло уже три потока, и на третьем я была ментором. Менторы посильно подсказывают студентам курса что-то по материалу и организации, дают искорку движухе в чате потока и чатах вебинаров, поддерживают студентов в стрессовые моменты. Вроде бы просто пишешь в чатиках, а потом мама курса, Ксения Даньшина, зовёт нас вместе с командой Академии и спикерами выйти к студентам
Будет четвертый поток — уже скоро, в ноябре. Я там тоже буду менторить. Если вы вдруг давно смотрели на курс, то не могу не посоветовать: вижу воочию, как он развивается, крепнет и становится всё круче, сохраняя при этом душевность и доступность. По моему опыту хождения на всякие повышения квалификации, это самый необычный образовательный продукт на рынке юр.образования. Если вам нужны детали о курсе, напишите мне в личку или комментарии
И про выпускной еще скажу, что я мало когда в своей жизни получала столько поддерживающей обратной связи, как в этот раз по теме бота. У меня сложно с принятием комплиментов, на самом деле, но когда мне на следующий день написала добрые слова экс-служащая ФАС, я просто отлетела от радости! Да и вообще знать, что кто-то реально поделкой пользуется на пользу себе — становится не жалко всех этих вайбкодинговых мучений.
Вот. Спасибо всем причастным за этот классный пятничный вечер!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥18🤩5
Раз-в-месяцевый #RAG_expansion! Прибыло 3️⃣ 6️⃣ 3️⃣ кейса, и теперь в базе 1️⃣ 8️⃣ 2️⃣ 5️⃣ решений. Уже выглядит весьма солидно! С определением охваченного временного периода теперь правда непонятно. Я вроде бы обрабатывала то, что наскрапилось за указанный в фильтрах период 01.01.2020–31.08.2020, но в выборке много дел за 2019-й. Варианта здесь два: либо ФАС в 20-м выложил многое за 19-й, либо я что-то накосячила в своём пайплайне.
Вместе с пополнением базы произошла также смена эмбеддинговой модели: в начале октября Гугл любезно сообщил, что у меня есть месяц для переезда на их новую суперскую cutting-edge модельку
Определилась со своими планами по RAGу для этого проекта:
🤩 отсмотрю еще то, что у меня отскраплено за 2019-й и перестану копать вглубь;
🤩 периодически буду собирать копящуюся from now on практику, а так же то, что относится к периодам с 2019-го, но выложили только сейчас;
🤩 постараюсь победить те дела, в которых решения выкладывались не текстом на странице, а аттачами (об этой проблеме здесь).
Думаю, в итоге получится 2500-3000 дел под бот: оптимизированная структурированная база, задизайненная под конкретные задачи. Планы с кластером руководств ФАС и небольшим reranking-ом тоже в силе. И открытый датасет из всех дел тоже будет! Уложусь к декабрю, ваши ставки?🤪
Еще я сегодня кое-где представила себя человеком, начинающим исследовать возможные стратегии и методики построения RAG-систем в юридическом домене. Надо бы объявить об этом и здесь! У меня по этой теме за последнее время случилось много интересных прозрений, и, по всей видимости, у канала начнется большее тематическое разнообразие (не разбегайтесь сразу, пожалуйста).
И на ночь короткая заметка на полях про вычитанные кейсы. Еще когда только я начала собирать базу знаний, я пошутила, что мы не думали-не гадали, а профеминистическая ячейка вон в питерском и ленобластном УФАСах засела: это на меня произвело впечатление несколько кейсов борьбы с объективацией женщин в рекламе. А дальше этого становилось всё больше, и вот в выборке, над которой я поработала к сегодняшнему экспеншену, из 900+ дел было не меньше трех-четырех десятков, где так или иначе пресекалась убогая сексистская реклама (вплоть до уровня использования слова «шкура»). И это 2019-2020й год!
Подумала шальную мысль, что аббревиатурой «ФАС» также пользуется некая обитающаяся за пределами РФ организация, признанная иноагентской и, не удивлюсь, если экстремистской. И у них Ф в названии отвечает за феминизм. Но оказалось, что ФАС, занимающийся конкретными делами на ниве борьбы с дискриминацией, литералли есть (и всегда был) у нас дома☕️
Вместе с пополнением базы произошла также смена эмбеддинговой модели: в начале октября Гугл любезно сообщил, что у меня есть месяц для переезда на их новую суперскую cutting-edge модельку
gemini-embedding-001, т.к. все предыдущие они перестанут поддерживать ради неё. Определилась со своими планами по RAGу для этого проекта:
Думаю, в итоге получится 2500-3000 дел под бот: оптимизированная структурированная база, задизайненная под конкретные задачи. Планы с кластером руководств ФАС и небольшим reranking-ом тоже в силе. И открытый датасет из всех дел тоже будет! Уложусь к декабрю, ваши ставки?
Еще я сегодня кое-где представила себя человеком, начинающим исследовать возможные стратегии и методики построения RAG-систем в юридическом домене. Надо бы объявить об этом и здесь! У меня по этой теме за последнее время случилось много интересных прозрений, и, по всей видимости, у канала начнется большее тематическое разнообразие (не разбегайтесь сразу, пожалуйста).
И на ночь короткая заметка на полях про вычитанные кейсы. Еще когда только я начала собирать базу знаний, я пошутила, что мы не думали-не гадали, а профеминистическая ячейка вон в питерском и ленобластном УФАСах засела: это на меня произвело впечатление несколько кейсов борьбы с объективацией женщин в рекламе. А дальше этого становилось всё больше, и вот в выборке, над которой я поработала к сегодняшнему экспеншену, из 900+ дел было не меньше трех-четырех десятков, где так или иначе пресекалась убогая сексистская реклама (вплоть до уровня использования слова «шкура»). И это 2019-2020й год!
Подумала шальную мысль, что аббревиатурой «ФАС» также пользуется некая обитающаяся за пределами РФ организация, признанная иноагентской и, не удивлюсь, если экстремистской. И у них Ф в названии отвечает за феминизм. Но оказалось, что ФАС, занимающийся конкретными делами на ниве борьбы с дискриминацией, литералли есть (и всегда был) у нас дома
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Делай RAG
Кто смотрел презентацию с моего первого спикерского инцидента, тот может помнить эту картинку — воронку, визуализирующую пайплайн моей работы над базой знаний. За прошедший месяц я собрала его в единый код в ноутбуке на JupyterLab, и он отработал уже раз…
👍5❤4 3🔥2
Новый цикл общеобразовательно-рисерческих постов на канале под гордым названием #rise_of_RAG я начну с неожиданного вопроса: что вы знаете о Бразилии? Что бы вы о Бразилии ни знали ранее, сегодня вы узнаете, что в бразильском Сенате работают юристы-гигаумники, которые куют своими руками будущее права. Вот такой кликбейтный зачин!
Как многие читатели уже знают, я не умею писать короткие посты. На этот раз я переплюнула вообще все собственные ожидания от самой себя, и разразилась лонгридом — вот ссылка на Телеграф.
Этот материал в основном является обзором нескольких статей из стремительно накапливающегося корпуса публикаций по теме методов составления баз знаний для технологии Retrieval-Augmented Generation. При описании методов я пересказываю идеи авторов, свою оценку полезности не даю и перепроверить конкретными метриками тоже, разумеется, не могу. Хотя возникают шальные мысли что-то попробовать и некоторые эксперименты поставить.
О чем будет речь? О трёх подходах, эволюционировавших из обычных векторных RAGов — плоских или, как их еще называют, «наивных». Первый - Multi-Layered Embedding-Based Retrieval (MLR), многоуровневый или иерархический подход. Второй - GraphRAG, графовый. Третий — SAT-GraphRAG (Structure-Aware Temporal GraphRAG, структурно-темпоральный подход). В статье рассказываю о том, как они реализованы технологически, какие задачи решают и в чём они, по мнению авторов, лучше других.
Но этот лонгрид — не только пересказ статей. Вообще, если не любите вдаваться в технические подробности, это всё можно будет скипнуть и читать только последний раздел. В начале я делюсь своими выработанными практикой догадками о минусах наивных RAG, а в конце пытаюсь выявить первые принципы будущей методологии составления баз знаний для RAG-технологии, возможные области применения разных подходов и высказать некоторые свои гипотезы о нашем с вами будущем в свете всего этого.
Мне очень интересно, что вы об этом всём думаете. Я лично чувствую
Приятного чтения!
Как многие читатели уже знают, я не умею писать короткие посты. На этот раз я переплюнула вообще все собственные ожидания от самой себя, и разразилась лонгридом — вот ссылка на Телеграф.
Этот материал в основном является обзором нескольких статей из стремительно накапливающегося корпуса публикаций по теме методов составления баз знаний для технологии Retrieval-Augmented Generation. При описании методов я пересказываю идеи авторов, свою оценку полезности не даю и перепроверить конкретными метриками тоже, разумеется, не могу. Хотя возникают шальные мысли что-то попробовать и некоторые эксперименты поставить.
О чем будет речь? О трёх подходах, эволюционировавших из обычных векторных RAGов — плоских или, как их еще называют, «наивных». Первый - Multi-Layered Embedding-Based Retrieval (MLR), многоуровневый или иерархический подход. Второй - GraphRAG, графовый. Третий — SAT-GraphRAG (Structure-Aware Temporal GraphRAG, структурно-темпоральный подход). В статье рассказываю о том, как они реализованы технологически, какие задачи решают и в чём они, по мнению авторов, лучше других.
Но этот лонгрид — не только пересказ статей. Вообще, если не любите вдаваться в технические подробности, это всё можно будет скипнуть и читать только последний раздел. В начале я делюсь своими выработанными практикой догадками о минусах наивных RAG, а в конце пытаюсь выявить первые принципы будущей методологии составления баз знаний для RAG-технологии, возможные области применения разных подходов и высказать некоторые свои гипотезы о нашем с вами будущем в свете всего этого.
Мне очень интересно, что вы об этом всём думаете. Я лично чувствую
что-то, копая в этом направлении 🙂 правильных ответов нет, никто не знает, как надо, никто не знает, действительно ли всё это нам будет нужно. Но это ужасно интересная область приложения интеллекта, и мне очень хочется, чтобы вокруг неё сложилась дискуссия.Приятного чтения!
Telegraph
Rise of RAG: от плоских векторов к темпоральным графам
Что вы знаете о Бразилии? Что бы вы о Бразилии ни знали ранее, сегодня вы узнаете, что в бразильском Сенате работают юристы-гигаумники, которые куют своими руками будущее права Хоть подзаголовок получился пафосным и кликбейтным, но, думаю, дальше он оправдает…
❤12👍5🔥4
Возможно, новые подписчики не отлистывали до старых постов, и образ автора канала не ассоциируется с каким-то антропоморфным)) это я, всем приветик ☕
Подоспели фотки вот отсюда! #spectacle
Подоспели фотки вот отсюда! #spectacle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤6🤩1 1
Хочется завершить начатый #делайRAG рассказ про пайплайн — помимо сегодняшнего будет еще два поста о последнем шаге с эмбеддингами и заключительный.
Сегодня хочу рассказать об одном по сути этапе ручной проверки, но сборка таблиц — технически отдельный большой и не простой этап, который у меня, кажется, ни за одну сессию не сработал нормально🙂
После разметки Gemini возвращает JSONы, в которых есть метки «session_ID». Этот ID появляется еще на первом этапе (скрапинге): это результат моих попыток сделать многоразовый пайплайн, в рамках которого самостоятельные сессии обрабатываются отдельно от других (грубо говоря, я сделала скрапинг практики за 2020-й год, и все дальнейшие шаги должны исполняться в отношении только этой пачки кейсов). В общем, сколько у меня в итоге было субститутных костыльных кодов, которые дособирали эти пачки — стыдно признаться.
Центральная функция этой части кода — собрать таблицу с релевантными для RAG (субстантивными) делами. Каждый ключ в JSONе становится колонкой таблицы (смотрите аттач со скринами в комментарии — этот аттач в отличие от предыдущих полезно посмотреть тем, кто не очень разбирается во всех этих жисонах, там наглядно). Затем таблица с релевантными делами дополняется скриптом тремя колонками:
🤩 колонка с полным текстом решения ФАС из папки, в которую помещаются все txt с решениями на этапе скрапинга;
🤩 колонка с caseID. Зачем это нужно — это довольно скучно, вынесла это в аттач;
🤩 колонка с «тематическими тегами».
Тематические теги — это описание статей из ФЗ «О рекламе» максимально короткими ключевыми словами по типу «некорректное_сравнение», «БАД_дисклеймер».
Основной функционал этих тегов — они помогают оценивать равномерное наполнение базы знаний кейсами разной тематики (чтобы не было перекоса, например, в рекламу финансовых услуг, и было побольше решений по темам, которые достаточно редко затрагиваются (например, правила о государственном языке)). У тегов есть еще и задел на будущее — они будут основой для reranking-а, который я планирую реализовать для повышения точности выдачи кейсов из базы, связью с кластером эмбеддингов для руководств ФАС, который я тоже хочу до Нового года всё же сделать.
Ну и затем я перехожу к ручному отсмотру. Делаю я его по нескольким причинам:
🤩 Нейросеть иногда плохо справляется с частью промпта, которая просит её считать нерелевантными дела, требующими наличия каких-то лицензий и разрешений, где содержание рекламы не совпало с реальностью. В каждом батче таких обязательно будет 20-30 дел, и, на мой взгляд, они не особо нужны для задачи, которую решает бот.
🤩 Нейросеть получает каждый новый кейс на рассмотрение без знания обо всех предыдущих, и ей невдомек, что база знаний распухнет от однотипных решений по фразе «мы лучше, чем ломбард!».
🤩 Мне просто это нравится! 🤗 Мне нравится рекламное право в целом, это расширяет мой профессиональный кругозор. Всё, что нейросеть оценивает на 6-9 баллов, как правило, довольно интересно смотреть.
🤩 Я искренне верю в то, что база знаний не должна быть свалкой документов, она требует кураторского подхода, и мои объемы не такие, чтобы всё отдавать на откуп нейросети.
Но нужно сказать, что вся эта система оценок действительно работает, и если лень, то можно и отдать всю задачу нейросети: просто смело брать из каждого батча дела от 5 баллов. Но и при мануальном отсмотре я полагаюсь на эти оценки: примерно с 5 баллов уже просматриваю по диагонали, подмечая только кейсы по редко освещаемым в практике вопросам, даже если там простая правовая позиция, и «поднимаю» им оценку. В принципе я читаю только колонку violation_summary, иногда смотрю аргументы ФАС с цитатами. Количество осечек при суммаризации минимальное, и я каждый раз радуюсь тому, как нейросети упростили такой тип задач.
Итогом этого этапа является то, что я беру и руками копирую строки с оценкой выше 4 или 3 (зависит от батча) и вставляю в файл с основной базой, святая святых, RAG.csv. Это тоже можно делать скриптом, но мне не лень😊
Всё! Всех с понедельничком, отличной недели, друзья☕️
Сегодня хочу рассказать об одном по сути этапе ручной проверки, но сборка таблиц — технически отдельный большой и не простой этап, который у меня, кажется, ни за одну сессию не сработал нормально
После разметки Gemini возвращает JSONы, в которых есть метки «session_ID». Этот ID появляется еще на первом этапе (скрапинге): это результат моих попыток сделать многоразовый пайплайн, в рамках которого самостоятельные сессии обрабатываются отдельно от других (грубо говоря, я сделала скрапинг практики за 2020-й год, и все дальнейшие шаги должны исполняться в отношении только этой пачки кейсов). В общем, сколько у меня в итоге было субститутных костыльных кодов, которые дособирали эти пачки — стыдно признаться.
Центральная функция этой части кода — собрать таблицу с релевантными для RAG (субстантивными) делами. Каждый ключ в JSONе становится колонкой таблицы (смотрите аттач со скринами в комментарии — этот аттач в отличие от предыдущих полезно посмотреть тем, кто не очень разбирается во всех этих жисонах, там наглядно). Затем таблица с релевантными делами дополняется скриптом тремя колонками:
Тематические теги — это описание статей из ФЗ «О рекламе» максимально короткими ключевыми словами по типу «некорректное_сравнение», «БАД_дисклеймер».
Основной функционал этих тегов — они помогают оценивать равномерное наполнение базы знаний кейсами разной тематики (чтобы не было перекоса, например, в рекламу финансовых услуг, и было побольше решений по темам, которые достаточно редко затрагиваются (например, правила о государственном языке)). У тегов есть еще и задел на будущее — они будут основой для reranking-а, который я планирую реализовать для повышения точности выдачи кейсов из базы, связью с кластером эмбеддингов для руководств ФАС, который я тоже хочу до Нового года всё же сделать.
Ну и затем я перехожу к ручному отсмотру. Делаю я его по нескольким причинам:
Но нужно сказать, что вся эта система оценок действительно работает, и если лень, то можно и отдать всю задачу нейросети: просто смело брать из каждого батча дела от 5 баллов. Но и при мануальном отсмотре я полагаюсь на эти оценки: примерно с 5 баллов уже просматриваю по диагонали, подмечая только кейсы по редко освещаемым в практике вопросам, даже если там простая правовая позиция, и «поднимаю» им оценку. В принципе я читаю только колонку violation_summary, иногда смотрю аргументы ФАС с цитатами. Количество осечек при суммаризации минимальное, и я каждый раз радуюсь тому, как нейросети упростили такой тип задач.
Итогом этого этапа является то, что я беру и руками копирую строки с оценкой выше 4 или 3 (зависит от батча) и вставляю в файл с основной базой, святая святых, RAG.csv. Это тоже можно делать скриптом, но мне не лень
Всё! Всех с понедельничком, отличной недели, друзья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥1 1 1
Сегодня была на очень классной конференции HeadHunter по рекламе: все узнаваемые лица рекламного права, самые животрепещущие темы — и базовая база, и насущное, отличные спикеры. С первого же выступления пленарной сессии представителя УФАС по республике Башкортостан Рината Хасанова пошла дискуссионная энергия с подачи столпа российского рекламного права Дмитрия Григорьева. Как мне кажется, компетентная дискуссия, тем более с регулятором, — это ни что иное, как успех мероприятия.
Еще мне было особенно приятно услышать от профильных коллег, что о боте знают, он на слуху, им пользуются🥺 Получилось вынести с конференции #keytakeaways применительно к боту — нужно обязательно перепроверить, как он будет решать задачки в свете законодательных изменений (энергетики, например), и, возможно, раговать сам закон в актуальной редакции, и редакцию эту поддерживать. Так сказать, practice what you preach в плане качественных RAG-систем.
В свете всего этого есть ощущение, что я задолжала с рубрикой #мудростьФАС. Я не могла не посмотреть, что в моей базе есть от УФАС Башкирии: целых 33 кейса, и несколько примечательных дел по использованию ч. 5 ст. 7 Закона О рекламе, запрещающей умолчания о существенных обстоятельствах. Как я писала в своейне особо популярной, но, как мне кажется, весьма дельной колонке на VC, эта статья — это козырь в рукаве ФАС, который позволяет привлекать к ответственности за манипулятивную рекламу в отсутствие прямых законодательных запретов. Часто она используется для формирования практики, которая потом становится законом, как это произошло с рекламой юридических услуг по банкротству физических лиц. И вот где УФАС Башкирии увидело возможность прикрыть шальную рекламу этой статьёй:
🤩 лечение алкоголизма в одном ряду с услугами о гаданиях и приворотах. В газете «Мир вакансий» была размещена реклама с текстом «Гадания. Привороты. Снятие порчи. Лечение алкогольной зависимости», а рекламодательница пояснила, что все эти вещи она реализует с помощью карт Таро, а не предлагает медицинские услуги, как кто-то мог бы подумать. Реклама была признана ненадлежащей по причине (прямая цитата):
🤩 Не обошлось и без других способов подлечить население:
Признавайтесь, кто бывал в таких? Я бывала, мне там бабулиты советовали в телефоне не сидеть. Но УФАС Башкирии, хоть и не пишет об этом прямо, видимо, на стороне докмеда, потому что Комиссия отметила, что в рекламе содержится информация, ничем не подтвержденная и вводящая потребителей в заблуждение, так как доказательства положительного действия используемого при оказании услуг аппарата представлены не были.
🤩 И напоследок о финансовом здоровье — рекламировали «торгового робота», то есть программу «которая может использоваться для предоставления индивидуальных инвестиционных рекомендаций», а такие программы должны иметь аккредитацию ЦБ. Раз информации об аккредитации в рекламе не было, то и ч. 7 ст. 5 нарушилась. Конкретный текст рекламы не приводится, и сложно судить — действительно ли просто увидели формальное нарушение, или использовали его как удобный аргумент, чтобы предотвратить использование гражданами какой-то скамной истории. Возрадуемся, что такие боты, как мой, не требуют ничьей аккредитации! ☕️
Закруглю пост тем, что конференция была просто прекрасно организована в очень красивой локации, спасибо большое Юрию Донникову и его команде за такое полезное мероприятие. А еще сегодня день работника рекламной индустрии, не знаю, планировали ли организаторы, или так удачно совпало. Если совпало, то знак просто отличный!
Еще мне было особенно приятно услышать от профильных коллег, что о боте знают, он на слуху, им пользуются
В свете всего этого есть ощущение, что я задолжала с рубрикой #мудростьФАС. Я не могла не посмотреть, что в моей базе есть от УФАС Башкирии: целых 33 кейса, и несколько примечательных дел по использованию ч. 5 ст. 7 Закона О рекламе, запрещающей умолчания о существенных обстоятельствах. Как я писала в своей
«В данном случае осуществление услуг приворот, порча, снятие алкогольной зависимости на гадальных картах ТАРО может привести к формированию у граждан неверного представления о существе оказываемых услуг.»
«СОЛЯНАЯ ПЕЩЕРА. SPELEON. ВДОХНИ ЗДОРОВЬЕ ВСЕЙ СЕМЬЕЙ! Повышает иммунитет. Способствует профилактике частых простуд, гриппа, ЛОР заболеваний, заболеваний органов дыхания. Оказывает благоприятное воздействие при аллергии и астме. Очищает и омолаживает кожу. Снимает стресс и переутомление. Способствует улучшению сна. Очищает легки от табачного дыма.»
Признавайтесь, кто бывал в таких? Я бывала, мне там бабулиты советовали в телефоне не сидеть. Но УФАС Башкирии, хоть и не пишет об этом прямо, видимо, на стороне докмеда, потому что Комиссия отметила, что в рекламе содержится информация, ничем не подтвержденная и вводящая потребителей в заблуждение, так как доказательства положительного действия используемого при оказании услуг аппарата представлены не были.
Закруглю пост тем, что конференция была просто прекрасно организована в очень красивой локации, спасибо большое Юрию Донникову и его команде за такое полезное мероприятие. А еще сегодня день работника рекламной индустрии, не знаю, планировали ли организаторы, или так удачно совпало. Если совпало, то знак просто отличный!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6🔥5 1
Давно не было #commits. Только я начала заниматься наиболее приятными для меня делами, как вайб-кодинг с ноги ворвался обратно в мои будни (и выходные) 🤪 Я думала, что этот пост буду постить во вторник, но… впрочем, начну с приятного:
🤩 Ещё немного больше user-friendliness
Не все закоулки пользовательского пути оказались качественно освоенными! Теперь бот проверяет размер загруженного файла (раньше не проверял😊 и можно теперь 20 МБ лить), и если файл слишком большой, а также если формат неверный, то пользователь получает единое сообщение с кнопочкой, позволяющей попробовать ещё раз. Также в мои админские сообщения об ошибках пользователей теперь добавляется @юзернейм, чтобы я могла оперативно связаться с потерпевшим.
Мелочи, а приятно, и накодилось это всё тоже с полпинка — с первых промптов, на тесте ничего не упало, сразу запушила, в общей сложности минут за 40 этой ночью. Вот всегда бы так!
🤩 Аналитика логов
Я писала недавно, что работа с логами вызывает у меня приступы прокрастинации, но я собралась с духом и в общем-то с первого раза накодился код аж целого нового файла на Гитхабе —
Код написался-то с первого раза, но не с первого раза удалось сделать так, чтобы вся эта красота действительно работала каждый день в 20:00 по Московскому времени, поэтому этот файл успел обрасти уже собственным подробным логированием, а также логикой повтора попыток отправить отчёт в Telegram. Не хочется вдаваться в скучные подробности, но теперь я знаю, что такое cron job, daemon, что именно делает команда
Сохраняется интрига, придёт ли сегодня отчёт в 20:00. Ибо имеет место загадка дыры: отчёт не пришёл в четверг, когда эти изменения были впервые задеплоены (при этом создалась таблица), но пришёл вчера без какого-либо оконченного вмешательства с моей стороны (а ещё пытался отправиться около 17 часов)🙂
Следующий шаг — аналитика всей этой таблицы, нужно будет трогать палкой синтаксис pandas и разворачивать специальный ноутбук в Jupyter Lab, чтобы по-разному эту табличку крутить. Всё про вас узнаю, наконец!
А из отчётов, кстати, видно, что образовался костяк регулярных пользователей при в общем-то небольшом притоке новых. Очень приятно, коллеги, что вы находите инструмент полезным!🥺
Ну и новости (придумала название рубрике — #ботоводство)!
На этой неделе стала получать загадочную ошибку «
Я уже пробовала подступаться к этому делу, и пока миграция не очень получается((( за следующую неделю постараюсь дожать, но в целом не удивляйтесь и отнеситесь, пожалуйста, с пониманием, если будут возникать проблемы. Например, в четверг поломалась именно с этой ошибкой обработка pdf-файлов, а вчера в ночи pdf-ку спокойно отработал. Почему так — не знаю и не чувствую сил погружаться прям сильно подробно, но ценный урок извлекла: таких глубоких привязок к библиотекам, специфическим для конкретной LLM-ки нужно как-то пытаться избегать.
Мытарства этой недели и очевидность мучений недели грядущей позволяют мне решительно посмотреть сегодня 2-3-4 серии Отчаянных домохозяек. И вам тоже хороших выходных!☕️
Не все закоулки пользовательского пути оказались качественно освоенными! Теперь бот проверяет размер загруженного файла (раньше не проверял
Мелочи, а приятно, и накодилось это всё тоже с полпинка — с первых промптов, на тесте ничего не упало, сразу запушила, в общей сложности минут за 40 этой ночью. Вот всегда бы так!
Я писала недавно, что работа с логами вызывает у меня приступы прокрастинации, но я собралась с духом и в общем-то с первого раза накодился код аж целого нового файла на Гитхабе —
aggregator.py. Он парсит все логи, делает из них большую csv-таблицу, а также генрит мне красивые ежедевные отчеты о пользовательской активности в админку (пример см. в комментариях). Код написался-то с первого раза, но не с первого раза удалось сделать так, чтобы вся эта красота действительно работала каждый день в 20:00 по Московскому времени, поэтому этот файл успел обрасти уже собственным подробным логированием, а также логикой повтора попыток отправить отчёт в Telegram. Не хочется вдаваться в скучные подробности, но теперь я знаю, что такое cron job, daemon, что именно делает команда
print в коде. Сохраняется интрига, придёт ли сегодня отчёт в 20:00. Ибо имеет место загадка дыры: отчёт не пришёл в четверг, когда эти изменения были впервые задеплоены (при этом создалась таблица), но пришёл вчера без какого-либо оконченного вмешательства с моей стороны (а ещё пытался отправиться около 17 часов)
Следующий шаг — аналитика всей этой таблицы, нужно будет трогать палкой синтаксис pandas и разворачивать специальный ноутбук в Jupyter Lab, чтобы по-разному эту табличку крутить. Всё про вас узнаю, наконец!
А из отчётов, кстати, видно, что образовался костяк регулярных пользователей при в общем-то небольшом притоке новых. Очень приятно, коллеги, что вы находите инструмент полезным!
Ну и новости (придумала название рубрике — #ботоводство)!
На этой неделе стала получать загадочную ошибку «
Missing required parameter "ragStoreName"». Диагностика показала, что мой бэкэнд написан на библиотеке google-generativeai, которую перестали поддерживать ещё аж с 31 августа, и по-хорошему нужно переезжать на новую библиотеку google-genai. В некоторых моментах у них принципиально отличается логика обработки API-запросов в Gemini, и вот местами (не каждый раз, но уже с неприятной регулярностью) оно подтравливает и ломается. Я уже пробовала подступаться к этому делу, и пока миграция не очень получается((( за следующую неделю постараюсь дожать, но в целом не удивляйтесь и отнеситесь, пожалуйста, с пониманием, если будут возникать проблемы. Например, в четверг поломалась именно с этой ошибкой обработка pdf-файлов, а вчера в ночи pdf-ку спокойно отработал. Почему так — не знаю и не чувствую сил погружаться прям сильно подробно, но ценный урок извлекла: таких глубоких привязок к библиотекам, специфическим для конкретной LLM-ки нужно как-то пытаться избегать.
Мытарства этой недели и очевидность мучений недели грядущей позволяют мне решительно посмотреть сегодня 2-3-4 серии Отчаянных домохозяек. И вам тоже хороших выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤4👍3👏1