Rerank
Rerank-модели сортируют текстовые отрывки / документы по семантической релевантности к определенному запросу. Они часто используются для сортировки результатов поиска, возвращаемых существующим поисковым решением.
Попробуем выделить 3 самых релевантных документа для конкретного вопроса:
- Python (Langchain)
- cURL
import requests
def rerank_openai(query, documents, api_base, model, api_key=None, top_n=None):
url = f"{api_base}/v1/rerank"
headers = {
"Content-Type": "application/json"
}
if api_key:
headers["Authorization"] = f"Bearer {api_key}"
payload = {
"model": model,
"query": query,
"documents": documents,
}
if top_n is not None:
payload["top_n"] = top_n
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
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": [
"Карсон-Сити — столица американского штата Невада.\nПо данным переписи населения США 2010 года, население Карсон-Сити составляло 55 274 человека.",
"Содружество Северных Марианских островов — группа островов в Тихом океане,\nкоторые являются политическим разделением, контролируемым Соединенными Штатами.\nСтолица — Сайпан.",
"Шарлотта-Амалия — столица и крупнейший город Виргинских островов США.\nВ нем проживает около 20 000 человек. Город находится на острове Сент-Томас."
],
"return_documents": false
}'
Пользу реранжирования проще понять при работе с большим массивом документов. Мы подготовили специальный гайд, в котором улучшаем точность поиска по ключевым словам при помощи CompressaRerank.