Перейти к основному содержимому

Rerank

Rerank-модели сортируют текстовые отрывки / документы по семантической релевантности к определенному запросу. Они часто используются для сортировки результатов поиска, возвращаемых существующим поисковым решением.

Попробуем выделить 3 самых релевантных документа для конкретного вопроса:

from langchain_core.documents import Document
from langchain_compressa.reranks import CompressaRerank

reranker = CompressaRerank(
base_url="https://compressa-api.mil-team.ru/v1", #при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
api_key="Ваш_API_ключ_Compressa", #при локальном запуске вы можете не требовать ключ или создать свой
top_n=3
)

# Создаем список из документов в формате Langchain, добавляем metadata
documents = [
Document(
page_content="""Карсон-Сити — столица американского штата Невада.
По данным переписи населения США 2010 года, население Карсон-Сити составляло 55 274 человека.""",
metadata={"source": "https://пример.ru/1"}
),
Document(
page_content="""Содружество Северных Марианских островов — группа островов в Тихом океане,
которые являются политическим разделением, контролируемым Соединенными Штатами.
Столица — Сайпан.""",
metadata={"source": "https://пример.ru/2"}
),
Document(
page_content="""Шарлотта-Амалия — столица и крупнейший город Виргинских островов США.
В нем проживает около 20 000 человек. Город находится на острове Сент-Томас.""",
metadata={"source": "https://пример.ru/3"}
),
Document(
page_content="""Вашингтон, округ Колумбия (также известный как просто Вашингтон или
округ Колумбия, и официально как округ Колумбия) — столица Соединенных Штатов.
Это федеральный округ. На территории находятся резиденция президента США и многие
крупные государственные правительственные учреждения. Это делает его политическим центром
Соединенных Штатов Америки.""",
metadata={"source": "https://пример.ru/4"}
),
Document(
page_content="""Смертная казнь существовала в Соединенных Штатах еще до того,
как Соединенные Штаты стали страной. По состоянию на 2017 год смертная казнь разрешена
в 30 из 50 штатов. Федеральное правительство (включая вооруженные силы США) также
применяет смертную казнь.""",
metadata={"source": "https://пример.ru/5"}
)
]

# Определяем вопрос, для которого мы выделим 3 самых релевантных документа из нашего списка
query = "Какая столица у Соединенных Штатов Америки?"

compress_res = reranker.compress_documents(query=query, documents=documents)

Пользу реранжирования проще понять при работе с большим массивом документов. Мы подготовили специальный гайд, в котором улучшаем точность поиска по ключевым словам при помощи CompressaRerank.