HTTP-запрос умер, а LLM продолжает жечь бюджет: как правильно строить AI-задачи на Go
В типичном Go-приложении отмена HTTP-запроса через r.Context() автоматически гасит всю связанную работу. Но когда речь идёт об обращении к LLM, эта логика даёт сбой: пользователь закрыл вкладку, а внешний API продолжает генерировать ответ. В итоге деньги списываются, а результат никому не нужен.
Автор предлагает не полагаться на контекст запроса, а выносить длительные AI-операции в фоновые задачи, используя PostgreSQL как очередь. В статье разбираются вопросы идемпотентности — чтобы повторный запуск не привёл к двойному списанию, — а также стратегии retry и корректной обработки частично выполненных операций.
Материал будет полезен Go-разработчикам, которые интегрируют LLM в бэкенд и хотят избежать типичных граблей с неконтролируемыми расходами и потерей данных при обрыве соединения.