Pull to refresh
0
0
Send message

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

Reading time64 min
Views6.1K

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как создать планировщик путешествий с ИИ-агентом на CopilotKit, LangGraph и Google Maps API

Level of difficultyMedium
Reading time26 min
Views2.4K

Кто сказал, что разработка ИИ‑агента — это сложно, долго и только для корпораций с миллионами в бюджете? Сегодня мы убедимся, что добавить в своё приложение умного ассистента может каждый. Встречайте: ИИ‑агент, который помогает пользователю принимать решения и обновляет данные в реальном времени.

Используя CopilotKit, LangGraph и Google Maps API, мы создадим приложение, которое не только действует по сценариям, но и предлагает решения. Мы изучим, как реализовать human‑in‑the‑loop, чтобы пользователь мог одобрять или отклонять действия агента.

Приятного прочтения (‑:

Читать далее

Не принимай оффер в Data Science, пока…

Reading time21 min
Views20K

Переход на мою текущую позицию занял около четырёх месяцев: с мая по сентябрь я проходил HR, будущего руководителя, его команду, руководителя руководителя и руководителя руководителя руководителя. Почти всё это время я задавал вопросы, чтобы понять подходит мне эта позиция или нет. В итоге, когда ответы меня удовлетворили — я согласился на предложение, и сейчас я Head of Machine Learning Laboratory в Альфа-Банке. 

Но мой кейс не такой распространённый — чаще всего собеседования затягиваются «всего» до 5 часов в виде увлекательного квеста проверки хард и софт скиллов. Но и на собеседование ещё надо попасть — ведь отклик на позицию не гарантирует приглашение на интервью или даже формального ответа на заявку, потому что желающих обычно порядка 100 человек на одно место даже с учётом огромного количества предложений от всевозможных работодателей.

Как вы понимаете, нанимающая сторона на рынке вакансий Data Science проводит очень тщательный отбор в свою команду. К сожалению, дата сайентист не может поступать аналогичным образом и прособеседовать своего работодателя, но может задать интересующие его вопросы после интервью и найти много полезной информации самостоятельно в сети. В этой статье расскажу о 10 ключевых вопросах, на которые крайне желательно получить ответ до вашего трудоустройства. Ведь от них будет зависеть не только как вы проведёте несколько часов на собеседовании, но и как скоро будете искать новую работу, когда поймёте, что надо было вопросы всё-таки задавать.

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

Читать далее

ИИ простыми словами, часть 2. Reinforcement Learning (RL)

Level of difficultyEasy
Reading time3 min
Views3.4K

Когда я пишу новости про ИИ, то часто сталкиваюсь с проблемой: они пестрят техническими терминами, которые не всегда понятны даже людям использующим ИИ регулярно. SFT, MoE, RL/RLHF/DPO, миллионы их.

Я захотел описать самые популярные термины простым русским языком, чтобы каждый, даже нетехнический человек, мог разобраться в самой главной технологии современности. Чтобы когда я пишу статьи, я сразу мог бы дать ссылку на понятное и простое объяснение сложных терминов. А ещё в этом проекте, мне захотелось сопровождать мои материалы симпатичными и понятными иллюстрациями на русском языке, поэтому я рисую их самостоятельно.

Так я начал свой хобби‑проект «AI человеческим языком». Каждую новую статью про популярный термин я хочу адаптировать под Хабр, и выкладывать сюда.

В последнее время мы видим огромный прогресс в обучении ИИ без участия человека. Это важно, потому что люди - бутылочное горлышко, подготовка и разметка данных вручную человеком - крайне дорогостоящий и длительный процесс. Революция, которую произвел DeepSeek R1 - это как раз следствие найденного способа обучать ИИ без ручного труда. Вчера я рассказывал о том, как китайские ученые автоматизировали процесс обучения ИИ программированию при помощи другого ИИ, который пишет тесты. А сегодня я хочу подробнее описать, в чем суть Reinforcement learning - термина, который используется почти во всех статьях про обучение ИИ.

Читать далее

Как правильно делать тестовые задания на Python (flask, fastapi)

Level of difficultyMedium
Reading time9 min
Views11K

В этой статье я делюсь опытом, накопленным за годы помощи начинающим программистам. Мы в основном будем говорить про Python, но советы будут полезны для ТЗ на любом языке программирования, особенно на позицию Backend Developer.

Вы узнаете, как грамотно организовать структуру проекта, избежать типичных ошибок (например, Query N+1), подготовить своё решение так, чтобы оно выглядело профессионально. Дам советы, как не только выполнить задание, но и превзойти ожидания работодателя.

Эта статья будет полезна не только начинающим разработчикам, но и всем, кто хочет выделиться на фоне конкурентов и повысить свои шансы на успех. Применяйте советы, готовьтесь заранее, и пусть ваше тестовое задание станет тем самым пропуском к работе мечты!

Читать далее

Быстрый старт в мир Python окружений с uv

Level of difficultyEasy
Reading time5 min
Views7.6K

uv — относительно новый и динамично развивающийся инструмент, упрощающий создание и управление Python окружениями. Быстро, без лишних настроек и с простым интерфейсом

Читать далее

Машинное обучение: Линейная регрессия. Теория и реализация. С нуля. На чистом Python

Level of difficultyEasy
Reading time12 min
Views8.2K

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

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

Читать далее

Ручное тестирование и ИИ: умрёт ли профессия QA?

Level of difficultyEasy
Reading time6 min
Views4.8K

Эта тема претендует на такую же вечную, как софт/хард-скиллы, первично бытие или сознание, что было раньше — курица или яйцо :) Даже среди коллег я встречала мнение, что manual QA не очень-то полезны: «Чё там делать, сиди себе, monkey-testing лепи». А с темпами развития ИИ QA должны были ещё больше испугаться, вот же Copilot от GIT и Microsoft и миллион менее известных, но не менее популярных нейросетей, которые уже пишут код, они что, пачку тестов не сделают, да ещё и автотестами покроют?..

