У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.
У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.
Привет! Меня зовут Стас, я занимаюсь R&D в компании ROGII.
Я пришёл в ROGII после нескольких лет работы «в поле» — от тундры Уренгойских месторождений до Сахалина. Там я понял, что буровые данные живут в хаосе: у каждого вендора — свой формат, у каждой скважины — свой стиль отчёта.
Когда я оказался в компании, которая консолидирует буровые данные в облаке, задача встала ребром: нужно научить машину понимать суточные рапорты так же, как это делает инженер.
Мы собрали 507 PDF‑файлов (всего 14 678 страниц) и выделили 23 типа отчётов по признаку компании и структуры.
Читать полностью »
Представьте себе AI-агента, который не просто выполняет изолированные задачи, а ведет осмысленный диалог, запоминает контекст разговора и принимает решения на основе накопленной информации.
Вместо простого:
Пользователь: "Сколько будет 2+2?"
Бот: "4"
Мы создадим агента, который может:
Пользователь: "Привет! Меня зовут Алексей, я работаю Python-разработчиком"
Агент: "Приятно познакомиться, Алексей! Как дела в мире Python? Над какими проектами сейчас работаешь?"
ПользовательЧитать полностью »
Всем привет, сегодня я расскажу вам о том, как можно делать агентов с помощью Pydantic AI.
Pydantic AI - фреймворк от создателей Pydantic - популярной библиотеки для валидации данных в Python с ядром на Rust.
Начнем с простых примеров в виде вызова LLM , а затем постепенно будем усложнять задачу, создавая более сложного агента.
Виртуальное окружение.
В качестве пакетного менеджера в данном проекте используется uv, однако вы можете использовать любой другой, удобный вам, просто имейте это ввиду при установке пакетов.
Репозиторий
Весь код примеров ниже доступен на Читать полностью »
Конфиги используются в каждом приложении. Многие разработчики используют для управления конфигурационными файлами стандартные библиотеки по типу json и yaml, а также python-dotenv для загрузки чувствительных данных из файла в переменные окружения. В этой статье мы научимся загружать как нечувствительные данные из файлов TOML, так и переменные из .env в классы
Установим нужные библиотеки в окружение:
pip install pydantic-settings
Затем в корне проекта создадим:
Файл main.py
Директорию settings, которая будет содержать 2 файла: Читать полностью »
В нашей команде бытует хорошая практика фиксировать всё изменения, которые отправляются в продакшен в гитхабовских релизах. Однако, не вся наша команда имеет доступ в гитхаб, а о релизах хочется знать всем. Так сложилась традиция релиз из гитхаба дублировать в рабочем чате команды в телеграме. Что хорошо, гитхаб позволяет с помощь маркдауна красиво оформить релиз с разделением на секции и ссылками на задачи, которые отправляются на выкатку. Что плохо, простым copy/paste всю эту красоту в телеграм не перенесёшь и приходится тратить время на довольно нудную работу по повторному оформлению релиза, но уже в телеграме. Ну а посколько программисты народ ленивый, я решил этот процесс автоматизировать.
Соответственно, задача заключается в том, чтобы поднять HTTP API, который сможет принять POST запрос, проверить подпись, извлечь нужную информацию из тела запроса и передать её дальше по инстанции. Как тут не попробовать FastAPI, на который я давно глаз положил?
FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью,
что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.
Комбайн получился легким, неперегруженным и более, чем достаточным по функционалу.