LLM - це не продукт. Це крок за дією, яку ви вже ведете: класифікувати тікет, витягти поле, накинути відповідь, знайти один абзац, який менеджеру готелю треба з телефону. Якщо цю дію не назвати без слова «чат» - у вас немає AI-фічі. Є демо з щомісячним рахунком.
У Node.js я ставлюсь до моделі як до remote I/O, як до Stripe чи S3. NestJS або Express тримає роут. Черга тримає очікування. Zod або JSON-схема тримає форму відповіді. Таймаути, ретраї, ліміт токенів і лог, який можна відкрити о другій ночі - це не додатки, це робота. Стрімити вайб у браузер з ключем у NEXT_PUBLIC_ - це не інтеграція.
Патерни, які себе виправдовують у TypeScript-сервісі: структурований вихід, який можна зберегти, tools на ваші власні API, і RAG по корпусу, який ви реально контролюєте - не «весь Postgres». OpenAI чи Anthropic - вендор. Контракт ваш: вхід, список інструментів, max tokens, що робити, коли модель повільна або бреше. Не дам моделі вигадати запис, який сам не написав би руками.
Що відмовляюсь робити до перших користувачів: безмежний асистент над усіма таблицями, чат на лендингу, щоб у колоді було модне слово, і промпт, який виріс у непротестовану політику. Там ховається вартість і відповідальність. Якщо перша версія не вміє впасти закрито - показати чернетку, спитати людину, нічого не записати - вона не готова до грошей і PII.
Якщо шлете бриф - надішліть дію, дані які вже є, і хто має підтвердити запис. Відповім найменшою Node-роботою, яку б відвантажив: один роут, одна схема, один виклик моделі й короткий список того, чого моделі ще не показувати. Цей список і є оцінкою.