Настройка LLM и AI-агентов под задачу/aka-gst

Раздел · 3 мин

Разбор кейса

Содержание раздела
  1. Задача
  2. Решение
  3. Проверенный результат
  4. Обнаруженная ошибка
  5. Ограничения

Задача

Собрать локальный сервис, который классифицирует обращения, безопасно вызывает разрешённые инструменты и отвечает по документам с проверяемыми источниками.

Решение

  • Ollama и qwen3:8b для локальной генерации;
  • Pydantic и JSON Schema для контрактов;
  • allowlist из двух узких инструментов;
  • SQLite для памяти, audit log и небольшого векторного индекса;
  • qwen3-embedding:0.6b для поиска по русскоязычным документам;
  • FastAPI и Docker Compose для локального API;
  • pytest и эталонный RAG-набор для измеримой проверки.

Проверенный результат

  • 41 тест после добавления API-защиты и backup/restore;
  • RAG evaluation: 6/6 сценариев, retrieval hit rate 100%;
  • корректный отказ на вопрос, ответа на который нет в документах;
  • контейнер ARM64 проходит health/readiness и обращается к Ollama хоста.

Цифры относятся к демонстрационному набору и не переносятся автоматически на данные клиента.

Обнаруженная ошибка

На первом сквозном тесте модель перепутала цену 2490 с числом 1001 из ID заказа. Универсальный калькулятор был заменён узким инструментом calculate_order_total, который получает цену из доверенного справочника. Это устранило возможность самостоятельно подставить цену.

Ограничения

  • demo-документы вымышлены;
  • SQLite-поиск рассчитан на небольшой объём;
  • локальная модель может ошибаться;
  • публичный доступ требует TLS, управления секретами, лимитов запросов и мониторинга;
  • качество нового клиентского набора должно измеряться отдельно.