Рубрика «api»

Я делаю сервис по подписке и плачу налог как самозанятый. Пока подписка была бесплатной, вопросов не возникало. Как только пошли платежи, появилась обязанность, о которой мало кто думает заранее: на каждый поступивший рубль нужно выдать чек в «Мой налог», желательно в момент расчёта, а не через неделю.

Три платежа в день можно закрывать руками. Когда они приходят круглосуточно, включая четыре утра, ручная выдача превращается в постоянный риск: забыл — нарушение, выбил дважды — аннулируй и объясняйся.

Я это автоматизировал. Сама интеграция оказалась рутиной, а вот защита от второго чека на один платёжЧитать полностью »

Мне понадобилось обрабатывать десятки тысяч рекламных объявлений с помощью LLM. На выходе нужен был строго валидный JSON с датами, тегами, временем, стоимостью и другой структурированной информацией. Главные требования были простыми:

  • высокая точность;

  • стабильный Structured Output;

  • минимальная стоимость обработки.

Перепробовав множество вариантов, я обнаружил, что полностью бесплатные модели вроде OpenRouter действительно позволяют решить задачу без вложений, но на практике я столкнулся с двумя проблемами:

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

С этим надо было что-то делать.


Решение: генерируемый API-клиент

Я начал использовать генерируемый API-клиент. По сути, это набор ручек (функций для запросов) и типов к ним, которые генерируются на основе открытого API - yaml-файла сваггера.

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

Однажды я открыл биллинг и просто посмотрел, на что уходят токены. Не на «подумать над архитектурой». А на переименование переменных, генерацию тестов по готовому ТЗ и прогон миграций. Всё это считалось по тарифу флагманской модели, хотя такую работу вытянет модель в десятки раз дешевле.

Ниже – как развести действительно сложные задачи и рутину по двум моделям внутри Claude Code, не ставя ни одного стороннего форка. И три зоны, куда дешёвую модель я не пускаю принципиально.

Что на самом деле сжигает токены

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

Один из лучших способов по-настоящему разобраться в инструменте — понять, как он устроен изнутри. С большинством JavaScript-библиотек у меня работает так: мне не нужно заглядывать в исходники, потому что по дизайну API уже можно примерно представить его реализацию. Но API фикстур в Playwright поставил меня в тупик. Минимальный тест выглядит следующим образом:

import { test, expect } from "@playwright/test";

test("basic test", async ({ page }) => {
  await page.goto("https://playwright.dev/");

  await expect(page).toHaveTitle(/Playwright/);
});

В этом примере мы запрашиваем у Playwright фикстуру pageЧитать полностью »

Математик, криптограф, создатель стратегии «чёрного ящика» — разбор принципов, которые работали 35 лет, и того, что остаётся загадкой

Человек, который обыграл рынок на десятилетия

10 мая, в возрасте 86 лет умер Джим Саймонс, создатель Renaissance Technologies — одного из самых прибыльных хедж-фондов в истории. Его состояние оценивается в $31,4 млрд, 55-е место в рейтинге Forbes. Аналитики Уолл-стрит до сих пор не смогли разгадать главный секрет успеха самого прибыльного фонда Саймонса — Medallion.

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

В декабре 2024 я запустил антиспам-бот для Макс — по той же схеме, что уже годами работает в Telegram. Через месяц платформа удалила бота без объяснений. Поддержка отвечала: «работаем над вашим вопросом, ждите». Досудебная претензия заказным письмом — разблокировка и ответ в духе «вы согласились с правилами при регистрации».

Если вы разработчик ботов и думаете зайти в Макс — расскажу историю моей разработки в МАКс. В декабре 2025 я перенес алгоритмы из своего антиспам бота в Телеграм в МАКС, много прихлось менять, т.к. API сильно отличается, и запустил его в работу. Читать полностью »

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно 3 ответа провайдера с 5xx, ни одной успешной транзакции по нашей базе. Закрываю как временный сбой на стороне провайдера, пишу короткую сводку в дежурный чат и иду досматривать. Через 40 минут второй алерт – уже от ночной поддержки: клиент прислал скрин выписки, 3 списания подряд за одну бронь. У клиента рейс через 6 часов, ему нужна действующая бронь и подтверждение, что он завтра нормально улетит, а не тикет в поддержку.

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

Введение. Role-Play LLM бот

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

Весь смысл был в том, чтобы это были действительно разные модели и пользователь мог просто между ними переключаться по запросу. Для начала мне нужно было найти зоопарк апи ключей с бесплатными лимитами. Я прошерстил весь интернет и в итоге нашел относительно нормальные варианты: Groq для LLama, Google AI Studio для Gemma и Gemini.

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


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