bm25.
От совпадения слов к пониманию смысла запроса: как эволюционировали поисковики и AI‑чаты
Кто помнит поисковики начала двухтысячных, наверняка помнит, что результаты выдачи иногда имели мало общего с самим запросом. Системы слабо учитывали порядок слов, синонимы, предлоги и отрицания, поэтому пользователям приходилось упрощать формулировки, добавлять уточнения и пробовать запрос в нескольких вариантах.Чат‑боты того времени тоже были совсем не похожи на современные AI‑чаты. Они находили во фразе знакомое ключевое слово и выбирали одну из заранее подготовленных реплик, а любое отклонение от предусмотренного сценария быстро заводило диалог в тупик.
Как устроен RAG для юридических документов и почему одной LLM оказалось недостаточно
Первый вариант системы выглядел вполне стандартно: документы разбиваются на фрагменты, для них считаются embeddings, пользователь задаёт вопрос, несколько наиболее подходящих фрагментов отправляются в LLM вместе с запросом. Модель формулирует ответ — на первых тестах этого было достаточно.Проблемы начались на вопросах, которые на первый взгляд мало чем отличаются друг от друга:Какая пеня установлена в договоре № 14/24.7645?Кто из арендаторов не заплатил за май?А у него предусмотрена индексация?Контрагент предлагает добавить пеню в 0,01%. Насколько это существенно?
Как мы научили ИИ читать корпоративные регламенты: от наивного RAG до измеримого pipeline
Почему корпоративный RAG - это не «загрузить документы в векторную базу»В любой большой компании есть люди, которым регулярно пишут:«А как у нас оформляется постоплата?»«Кто согласует риски в сделке?»«За сколько дней нужно оформить командировку?»
[3-8] Context Ranking: как выбрать полезные фрагменты из репозитория
Fill-in-the-Middle: как модель дописывает код в середине файла Autocompletion: как LLM создает подсказки кодаВ предыдущей заметке мы выяснили, что для точного автодополнения одной LLM недостаточно. Если на вход модели передавать только код вокруг курсора, то она не будет знать устройство конкретного проекта: какие сервисы существуют, как называются методы и какой стиль написания кода использует команда. В рассмотренном ранее примере
Как я сделал локальный RAG-сервис для SRE: ищем по документации, ранбукам и коду через Ollama
Недавно я делал учебный проект про автоматизацию документирования инцидентов. Поначалу планы были грандиозными: инциденты, таймлайны, интеграции с мониторингами, чатами, постмортемы, подсказки дежурным инженерам.Но довольно быстро стало понятно, что с временными и ресурсными ограничениями лучше не пытаться написать маленький PagerDuty. Поэтому я сузил задачу до более реалистичного ядра: локального RAG-сервиса, который ищет по документации, ранбукам и коду, а затем передаёт найденный контекст в LLM.Так появился llmortem — FastAPI-сервис, который можно подключить к OpenWebUI как OpenAI-compatible backend.
Эволюция ‘More Like This’
Во многих поисковых сценариях пользователь начинает не с пустой строки запроса, а с существующего результата.