Дисклеймер:

Я работаю тестировщиком уже около восьми лет, сейчас — на проекте Свой Банк. До этого ещё семь лет работала в веб-студии, занимающейся разработкой приложений, связанных с ресторанным бизнесом и доставкой еды. Дальше — моё маленькое философское рассуждение о том, заменит ли нейросеть мою работу, исходя из того, что я вижу в it.

Поехали

От подвала до облака: как обучить нейросеть в домашних условиях

Level of difficultyEasy
Reading time5 min
Views3.9K

Всем известно, что обучение нейросетей требует значительных вычислительных ресурсов. Но что делать, если у вас нет мощного оборудования? В этой статье я расскажу, как обучить нейросеть частями, но и объясню ключевые понятия вроде слоев, батчей, и функций активации.

Читать далее

Хостинг для бота: как без лишних усилий запустить Python бота в Docker-контейнере и почему это удобно

Level of difficultyEasy
Reading time6 min
Views13K

Боты стали незаменимыми помощниками уже почти для любого бизнеса. Чат‑боты автоматизируют обработку запросов, улучшая пользовательский опыт и снижая нагрузку на сотрудников. Боты для Telegram‑каналов и других мессенджеров помогают распространять нужную информацию, управлять группами и решать целый ряд других задач.

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

Читать далее

Распределённое обучение нейронных сетей. Часть I

Level of difficultyMedium
Reading time9 min
Views1.5K

Многие из успехов в глубинном обучении достигнуты отчасти благодаря тому, что разработчики, говоря простым языком, взяли модели побольше и натренировали их на огромных объёмах данных.
Однако, чтобы прогнать эти самые огромные объёмы данных через модель, нужно либо очень много времени, либо каким-то образом распределить работу на много вычислительных узлов - сделать обучение параллельным.
Я видел на Хабре пару статей на эту тему, но дерзну попробовать написать ещё одну. Добавить кое-каких деталей, а что-то, что уже было, надеюсь, получится объяснить попроще. Поехали!

Читать далее

Создаем многоагентные системы с Swarm от OpenAI

Level of difficultyEasy
Reading time4 min
Views2K

Приветствую, друзья! Сегодня я хочу рассказать вам одном занятном фреймворке — Swarm от OpenAI.

Если вы когда-либо задумывались о том, как создать систему, где несколько компонентов взаимодействуют между собой, передают задачи друг другу и делают это без вашего постоянного участия — Swarm для вас. Он основан на OpenAI's Chat Completions API, что может сделать его мощным инструментом в ваших руках.

