Пошук і повторне ранжування
Звузьте локальний корпус за словами запиту, а потім оцініть, які кандидати справді відповідають на питання.
Що вирішує модель. Що перевіряє код.
- Локальний пошук за перетином слів відбирає до трьох уривків. Початковий порядок стабільний при однакових оцінках.
- Один запит містить окремий Score для кожного кандидата: не стосується, частково стосується або прямо відповідає.
- Код сортує оцінки й перевіряє поріг. Якщо жоден кандидат не проходить, повертається no_confident_match.
Прочитайте. Запустіть. Відтворіть.
Розпакуйте архів і відкрийте каталог у терміналі. Перший крок працює без ключа та мережі.
python3 runner.py search-rerankingДля реального запуску задайте SHVYDKO_API_KEY у середовищі свого комп’ютера або сервера. Не вставляйте ключ у браузер чи вихідний код. Діють поточні квоти й тариф вашого облікового запису.
python3 runner.py search-reranking --live --output search-reranking-run.jsonЗвіт містить запити, справжні відповіді, час і відоме використання. Файл створюється з приватними правами та не перезаписує наявний. Після мережевої помилки автоматичного повтору немає: перевірте Usage перед новим викликом.
python3 runner.py search-reranking --replay search-reranking-run.jsonReplay перевіряє відповідність рецепта, вхідних даних і запитів. Локальний файл можна редагувати, тому він не є підписаним доказом походження відповідей. Якщо заміните дані своїми, звіт також міститиме їх — зберігайте його приватно.
Відкритий контракт, без прихованих кроків.
План нижче згенеровано тим самим runner із даних архіву. Це запити й очікування автора, а не результат моделі.
{
"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"
]
}
}
}
]
}