Rerank
Rerank-модели сортируют текстовые отрывки / документы по семантической релевантности к определенному запросу. Они часто используются для сортировки результатов поиска, возвращаемых существующим поисковым решением.
Попробуем выделить 3 самых релевантных документа для конкретного вопроса:
- Python (Langchain)
- cURL
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/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)
# при локальном запуске замените на ваш url, например http://localhost:8080/v1/rerank
# при локальном запуске вы можете не требовать API ключ или создать свой
curl -X POST "https://compressa-api.mil-team.ru/v1/rerank" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H 'Authorization: Bearer Ваш_API_ключ_Compressa' \
-d '{
"model": "Compressa-ReRank",
"query": "Какая столица у Соединенных Штатов Америки?",
"documents": [
"Карсон-Сити — столица американского штата Невада.
По данным переписи населения США 2010 года, население Карсон-Сити составляло 55 274 человека.",
"Содружество Северных Марианских островов — группа островов в Тихом океане,
которые являются политическим разделением, контролируемым Соединенными Штатами.
Столица — Сайпан.",
"Шарлотта-Амалия — столица и крупнейший город Виргинских островов США.
В нем проживает около 20 000 человек. Город находится на острове Сент-Томас."
],
"return_documents": false
}'
Пользу реранжирования проще понять при работе с большим массивом документов. Мы подготовили специальный гайд, в котором улучшаем точность поиска по ключевым словам при помощи CompressaRerank.