На этой странице

Answer Search

Полный RAG-цикл: поиск источников, семантическое ранжирование через BGE-reranker-v2-m3, чтение релевантных страниц и синтез финального ответа с указанием релевантности каждого источника.

POSThttps://srezai.ru/api/v1/answer

Пример запроса

bash
curl -X POST https://srezai.ru/api/v1/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer srz_live_ВАШ_КЛЮЧ" \
  -d '{
    "query": "как работает BGE-reranker-v2-m3",
    "depth": "balanced"
  }'

Параметры тела

querystringобязательный

Вопрос или поисковый запрос. Обрезается до 2000 символов. Пустой запрос вернёт 400.

depthstringнеобязательный

Глубина поиска: fast (2 страницы), balanced (5 страниц, по умолчанию), deep (10 страниц). Больше страниц - выше качество ответа, но дольше время выполнения.

languagestringнеобязательный

Язык поиска: auto (по умолчанию), ru,en. Определяет язык источников и ответа.

Конвейер обработки

Answer Search выполняет пять этапов:

  1. Переформулировка запроса - расширение ключевых слов и синонимов для лучшего покрытия поиска
  2. Параллельный поиск - несколько вариантов запроса идут одновременно, результаты дедуплицируются
  3. Семантическое ранжирование - BGE-reranker-v2-m3 оценивает релевантность каждого результата к исходному запросу и сортирует по убыванию
  4. Чтение страниц - топ N страниц читаются параллельно, извлекается текст
  5. Синтез ответа - LLM собирает финальный ответ на основе прочитанного контента

Ответ

json
{
  "answer": "BGE-reranker-v2-m3 - это семантическая модель от BAAI для ранжирования...",
  "sources": [
    {
      "url": "https://huggingface.co/BAAI/bge-reranker-v2-m3",
      "title": "BAAI/bge-reranker-v2-m3 · Hugging Face",
      "relevance": 0.804,
      "chars_read": 2847,
      "read_success": true
    },
    {
      "url": "https://github.com/FlagOpen/FlagEmbedding",
      "title": "FlagOpen/FlagEmbedding: Retrieval and Reranking",
      "relevance": 0.742,
      "chars_read": 1956,
      "read_success": true
    }
  ],
  "confidence": 0.85,
  "tookMs": 19342
}

Поля ответа

answerstringнеобязательный

Готовый ответ в виде текста. Синтезирован из прочитанных источников.

sourcesarrayнеобязательный

Массив использованных источников. Каждый источник содержит:

  • url - адрес страницы
  • title - заголовок страницы
  • relevance - оценка релевантности от BGE-reranker (0-1)
  • chars_read - количество прочитанных символов
  • read_success - успешно ли прочитана страница
  • rejection_reason - причина отказа (если read_success=false)

confidencenumberнеобязательный

Уверенность в ответе от 0 до 1. Основана на качестве источников и их релевантности.

tookMsnumberнеобязательный

Время выполнения всего конвейера в миллисекундах.

Интерпретация relevance

Поле relevance показывает семантическую близость источника к запросу:

  • 0.7-1.0 - высокая релевантность, источник точно по теме
  • 0.4-0.7 - средняя релевантность, частично затрагивает тему
  • 0.0-0.4 - низкая релевантность, косвенное отношение к запросу

Источники всегда отсортированы по убыванию relevance - первые самые релевантные.

О BGE-reranker-v2-m3

BGE-reranker-v2-m3 - multilingual семантическая модель от BAAI (Beijing Academy of AI) для точного ранжирования пар (запрос, документ). Поддерживает русский, английский и ещё 100+ языков.

В отличие от лексического поиска (BM25), BGE-reranker понимает смысл текста: запрос «как установить Python» найдёт релевантную статью даже если в ней нет слова «установить», но есть «инсталляция» или «setup».

Стоимость

Стоимость зависит от depth - фиксированная цена за запрос, независимо от объёма полученного ответа:

  • fast (2 страницы) - 3 кредита
  • balanced (5 страниц, по умолчанию) - 5 кредитов
  • deep (10 страниц) - 10 кредитов

Коды ошибок (401, 400, 429, 503) описаны в разделе Ошибки.