Embed 5 и Rerank 5 теперь доступны на OpenRouter. Вот как превратить их в рабочий RAG-пайплайн всего в нескольких десятках строк кода на Python через единый API.
Это самые мощные модели извлечения информации от Cohere на сегодняшний день, обеспечивающие ведущую производительность при работе с корпоративными документами и сложными задачами поиска. Если вы уже используете OpenRouter, вы можете начать работу немедленно — используя те же API-ключ и кредиты, что и для существующих моделей, без дополнительной настройки.
RAG обосновывает ответ LLM на основе ваших собственных данных, извлекая релевантные фрагменты текста перед генерацией. Поиск по вклейкам (эмбеддингам) обеспечивает быстрое и эффективное приближение на первом этапе. Затем реранкер сопоставляет запрос и каждого кандидата вместе, добавляя точности извлеченным данным.
Эту архитектуру определяют две особенности моделей Cohere:
- Embed 5 Pro и Fast используют одно общее пространство эмбеддингов. Создайте индекс с помощью embed-5-pro для максимального качества, а затем выполняйте запросы через embed-5-fast для снижения задержки.
- Оценки Rerank 5 откалиброваны. Оценка имеет одинаковое значение для разных запросов и доменов, поэтому один порог релевантности может отсеять слабый контекст до того, как он попадет в LLM.
К концу у вас будет короткий скрипт на Python, который отвечает на вопросы по вашей документации с указанием оцененных цитат. Этот же подход применим практически к любым сценариям поиска: от корпоративного поиска и поддержки клиентов до управления знаниями и поиска документов.
RAG-пайплайн состоит из двух частей: автономной задачи, которая строит индекс для поиска, и онлайн-маршрута, который выполняется для каждого вопроса. Понимание того, какие вызовы происходят один раз, а какие — для каждого запроса, помогает объяснить большую часть затрат и задержек пайплайна. Индексация запускается один раз для всего корпуса текстов. Каждый вопрос затем требует одного вызова Embed 5 Fast, одного вызова Rerank 5 и одного вызова чата, и все это через API OpenRouter.
Настройка
Вам понадобятся Python 3.10 или новее, API-ключ OpenRouter, Python SDK OpenRouter и NumPy для векторного хранилища в памяти.
Embed 5 возвращает матрёшечные векторы (Matryoshka vectors) шести размеров, по умолчанию 2048. Мы рекомендуем 1024-мерные int8 векторы как оптимальное соотношение качества и стоимости; API эмбеддингов OpenRouter возвращает числа с плавающей точкой, поэтому в этой статье используются 1024-мерные числа с плавающей точкой.
Хранилище NumPy делает этот пример простым. Для продакшена замените его предпочитаемой векторной базой данных, такой как pgvector, Qdrant, Pinecone или Weaviate.
Индексация
Индексация преобразует каждый фрагмент текста в вектор — список чисел, где близкие по смыслу элементы расположены рядом друг с другом. Она запускается один раз для всего корпуса, поэтому именно на этом этапе модель высочайшего качества оправдывает себя.
Разделите каждый документ на фрагменты, внедрите их с помощью Embed 5 Pro в качестве search_document и нормализуйте векторы так, чтобы скалярное произведение было равно косисному сходству.
Пример корпуса — это документация вымышленного API с несколькими специально созданными похожими, но неверными вариантами:
Три ключевых детальных момента:
- input_type: сообщает Embed 5, на какой стороне поиска находится текст. OpenRouter передает это значение в Cohere.
- Пакетирование (Batching): отправляет множество фрагментов за один запрос, что сокращает количество сетевых циклов и ускоряет индексацию. Это не влияет на стоимость, так как эмбеддинги тарифицируются за токен.
- Размер фрагмента: упаковка целых абзацев следует стратегии по абзацам из руководства OpenRouter, а 1500 символов — это примерно 300–400 английских токенов. Embed 5 принимает до 128 тыс. токенов, но каждый фрагмент также проходит через Rerank 5, который считывает до 32 тыс. токенов объединенных запроса и фрагмента и разбивает все, что длиннее, на несколько проходов.
Извлечение (Retrieval)
Извлечение находит фрагменты, векторы которых расположены ближе всего к вектору вопроса. Это служит представлением семантического сходства между двумя частями контента.
Создайте эмбеддинг для вопроса с помощью Embed 5 Fast в качестве search_query, а затем извлеките широкий набор кандидатов из 20 фрагментов по косисному сходству.
Запросы к индексу, созданному с помощью Pro, с использованием Fast работают потому, что обе модели разделяют общее пространство эмбеддингов, если обе стороны используют одинаковые размерности. Это разделение мы и рекомендуем: в тестах Cohere на 40 наборах данных запросы Fast к индексу Pro сохранили 98.4% качества извлечения по сравнению с All-Pro, против 96.6% для Fast с обеих сторон. При использовании любого другого семейства моделей вам пришлось бы использовать одну и ту же модель с обеих сторон.
Давайте закинем широкую сеть на этом этапе: полнота (recall) — это задача поисковой системы, а точность (precision) — задача Rerank. В руководстве OpenRouter рекомендуется подавать 10–20 кандидатов на повторное ранжирование топ-3–5.
Реранкинг (Reranking)
Реранкинг заново оценивает короткий список, считывая вопрос и каждый фрагмент вместе. Это слишком медленно для работы по всему индексу, но точнее, чем векторное сходство, поэтому оно запускается только для лучших кандидатов. Rerank не требует Embed или какой-либо модели эмбеддингов. Он работает как простой второй этап с вашей существующей системой семантического, ключевого или гибридного поиска.
Отправьте запрос и 20 кандидатов в Rerank 5, оставьте топ-5 и отбросьте все, что ниже порога релевантности.
Каждый результат содержит позицию кандидата в вашем списке (индекс) и relevance_score согласно схеме ответа rerank.
Что Rerank 5 добавляет на этом этапе:
- Откалиброванные оценки. Оценки остаются стабильными для разных запросов и доменов, поэтому один параметр MIN_SCORE определяет, что дойдет до LLM.
- Контекст на 32 тыс. токенов. Длинные фрагменты оцениваются целиком.
- Полуструктурированные данные. JSON-записи и таблицы отлично проходят реранкинг, если они отформатированы как строки YAML.
- Отсутствие необходимости в переиндексации при обновлении. Rerank считывает сырой текст во время запроса, поэтому смена модели — это изменение одной строки.
Используйте rerank-5-pro для запросов, требующих глубоких рассуждений, а также для длинных или специфичных для домена документов. Используйте rerank-5-fast для высокопроизводительного поиска и агентов, выполняющих поиск многократно для каждой задачи. Следует отметить: Rerank 5 работает только с текстом, но поддерживает обработанные PDF-файлы.
Генерация
Генерация передает лучшие фрагменты в LLM в качестве пронумерованных источников и просит ответить только на их основе. Это удерживает ответы в рамках ваших документов и дает читателям цитаты, которые они могут проверить. Если ничто не преодолело пороговое значение, полностью пропустите вызов LLM.
Передача заголовка каждого фрагмента вместе с его текстом позволяет модели ссылаться на что-то читаемое; также добавляйте URL-адреса, если они есть в вашей документации. Руководство OpenRouter вместо этого использует API Responses для этого шага. Чтобы следовать ему, вызовите client.responses.send с системным промптом в качестве инструкций, а источниками и вопросом в качестве входных данных, а затем прочитайте ответ из элемента сообщения в res.output, а не из choices.
Результаты
Здесь мы проверим, улучшили ли реализованные нами шаги наши ответы.
Реранкинг оправдывает свой дополнительный вызов, когда он уверенно выбирает правильный фрагмент и отбрасывает похожие, но неверные варианты, которые поиск по эмбеддингам ставит чуть ниже.
Итоги
Все в этом пайплайне работало через один ключ API и один клиент. Embed 5 Pro построил индекс, Embed 5 Fast и Rerank 5 обработали каждый вопрос, а модель чата написала ответ, и все это без необходимости управлять отдельными SDK, учетными записями или счетами.
Этот единственный интерфейс также делает пайплайн простым для развития. Каждая модель — это просто строка, поэтому попробовать rerank-5-fast вместо rerank-5-pro или другую модель чата можно изменением одной строки.
Начните с образца корпуса, замените его собственной документацией и посмотрите, что Rerank 5 выведет наверх.
Куда двигаться дальше:
- Гибридный поиск. Добавьте результаты по ключевым словам (BM25) наряду с векторными результатами. Rerank считывает сырой текст, поэтому он оценивает оба списка за один вызов.
- Меньший индекс. Уменьшите размерность до 512 или 256 с помощью собственного API Cohere либо используйте int8 или бинарные векторы.
- Изображения и PDF. Модель Embed 5 поддерживает встраивание изображений и смешанных текстово-графических данных, таких как страницы PDF, а API эмбеддингов OpenRouter принимает части содержимого image_url. Rerank 5 работает только с текстом, поэтому выполняйте ранжирование таких результатов на основе их текста (например, разобранного текста страниц или подписей) либо пропустите для них повторное ранжирование.
- Оценка. Разметьте небольшой набор реальных запросов, сравните коэффициент попадания (hit rate) на позиции 5 с переранжированием и без него, а также настройте параметр MIN_SCORE на том же наборе.
- Знакомство с Compass. Корпоративная платформа поиска и извлечения данных от Cohere объединяет Embed и Rerank в единое решение, упрощая создание мощных поисковых систем и приложений на базе ИИ для работы с корпоративными данными. Теперь доступно облачным клиентам.
Полезные ссылки
- API эмбеддингов OpenRouter
- Python SDK OpenRouter для переранжирования
- Блог-пост о выходе Embed 5
- Блог-пост о выходе Rerank 5












