Когда наш ИИ-эксперт по охране труда начал путать инструкции и выдавать опасные советы, мы поняли: дальше так нельзя. Пришлось полностью пересмотреть подход к данным, поиску и архитектуре. Спойлер: помогли иерархические чанки и LangGraph. На старте мы, как и многие, собрали быстрый MVP на LangChain: ChromaDB, простая нарезка текста, LLM-реранкер. На десятке документов бот отвечал блестяще. Но когда база разрослась до тысяч файлов, система превратилась в «чёрный ящик»: Первым делом переписали ETL. Отказались от тупой нарезки по символам — теперь каждый чанк «знает», из какого он раздела и пункта. Внедрили дедупликацию и перенесли базу в Qdrant (отдельный сервис, батчевая загрузка, метаданные). Это дало +40% точности при поиске шаблонов за счёт учёта названий файлов. Гибридный поиск + Query Expansion — добавили BM25 к векторам и научились переформулировать запросы. Например, на «нужны ли каски на крыше» система теперь ищет и «СИЗ при работе на высоте». Заменили «тяжёлую» LLM на специали