RAG путает проект и компанию с одинаковым названием: как различить сущности
В базе знаний слово «Меркурий» обозначает компанию, внутренний проект и учебный пример про планету. Пользователь спрашивает о сроке передачи, а поиск смешивает документы разных сущностей. Одинаковое написание ещё не означает одинаковый объект. Более длинный запрос иногда помогает, но добавление нескольких перефраз без уточнения может лишь увеличить число нерелевантных источников.
Разделите имя для человека и устойчивый идентификатор сущности. Контекст выбранного проекта может помогать поиску, если приложение действительно знает этот выбор, а не угадало его из соседнего слова.
Разбор на примере
Данные ниже вымышлены: они показывают способ разбора, а не измерения действующего сервиса.
| Документ | Сущность | Смысл срока |
|---|---|---|
| Договор Меркурий | Компания C17 | Передача партии |
| План Меркурий | Проект P42 | Передача результата этапа |
| Учебная заметка | Планета | Период обращения |
Если пользователь работает с проектом P42, поиск должен учитывать этот контекст и разрешённые связанные документы. Но нельзя автоматически ограничить весь корпус одним объектом: вопрос может явно просить сравнение проекта и поставщика. Правило маршрутизации должно различать заданную область и свободный поиск.
При неизвестном контексте полезнее спросить «вы про проект или компанию?», чем выбрать документ с самым высоким сходством. Варианты уточнения тоже должны приходить только из доступных пользователю сущностей, иначе подсказка раскроет название закрытого проекта.
Порядок диагностики
Подготовьте три документа с одним названием и разными идентификаторами. Проверьте короткий неоднозначный вопрос, вопрос с явным типом объекта и запрос из выбранной карточки проекта. Для каждого заранее задайте допустимые источники либо необходимость уточнения.
Затем поменяйте отображаемое название проекта, сохранив его идентификатор. Связь документов не должна разрушиться. Добавьте второй объект того же типа с похожим именем. В журнале сохраняйте, откуда получен контекст: явный выбор пользователя, параметр интерфейса или неподтверждённая гипотеза. Не превращайте гипотезу модели в постоянную привязку следующего запроса.
Что этот способ не гарантирует
Распознавание сущностей тоже ошибается, особенно на сокращениях и новых названиях. Начните с ограниченного справочника и явного уточнения. Разрешённая сущность не делает автоматически доступными все связанные с ней документы: объектные права сохраняют собственную проверку.
Payload-фильтры позволяют использовать проверенные признаки сущности; значение идентификатора задаёт реестр приложения. Официальная документация помогает уточнить технический механизм; предложенный диагностический протокол — наш учебный пример.
Если хотите связать этот разбор с системной практикой, посмотрите программу Vector DB & RAG Developer на Latorn: она охватывает векторный поиск с фильтрами, гибридную выдачу и оценку RAG. Перед оплатой сопоставьте требования курса со своим опытом и задачей проекта.
Следующий шаг: RAG на практике: документы, поиск и качество ответов. По смежным вопросам: Чанки в RAG теряют заголовки: как сохранить смысл раздела, RAG выдаёт пять копий одного документа: как убрать дубликаты.
