• О компании Milvus
  • Начать работу
  • Понятия
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
    • Оркестровка
    • Агенты
    • Оценка и отслеживаемость
    • Внедрение моделей
    • LLM
    • Инженерия знаний
    • Источники данных
    • Прочее
  • Учебные материалы
  • Часто задаваемые вопросы
  • API Reference

Поиск с помощью Jev и Milvus

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

Milvus и Jev отвечают за разные части этого рабочего процесса. Milvus хранит вложения и извлекает записи-кандидаты, используя фильтры метаданных для таких ограничений, как версия продукта или область действия базы знаний. Jev оценивает значение извлеченного текста в сравнении с инструкциями. Ваше приложение может использовать его оценки для выбора доказательств или управления следующим этапом поиска.

Что делает Jev?

Запрос к Jev содержит контекст и один или несколько вопросов для оценки. Его типизированные результаты включают выбор из фиксированных вариантов, упорядоченную оценку и вероятность «да/нет». Эти результаты позволяют коду приложения принимать решение без анализа объяснений в свободной форме. При необходимости модель генерации по-прежнему может составить ответ или следующий поисковый запрос.

Например, пользователь спрашивает, как установить Atlas v2. Milvus может ограничить поиск документацией по версии v2 и вернуть похожие фрагменты, касающиеся установки, обновлений и устранения неполадок. Затем Jev оценивает, какие фрагменты объясняют начальную настройку. Приложение передает выбранные доказательства модели, генерирующей ответ.

Распределение обязанностей прост:

  1. Поиск с помощью Milvus: нахождение кандидатов в рамках требуемых ограничений метаданных.
  2. Оценка с помощью Jev: оценка этих кандидатов с учетом вопроса и критериев, специфичных для задачи.
  3. Действия в коде приложения: переупорядочить результаты, отфильтровать контекст, повторно использовать ответ или продолжить поиск.

Некоторые решения принимаются до начала поиска. Jev может выбрать область поиска или оценить поступающие документы до того, как они поступят в коллекцию. Контроль доступа и точные фильтры остаются в ведении приложения.

Изучите сценарии поиска

Коллекция «Поиск с Jev» содержит девять готовых к запуску учебных примеров. В каждом из них используется небольшой синтетический набор данных и демонстрируются найденные записи, оценки и последующие действия.

Выберите более убедительные доказательства

  • Переранжируйте результаты поиска: изменяйте порядок документации и воспоминаний агентов-программистов. Воспоминание об ошибке порта ноутбука может напоминать проблему с подключением контейнера; более полезное воспоминание фиксирует фактическое устранение неполадки между контейнером и хостом.
  • Фильтрация найденного контекста: после того как Milvus применит фильтр версий, отличайте инструкции по первоначальной установке от фрагментов, касающихся обновления и устранения неполадок.
  • Переранжируйте связи в графе: ответьте на вопрос о месте рождения автора книги, выбрав как связь «книга–автор», так и связь «автор–место рождения», а затем сохраните этот порядок при извлечении отрывков из источников.

Управление поиском и повторное использование ответов

  • Определение момента прекращения поиска: модель генерации предлагает варианты поиска на основе накопленных данных, в то время как Jev оценивает, можно ли ответить на исходный вопрос. Примеры охватывают прямой ответ, вопрос с двумя промежуточными шагами и недоступный факт, поиск по которому достигает предела без получения ответа.
  • Маршрутизация поисковых запросов: выберите поиск по документации, счетам или в памяти, а затем примените соответствующий фильтр Milvus. Запрос, выходящий за пределы области поиска, проходит по отдельному пути.
  • Проверка повторного использования семантического кэша: извлеките похожий запрос из кэша, а затем проверьте, удовлетворяет ли его ответ требованиям нового запроса в отношении задачи, языка и контекста.

Улучшение и проверка конвейера знаний

  • Отбор документов перед индексированием: отделяйте содержательные операционные рекомендации от рекламных или неполных материалов с помощью отдельных действий по индексированию, проверке и исключению.
  • Проверка найденных фрагментов: выявляйте текст, который пытается перенаправить помощника, сохраняя при этом обычные рекомендации по безопасности. Это дополнительный этап проверки, а не гарантия безопасности.
  • Оценивайте доказательства поиска: оценивайте релевантность фрагментов, достаточность доказательств и наличие в ответе необоснованных утверждений. В примерах намеренно удаляются доказательства или добавляются необоснованные утверждения, чтобы сделать различие наглядным.

Готовый интерфейс для переранжирования

Milvus Model предоставляет доступ к интерфейсу переранжирования на стороне приложения ( JevRerankFunction): передайте запрос и тексты документов-кандидатов и получите результаты с оценками и исходными индексами, отсортированные по релевантности. Используйте эти индексы для переупорядочивания записей, возвращаемых Milvus.

Интеграция с Jev была включена в основной код. Ознакомьтесь с реализацией и параметрами конструктора для текущего API. Он принимает TYPESAFE_API_KEY, а по умолчанию используется jev-latest. Используйте версию пакета, включающую эту интеграцию.

Текущий оберточный модуль использует подсказку релевантности «утверждение и доказательство». Убедитесь, что этот критерий подходит для вашей задачи. Для пользовательских оценок, таких как совместимость с памятью, остановка или маршрутизация, следуйте инструкциям по ссылкам, используя API TypeSafe напрямую. В инструкциях демонстрируются прямые вызовы API из кода приложения на Python.

Попробуйте с Milvus

Откройте учебник по переранжированию в Colab, чтобы начать с поиска и ранжирования кандидатов. Информацию о локальной настройке и полный список учебников см. в файле README коллекции.

В примерах используется ключ API Gemini для вложений и ключ API TypeSafe для Jev. В учебном пособии по агентскому поиску также используется Gemini для генерации запросов и ответов. Пример текста отправляется этим поставщикам API, и вызовы могут потреблять кредиты.

Учебные материалы по умолчанию запускаются с использованием Milvus Lite и включают варианты подключения к серверу Milvus или облаку Zilliz. Во всех вариантах развертывания применяется одинаковое распределение задач: Milvus извлекает кандидаты, а приложение отправляет соответствующий текст в Jev для оценки.

Рассматривайте примеры как отправную точку для выработки собственных критериев и пороговых значений. Оценка релевантности не гарантирует правильности ответа, а эти небольшие обучающие наборы данных не обеспечивают точности или скорости в производственной среде.

Изучите реализации и результаты оценки

Следующие проекты с открытым исходным кодом применяют эти идеи к более масштабным рабочим процессам поиска. В приведенных ссылках на отчеты объясняются наборы данных, сравнения и ограничения каждого эксперимента.

ПроектСценарий поискаРабота Jev
MemSearchПостоянная память в формате Markdown для кодирующих агентовРеализация Jev · Оценка
Векторный граф RAGВекторный поиск и поиск по графам для многошаговых запросовРеализация в Jev · Оценка
DeepSearcherИтеративный поиск по закрытым знаниямПрограмма для проведения экспериментов · Оценка с остановкой поиска (автономный эксперимент)
GPTCacheПовторное использование ответов на совместимые запросыРеализация Jev · Оценка

Вклад DeepSearcher заключается в автономном эксперименте с остановкой поиска. Ссылки на другие реализации демонстрируют интеграцию Jev с конкретными задачами. Результаты этих проектов следует рассматривать в контексте их собственной оценки, а не рассматривать как общий эталон.