posted on 2025-03-02
В описании канала 40Ants сказано, что я верю в то, что в мире всё связано и не бывает случайностей. Или, как говорил О.Ж. Грант в фильме "Автострада 60": "Если что-то произошло, оно было неизбежно."
Последнее время я интересуюсь темой автоматизации разных задач с помощью ботов. И вот, по какой-то "случайности" (случано ли?) мне удалось бесплатно залететь на интенсив по созданию ИИ ботов от университета Зерокодер. Интенсив прошел на прошлой неделе, а сегодня хочу с вами поделиться впечатлениями.
🤓 Как работает ИИ бот.
🤨 Что меня удивило.
☹️ Что пока непонятно.
Мы делали бота на конструкторе Suvvy и там бот может иметь интеграции. Например он может заводить клиента в CRM или записывать его на прием, добавляя встречу в Google Calendar. Так вот я пока не очень понимаю, как бот решает, что клиент хочет записаться на прием. Возможно при активации интеграции Suvvy добавляет что-то в промпт?
😎 Бот который у меня получился в ходе интенсива.
Я делал бота, который помогает изучать Python: https://t.me/guru_of_python_bot Можете тут с ним пообщаться (будет активен до 5 марта, дальше закончится пробный период в Suvvy).
😱 Проблемы с которыми можно столкнуться.
Работа ИИ бота созданного на конструкторе стоит денег. К примеру, обработка каждого вопроса ученика моим ботом-учителем по Python стоит от 3 до 6 рублей. Если ученик задал 100 вопросов, то он обошелся вам в 600 рублей. Так что для бота который предоставляется бесплатно это не очень подходит. Другое дело, если вы создаете коммерческого бота, который к примеру обрабатывает заявки клиентов - отвечает на пару их вопросов и записывает на прием. Тут и количество вопросов в сессии скорее всего будет ограничено, и количество денег которые принесет клиент компании будет значительно превышать оплату за работу бота. Короче, надо внимательно считать.
Так же в Savvy бот иногда может работать с ошибками и кажется там пока нет какого-то монитонига, есть только лог общения бота с клиентом.
🤔 Что дальше.
Тема ботов интересная, но понятно, что если делать на этом бизнес, то желательно поискать решение которое получится развернуть на своем сервере. Это позволит лучше контролировать его работу, возможно сделает дешевле обработку каждого сообщения и в случае если заказчик пожелает - позволит развернуть бота на его серверах.
Self-hosted решений для создания AI ботов наверное много, но пока что я накопал только Python библиотечку Rasa. Судя по описанию, боты в ней могу определять намеряние пользователя и действовать соответственно. Буду пробовать.
К чему это? Перед тем как создавать свою платформу для создания ботов, хочу исследовать как работают существующие решения.
Если знаете ещё конструкторы которые допускают self-hosted режим, напишите пожалуйста про них в комментариях к посту?
Обсудить пост в Telegram канале.posted on 2025-06-14
Сегодня я продолжал возиться со своим pet-project, который одной ногой работает в SaleBot, а второй - использует Yandex Cloud Functions и YDB для того, чтобы запускать более сложную бизнес-логику.
И сегодня полдня я провел за тем, что пытался правильно настроить структурное логирование так, чтобы в Яндекс.Облаке было хорошо и красивенько видно все ошибки и отладочные сообщения от моего бота. Очень странно, что документация самого Яндекс Клауда не дает подробных примеров того, как настроить логирование в Python правильным образом.
Оно говорит очень просто: логируйте все в stdout, и мы как-то сохраним эти логи. Но при этом сами примеры, которые они приводят, таковы, что, например, если у вас логируется stacktrace, то он размазывается по всем сообщениям. Stacktrace при этом разделяется на отдельные сообщения лога, и совершенно непонятно, что происходит. В интерфейсе Yandex Cloud просто какая-то каша.
Вот, я покопал немножечко эту тему и нашел, что на самом-то деле Яндекс Клауд умеет разбирать логи в виде JSON. Так что странно, что нет у них в документации по использованию Python для Cloud Functions примера, как правильно настроить логгинг правильно.
Итого я нашел библиотечку, которая реализует JSON handler для стандартного модуля логинг. И еще я нашел библиотеку, которая добавляет к этому возможности структурного логирования.
Структурное логирование полезно тем, что помимо сообщения в виде текста, вы можете в свои логи добавлять какие-то дополнительные поля. Да, конечно, это можно и так делать с помощью аргумента extra. Но в этом случае вы вынуждены передавать этот аргумент extra в каждое сообщение лога.
А представьте, например, у нас в API пришел запрос в котором известен client_id. И мы хотим, чтобы этот client_id присутствовал во всех записях логов. Например, там, каких-то отладочных логов, при обращении к базе. Короче, если ошибка произойдет, там обязательно должен быть client_id, чтобы можно было по конкретному клиенту выбрать все логи, связанные с этим клиентом.
И вот, чтобы не прописывать при логировании client_id в каждое сообщение, можно использовать структурное логирование. Он работает, как контекстный менеджер, которому вы один раз на входе в API метод говорите, что пришел такой-то client_id, а далее, во все логи внутри этого контекстного менеджера автоматически подставится это поле client_id.
И вот я сегодня использовал этот подход, объединил JSON Logger и вот эту утилиту для структурного логирования, и получилось, по-моему, очень классно.
Думаю даже сделать такую заготовку, которая позволит быстро стартануть и создать Yandex Cloud Function на Python со всеми готовыми настройками для логирования и для работы с YDB.
Что думаете насчет такой заготовочки? Была бы она кому-нибудь еще полезна? Если что, пишите в комментариях, выложу куда-нибудь на GitHub. Пока!
Обсудить пост в Telegram канале.posted on 2025-03-14
Тема не совсем про lisp, но я тут последнее время смотрю много вебинаров университета Zerocoder и сегодня они прислали рекламку нового миникурса про использование нейросетей для создания продвинутого Python бота, на который можно попасть бесплатно, если успеешь в первую 1000 откликнувшихся.
Уж не знаю насколько продвинутого бота они собираются делать, но на всякий случай записался – интересно посмотреть что выйдет.
А вообще моя мечта – научиться обучать нейросетку писать сносный код на Common Lisp. Пока что по большей части неюзабельное что-то выходит – то с синтаксисом косяки, то нейронка выдумывает несуществующие библиотеки.
Думаю на курсе как раз позадавать вопросы на тему дообучения нейронки на своих исходниках – так можно было бы обучить её на всех либах что есть в Quicklisp! Уверен, выйдет круто!
Обсудить пост в Telegram канале.This blog covers learning, ai, automation, voice, holism, ideas, zerocoder, python, projects, closed, commonlisp, tips, seo, telegram, bot, прототип, smarthome, yandexcloud, logging, software, thoughts, salebot, bots, notes, emacs, lisp, codeassistant, infrastructure, news, lispworks, mcp, hackathon, programming, sql, yandex, cloud