← Усі рецептиПошук та зіставлення / PYTHON

Пошук і повторне ранжування

Звузьте локальний корпус за словами запиту, а потім оцініть, які кандидати справді відповідають на питання.

До 1 API-запитівДані: вигадані, англійськоюЗовнішні дії: 0
01 / ПРОЦЕС

Що вирішує модель. Що перевіряє код.

  1. Локальний пошук за перетином слів відбирає до трьох уривків. Початковий порядок стабільний при однакових оцінках.
  2. Один запит містить окремий Score для кожного кандидата: не стосується, частково стосується або прямо відповідає.
  3. Код сортує оцінки й перевіряє поріг. Якщо жоден кандидат не проходить, повертається no_confident_match.
02 / ЛОКАЛЬНИЙ ЗАПУСК

Прочитайте. Запустіть. Відтворіть.

Розпакуйте архів і відкрийте каталог у терміналі. Перший крок працює без ключа та мережі.

1 · offline plan · 0 API requests
python3 runner.py search-reranking

Для реального запуску задайте SHVYDKO_API_KEY у середовищі свого комп’ютера або сервера. Не вставляйте ключ у браузер чи вихідний код. Діють поточні квоти й тариф вашого облікового запису.

2 · explicit live run
python3 runner.py search-reranking --live --output search-reranking-run.json

Звіт містить запити, справжні відповіді, час і відоме використання. Файл створюється з приватними правами та не перезаписує наявний. Після мережевої помилки автоматичного повтору немає: перевірте Usage перед новим викликом.

3 · replay saved responses · 0 API requests
python3 runner.py search-reranking --replay search-reranking-run.json

Replay перевіряє відповідність рецепта, вхідних даних і запитів. Локальний файл можна редагувати, тому він не є підписаним доказом походження відповідей. Якщо заміните дані своїми, звіт також міститиме їх — зберігайте його приватно.

03 / ПЛАН ЗАПИТІВ

Відкритий контракт, без прихованих кроків.

План нижче згенеровано тим самим runner із даних архіву. Це запити й очікування автора, а не результат моделі.

offline-plan.json
{
  "mode": "offline_plan",
  "model_calls": 0,
  "recipe": "search-reranking",
  "author_expectation": "keys",
  "notice": "Requests only, no model answers. Hierarchy includes conditional branches; repetition requests are templates.",
  "requests": [
    {
      "state": {
        "query": "Where do I rotate a leaked API key?",
        "candidates": [
          {
            "id": "keys",
            "text": "API key security: revoke the exposed API key in the console, create a replacement, update your server environment and check usage."
          },
          {
            "id": "usage",
            "text": "The usage page filters API key traffic by UTC date and exports request usage."
          },
          {
            "id": "billing",
            "text": "Billing shows payments and the current prepaid balance."
          }
        ]
      },
      "questions": {
        "d0": {
          "type": "score",
          "instructions": "How well does document keys answer the query, using only its text?",
          "criteria": [
            "Unrelated",
            "Related but not sufficient",
            "Directly answers the query"
          ]
        },
        "d1": {
          "type": "score",
          "instructions": "How well does document usage answer the query, using only its text?",
          "criteria": [
            "Unrelated",
            "Related but not sufficient",
            "Directly answers the query"
          ]
        },
        "d2": {
          "type": "score",
          "instructions": "How well does document billing answer the query, using only its text?",
          "criteria": [
            "Unrelated",
            "Related but not sufficient",
            "Directly answers the query"
          ]
        }
      }
    }
  ]
}