Что такое FastAPI и почему он удобен для ИИ
FastAPI — открытый каркас для создания API на Python (лицензия MIT). Три его свойства совпали с потребностями ИИ-сервисов: асинхронность — вызовы LLM длятся секунды, и сервер обязан не блокироваться, обрабатывая десятки запросов параллельно; валидация Pydantic — запросы и ответы, включая поля от модели, проверяются схемой на входе и выходе; OpenAPI из коробки — документация для команды заказчика генерируется автоматически, и 1С-разработчики читают её без встреч с нами.
ИИ-сервис почти никогда не «просто спрашивает модель»: он собирает контекст, ходит в векторный индекс, применяет правила, проверяет ответ и пишет журнал. FastAPI — это каркас, на котором такая логика живёт аккуратно.
Роль FastAPI в архитектуре ИИ-контура
Промежуточный ИИ-слой на FastAPI закрывает четыре задачи, которые иначе размазываются по системам заказчика:
- Единая точка вызова: 1С, портал, чат-бот и мобильное приложение зовут один эндпоинт, а не каждое свою модель.
- Подмена модели: GigaChat сегодня, локальная модель завтра — переключение бэкенда не трогает потребителей: OpenAI-совместимые вызовы унифицированы.
- Дисциплина доступа: ключи, лимиты, роли и журналирование — в одном месте, а не в конфигах десяти подсистем.
- Обработка сбоев: ретраи, таймауты, очередь под пиковую нагрузку, честные ошибки для потребителей.
Как применяем: этапы и схема
- Проектирование контракта. Описываем эндпоинты и схемы Pydantic: что принимает сервис, что возвращает (для строгих сценариев — структурные ответы с JSON-схемой).
- Каркас и интеграции. Поднимаем FastAPI-приложение: клиенты моделей (GigaChat, vLLM/Ollama), векторный поиск, 1С через HTTP-сервисы.
- Асинхронность и очереди. Долгие операции (транскрибация, батч-обработка документов) — через фоновые задачи/очередь с идентификатором результата; клиент опрашивает статус.
- Защитные слои. Валидация ответов модели, при необходимости — guardrails; журналирование каждого вызова: кто, что спросил, что получил, сколько токенов.
- Эксплуатация. Контейнеризация, health-эндпоинты, метрики, лимиты; описание поставки для команды заказчика.
- Приёмка. Нагрузочный прогон по профилю заказчика, обработка отказов модели, согласованные SLA.
Текстовая схема: потребители (1С, портал, бот) → FastAPI-сервис → [RAG-поиск → промпт → LLM → валидация] → ответ + журнал. Все стрелки — HTTPS/JSON, документированы OpenAPI.
| Формат | Цена | Срок |
|---|---|---|
| Проектирование контракта ИИ-сервиса | от 90 000 ₽ | 3–5 рабочих дней |
| Пилот: сервис + 2 интеграции + журналирование | от 480 000 ₽ | 4–6 недель |
| Промышленный контур: очереди, метрики, SLA | 0,9–1,2 млн ₽ | 4–6 недель |
| Сопровождение и развитие | от 50 000 ₽/мес | ежемесячно |
Совместимость с нашим стеком
FastAPI — технический «клей» всех наших ИИ-направлений. С моделями: GigaChat и YandexGPT через их SDK/REST, локальные LLM через OpenAI-совместимый протокол vLLM или Ollama — единый клиент на все случаи. С данными: pgvector/Qdrant для RAG. С 1С — типовой сценарий из гайда «Как интегрировать LLM в 1С»: 1С вызывает HTTP-сервис, получает структурированный JSON. Со speech-контуром: тот же сервис раздаёт задачи транскрибации и собирает результаты — рядом со STT/TTS-контуром.
Python-стек значит и то, что ML-инженеры и бэкендеры работают в одном языке: не нужно держать два отдела на разных рельсах.
Лицензии и импортозамещение
FastAPI и Pydantic — MIT; uvicorn/starlette под капотом — тоже открытые. Сервис целиком состоит из открытых компонентов и разворачивается в контуре заказчика: у ИИ-слоя нет зарубежных облачных зависимостей, если вы их сами не добавили вызовом внешнего API. Код сервиса — собственность заказчика по договору разработки; в документации поставки перечисляем все открытые компоненты с лицензиями — это упрощает и приёмку, и последующую аттестацию.
Для госсектора FastAPI — де-факто стандарт: на нём строится большинство российских ИИ- и интеграционных сервисов, специалистов на рынке достаточно, вендорской привязки нет.
Тонкости, которые всплывают в проектах
Первое — блокирующие вызовы: одна синхронная библиотека в асинхронном коде «замораживает» весь воркер; ML-зависимости проверяем на async-совместимость или выносим в отдельные процессы. Второе — таймауты и ретраи к LLM: без них зависший вызов модели каскадно роняет портал. Третье — идемпотентность фоновых задач, чтобы повтор опроса не дублировал обработку. Четвёртое — стоимость: журналируем токены и маршрутизируем простые задачи на дешёвые модели — экономия выходит заметная. Порядок запуска пилота целиком — в гайде «Как запустить пилот ИИ за 4 недели».
Из чего состоит типовой ИИ-сервис на FastAPI
Конкретика помогает оценить объём работ, поэтому вот состав сервиса из реального пилота. Эндпоинт «спросить»: POST с текстом вопроса и контекстом вызывающей системы; внутри — сборка промпта, поход в RAG-слой, вызов модели, постобработка, ответ JSON со ссылками на источники. Эндпоинт «извлечь»: принимает документ или его фрагмент, возвращает структурные данные по схеме — для роботов и 1С. Эндпоинт статуса: для долгих операций — батч-транскрибация, массовая разметка: задача ставится в очередь, потребитель опрашивает статус и забирает результат.
Внутренние слои: клиент моделей с переключением провайдеров (GigaChat/YandexGPT/локальный инференс) и учётом лимитов; слой журналирования — каждый вызов с токенами, латентностью и версией промпта; слой валидации на Pydantic — схемы входов и выходов описаны один раз; конфигурация — модели, промпты и лимиты вынесены в настройки, а не зашиты в код. Отдельно — health- и metrics-эндпоинты для мониторинга.
Такой сервис — это обычно 2–4 тысячи строк аккуратного кода с тестами. Его реально передать команде заказчика: OpenAPI-документация, тесты на ключевые сценарии и runbook входят в поставку. Это и есть главная ценность FastAPI: не мода, а предсказуемость.
Ещё два штриха к промышленной эксплуатации. Конфигурация промптов: тексты промптов хранятся не в коде, а в файлах настроек с версионированием — обновление формулировок не требует пересборки и деплоя, а история изменений читается в репозитории. Фичефлаги моделей: переключение провайдера и версии модели — флагом в конфигурации, с быстрым откатом; новые версии моделей катятся сначала на долю трафика, как обычный релиз.
И про документацию: OpenAPI-схема, которую FastAPI отдаёт автоматически, — это ещё и контракт для тестирования. Мы генерируем по ней клиент для 1С и проверок, поэтому при изменении API тесты падают раньше, чем замечают пользователи.
Отдельно про безопасность: у ИИ-сервиса те же требования, что у любого корпоративного API, — аутентификация вызывающих систем, авторизация по ролям, ограничение частоты запросов, журналирование. Плюс специфика: данные, которые нельзя отправлять во внешний API, перехватываются и маскируются до вызова провайдера. Эти слои входят в пилот по умолчанию, а не «потом доделаем» — переделывать защиту после запуска дороже, чем заложить сразу.
Финальная деталь — окружение: сервис поставляется контейнером с зафиксированными зависимостями, конфигурация — через переменные окружения, поэтому один и тот же образ едет со стенда на пилот и в бой без пересборки. Это скучная инженерия, но именно она отличает демонстрацию от системы, которая работает годами.
Как стартуем
- Опишите системы-потребители (1С, портал, бот) и 2–3 сценария — за день набросаем контракт API.
- За 2 недели соберём каркас со стендом: ручки, интеграция одной модели, журнал вызовов.
- Смета пилота — от 480 000 ₽ за 4–6 недель; КП за 1 рабочий день.
Цены сверены с каноном ответов для ИИ new-sst.ru — актуальны на сентябрь 2026.