Читать далее

7 продвинутых приемов pandas для науки о данных

Reading time4 min
Views13K

Pandas — это основная библиотека для работы с данными. Вот несколько приёмов, которые я использую, чтобы быстрее и проще выполнять повторяющиеся задачи по работе с данными.

Читать далее

ML-тренды рекомендательных технологий: шесть приёмов, которые помогают угадывать желания пользователя

Reading time16 min
Views5.7K

Главная задача рекомендательной системы — предоставить пользователю контент, фильм, трек, книгу, товар или информацию, которые могут заинтересовать его в данный момент. Сложность в том, что у нас нет явного запроса пользователя, как в поиске, есть только история его взаимодействий с объектами и наша надежда на то, что мы верно распознали его скрытые желания.

Раньше для такой задачи нужно было строить сложные алгоритмы со множеством написанных вручную эвристик. Теперь с этим помогают ML‑технологии.

Меня зовут Кирилл Хрыльченко, я руковожу командой R&D рекомендательных технологий в Яндексе. Наша команда исследует и разрабатывает новые технологии, а также активно следит за тем, что появляется нового в индустрии. Сегодня я поделюсь трендами развития рекомендательных систем и расскажу, как нейросети продолжают улучшать качество рекомендаций: какие есть нюансы в работе с LLM, чем полезно обучение с подкреплением, что изменилось в плане анализа истории пользователя, а также на что обратить внимание при масштабировании.

Читать далее

Топ 3 привычки для улучшенного обучения

Level of difficultyEasy
Reading time4 min
Views6.9K

Едва ли не у каждого из нас случались в жизни периоды, когда нужно было быстро обучаться чему-то новому. Будь-то адаптация на новом рабочем месте, купленный интенсив или желание выйти на бюджет в универе или получить премию. Ниже приведен гайд по базовым инструментам, которые помогают улучшить обучение.

Читать далее

Регулярные выражения простыми словами. Часть 1

Level of difficultyEasy
Reading time7 min
Views49K

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

Машинное обучение и криптография: знакомимся с CipherGAN

Level of difficultyEasy
Reading time7 min
Views1.4K

Машинное обучение в большей или меньшей степени сейчас используется в различных отраслях. Не стало исключением и направление криптографического анализа. В этой статье мы рассмотрим генеративно‑состязательную сеть CipherGAN, используемую для определения базового шифровального отображения по банкам непарного зашифрованного текста и открытого текста.

Читать далее

Как мотивировать себя на правильные вещи

Level of difficultyEasy
Reading time4 min
Views10K

Мотивационных советов можно дать миллион. Но обычно они упираются в то, что себя нужно заставить как-то сделать первый шаг - перейти на новые принципы тайм-менеджмента, заняться спортом или перестать есть на ночь. Летом где-то между отпусками мы в Максилекте собрались, чтобы обсудить, как именно мы делаем этот первый шаг. 

Надо отметить, что у опытных удаленщиков с самодисциплиной и мотивацией все хорошо. Но даже у нас бывают временные кризисы. В этой статье - о том, что мы с коллегами предпринимаем, когда “само не получается” и нужно все-таки заставить себя заниматься правильными вещами.

Читать далее

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Reading time40 min
Views24K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее

Введение в Weight & Biases

Level of difficultyEasy
Reading time5 min
Views2K

В практике любого инженера машинного обучения обязательно присутствует инструмент для управления жизненным циклом машинного обучения: отслеживание экспериментов, управление и деплой моделей и проектов. В этой статье я кратко расскажу о таком инструменте компании Weight & Biases, незаслуженно обойденным вниманием на просторах рускоязычного пространства.

Работа в современных реалиях требуют быстрой разработки и оценки моделей. Существует множество компонентов: изучение обучающих данных, обучение различных моделей, объединение обученных моделей в различные комбинации (ансамблирование) и т. д.

Много компонентов = много мест, где можно ошибиться = много времени, потраченного на отладку. Вы можете упустить важные детали, и вам придется заново обучать модель, или вы можете обучиться на неправильных данных (утечка информации). Или вы можете использовать неправильную модель для генерации представления.

Именно здесь на помощь приходит W&B.

Читать далее

Information

Rating
Does not participate
Registered
Activity