AI Tinkerers – Meetup #3 (Feb 2025)
Вчера вечером, после работы, я был уже довольно уставшим, но в календаре висело приглашение на митап AI Tinkerers. А как истинный tinkerer, я просто не мог его пропустить. И, как оказалось, не зря.
Вначале Mohammed Fazalullah, как обычно, обратился с приветственным словом и рассказал о нашем сообществе, встречах и основной идее, которая за ним стоит. У него очень интересная система отбора. Уже с первых встреч стало понятно, что количество желающих явно больше количества мест, и тогда он (как настоящий AI tinkerer) подключил AI к решению этого вопроса.
Итак, когда вы регистрируетесь на митап, вам нужно заполнить форму, в которой коротко рассказать о себе и дать ссылки на свои профили в соцсетях (LinkedIn, Twitter, GitHub). Далее следует заполнить форму со своими интересами, технологиями, с которыми вы работаете, и т. д. Причём возле каждого поля расположена кнопка с волшебной палочкой — при клике на неё AI-модель генерирует текст на основе ваших профилей в социальных сетях.
Я попробовал — и надо сказать, что генерирует она довольно качественно. В общем, я заполнил форму, отправил её и стал ждать приглашения.
Интро
Потом пришло письмо о том, что мест мало, и если вы хотите попасть, то еще раз посмотрите вашу форму — может быть, вы что-то забыли добавить. А я забыл указать профиль на GitHub. После того как я его добавил, за пару часов до митапа мне пришло приглашение.
Как сказал Mohammed Fazalullah, его AI-система в первую очередь анализирует профиль на GitHub, и если его нет, то никто не будет вас приглашать. Потому что, ну какой же вы AI tinkerer без GitHub-профиля? 🙂 И это правильно, я считаю. Это отличное решение, чтобы митап не превратился в тусовку маркетологов.
Далее он показал личный кабинет этой системы, где пользователи автоматически помечаются разными лейблами. Например, те, кто регистрируется на митап, но потом не приходит, отмечаются как “ghost”, потому что человек занял чьё-то место, а сам не пришёл. Таких он больше не приглашает. Также там есть внутренняя система социального рейтинга. Я не знаю, как именно она формируется, но, видимо, как-то по социальной активности в сообществе.
Там ещё много критериев, на основе которых система принимает решение — приглашать человека или нет. Мне такое решение показалось очень интересным.
“Completely local RAG in low code with Deepseek-r1:7b and Flowise” by Mohamad Al Solh
В этом докладе Мохаммед рассказал о том, как он создаёт прототипы с помощью Flowise и локально установленной DeepSeek-R1 7B. Он поделился опытом разработки генератора SQL-запросов для локальной базы данных.
Вообще, есть два способа извлечения данных из корпоративных баз:
- Similarity / Hybrid search in Vector Storage.
- Query generation for relational / NoSQL databases.
В первом случае мы преобразуем данные в векторную форму на этапе ingest, а на этапе search выполняем поиск по similarity / hybrid search в этом многомерном пространстве. Недостаток этого метода в том, что нужно выполнить корректное преобразование — а это само по себе сложная задача. И речь даже не столько о векторизации, сколько о правильном разбиении данных на chunks.
При использовании второго метода мы подразумеваем, что все данные уже структурированы, хранятся в базе данных, и нам нужно составить корректный SQL-запрос. Основная проблема здесь — найти адекватную модель для генерации запроса, отсечь галлюцинации и провести валидацию запроса, чтобы в конце pipeline всё не сломалось.
Мохаммед пошёл по второму пути. Мне было интересно, почему он не использует специализированные модели для генерации SQL-запросов, поэтому я спросил его. Он ответил, что их качество оставляет желать лучшего и даже дистиллированный до 7B DeepSeek выдаёт результаты гораздо лучше. Возьму это на заметку — если придётся решать такую задачу, скорее всего, выберу ту же модель.
“Accepting Linkedin Invitation Automatically” by Reem Elmahdi
Мы познакомились с Рим вчера, и эта девушка поразила меня своей целеустремлённостью. Она хотела попасть на митап, но мест уже не было, поэтому она решила выступить с презентацией. Рим продемонстрировала автоматический обработчик приглашений для LinkedIn, написанный на Python. Этот инструмент заходит в её профиль на LinkedIn, принимает приглашения и отправляет сообщения пользователям. Было забавно, что, пока она проводила презентацию, некоторые люди из зала нашли её профиль в LinkedIn и отправили ей приглашения. Когда она запустила бота, он начал принимать приглашения, которые были отправлены буквально только что. Бот написан на Python и использует Selenium для работы с LinkedIn. Конечно, он имеет свои ограничения, но наблюдать за тем, как всё это происходит прямо перед тобой, – это крайне интересно.
“Socia” by Adam Ahmed Ibrahim
Ребята представили свой стартап для тренировки разговорной речи. В нём предусмотрено несколько сценариев: подготовка к интервью, беседа с другом и многие другие. Они рассказали, как использовали API Azure AI Speach как для распознавания голоса, так и для его генерации. Преимущество данной технологии заключается в том, что используемая модель знает множество языков и их диалектов, поэтому AI-агент буквально может разговаривать на одном языке с пользователем.
AI-Native: Live Coding an Agentic RAG That Thinks and Adapts” by Amir Houieh
Амир — основной разработчик UnBody, платформы для создания AI-приложений. Я начал присматриваться к этой платформе, поскольку, по идее, там есть всё, что мне нужно: база знаний, гибридный поиск и фильтрация. Но самое интересное здесь — это подход к написанию приложений на этой платформе. Судя по примерам кода, которые Амир показал нам, это очень похоже на написание кода для ORM-систем. Те, кто давно следят за моими постами, знают, что я увлекаюсь ORM и всячески пропагандирую его использование в разработке. Да, я осведомлён об ограничениях, умею обходить проблемы с производительностью и перемещаться по слоям абстракции. Мне нравится сам подход, когда мы строим цепочку вызовов функций, таким образом формируя наш запрос. Это называется Method Chaining. Это очень удобно и повышает скорость разработки. Так вот, Амир предлагает использовать эту парадигму для написания AI-приложений. В общем, мне очень интересно попробовать эту платформу и посмотреть, что из этого выйдет. Если хотя бы половина того, что заявлено, правда, то это решение действительно революционно.
Мне было очень приятно посетить этот митап, так здорово быть в компании таких умных и энергичных людей!