Рубрика «fastapi»

У меня есть RAG‑сервис: проверяет фактологические утверждения в бизнес‑отчётах против реальных источников — SEC EDGAR, World Bank, FRED, Wikipedia. Это капстоун LLM Zoomcamp (DataTalksClub). Курс закончился, оценку поставили (peer review, 42/42), а я решил дотянуть проект до состояния «не стыдно показать на собеседовании как рабочий код», а не просто «закрыл критерии оценки курса».

Критерии оценки курса не требуют production‑паттернов — они про RAG‑пайплайн: retrieval, evaluation, orchestration. На собеседовании про RAG спрашивают другое — то, что курс не проверяет:

  • что будет, если сервису подсунут неправильные переменные окружения при деплое;

  • Читать полностью »

Когда я начал делать сервис для наблюдения за ценами на маркетплейсах, первая архитектура казалась очевидной: пользователь передаёт ссылку, сервер открывает страницу, извлекает цену и по расписанию повторяет проверку.

На схеме всё выглядело просто. На практике сервер быстро превратился в самое ненадёжное место системы.

Страницы, которые нормально открывались в обычном браузере, с VPS возвращали 403Читать полностью »

Как меня достало руками создавать одни и те же файлы в Python-проектах — и я написал crt - 1

Каждый раз, когда я начинаю новый проект, происходит один и тот же ритуал: создать папку app, в ней api, services, utils, накидать Читать полностью »

UPD от 21.07. В комментариях ткнули носом, и поделом: три из четырёх граблей всё-таки в доке есть, я читал невнимательно. Токен в Authorization и user_id/chat_id для лички — прямо на страницах GET /me и POST /messages. «Исчезновение подписки» — в POST /subscriptions: бот отписывается сам после 8 часов без успешного ответа от endpoint (у меня backend в тот момент падал в unhealthy — вот и сошлось). Не в доке осталась ровно одна вещь: мультиарендность (грабля третья). Разбор оставляю, но по тексту отметил, где сам виноват.

Синяя галочка есть. Ответа нет.

Я сижу и смотрю в экран телефона, где мой собственный бот игнорирует моё собственное сообщение. Сервер отвечает 200 OKЧитать полностью »

Это статья о том, почему написать SaaS оказалось проще, чем превратить его в продукт.

После университета я начала искать первую работу разработчиком. Вакансии для начинающих почему‑то не выглядели вакансиями для начинающих. Я читала требования, понимала, что многого не умею, нервничала всё сильнее, а потом решила сделать собственный проект — конструктор магазинов.

Уже звучит как начало чего‑то плохого.

Читать полностью »

Код и конфигурация актуальны на 10–11 июля 2026 года. Метрики ниже получены в последнем цикле обучения модели.

Когда я начал развивать Discord-сообщество, обычной команды /ban хватило совсем ненадолго. Роли настраивались в одном месте, приветствия — в другом, логи — в третьем, а за уведомления о стримах отвечал отдельный бот. В какой-то момент я поймал себя на том, что управляю уже не сообществом, а зоопарком чужих интеграций — с разными правами, разными панелями и разными представлениями о том, что делать при сбое.

Читать полностью »

Есть два способа узнать, что вам пришло письмо. Первый — каждые тридцать секунд бегать к почтовому ящику и заглядывать внутрь. Второй — почтальон звонит в дверь, когда письмо реально есть.

Long Polling — это первый способ. Бот в бесконечном цикле долбит getUpdates на серверы Telegram: «есть что‑нибудь? а сейчас? а сейчас?». Telegram, надо отдать ему должное, держит соединение открытым и отвечает не мгновенно, а когда появляются апдейты — поэтому polling и называется long. Но суть не меняется: инициатор — вы, соединение висит постоянно, и весь этот механизм живёт внутри одного вашего процесса.

Читать полностью »

Что происходит между запросом пользователя и ответом языковой модели?

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

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

Запрос → Prompt → LLM → Ответ

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

Читать полностью »

Зачем я это пишу

Запустил недавно прод-агента на Claude — небольшой, для бытовой задачи у знакомой. По дороге понял несколько вещей, которые сначала казались мне очевидными «после интернета», а потом, когда сел и проверил на реальной задаче, начали играть иначе. Хочется поделиться разбором — может, кому-то сэкономит неделю-другую на тех же развилках.

Сразу честно: я не «академический» разработчик. До последнего года писал на Python в основном чтобы прочитать чужой скрипт и подправить отступ. То, что вы увидите в коде ниже — собирал руками, лезя в документацию по каждому слою. Поэтому это не «гайд от эксперта», а скорее Читать полностью »

Технический пост-мортем: что было, что сломалось, и что в итоге собралось.

Контекст: умер xml-river, keykollector появился API Wordstat

Я работаю в контекстной рекламе и аналитике 6 лет. Самым массовым инструментом для сбора семантики в моём окружении был KeyCollector. Сам KeyCollector давно не парсил Wordstat напрямую — он работал через стороннее расширение xml-river, которое проксировало запросы к Wordstat в обход капчи. Когда xml-river в какой-то момент перестал работать, эта связка обвалилась, и у тысяч специалистов одновременно возникла одна и та же проблема: как теперь снимать частотность?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js