← Přehled / ai-search / configuration / retrieval
Mezipaměť podobnosti
Ukládání podobnosti do mezipaměti v AI Search umožňuje zpřístupňovat odpovědi z mezipaměti Cloudflare pro dotazy podobné předchozím požadavkům, místo vytváření nových jedinečných odpovědí pro každý požadavek. To zrychluje dobu odezvy a snižuje náklady díky opětovnému použití odpovědí na otázky s podobným významem.
Jak to funguje
Na rozdíl od základního ukládání do mezipaměti, které pro každý požadavek vytvoří novou odpověď, probíhá při přijetí požadavku s ukládáním podobnosti do mezipaměti toto:
- AI Search zkontroluje, zda podobné prompt (na základě zvoleného prahu) už byl dříve zodpovězen.
- Pokud je nalezena shoda, okamžitě vrátí odpověď uloženou v mezipaměti.
- Pokud není nalezena žádná shoda, vygeneruje novou odpověď a uloží ji do mezipaměti.
Chcete-li zjistit, zda odpověď pochází z mezipaměti, zkontrolujte cf-aig-cache-status hlavička: HIT pro uložené v mezipaměti a MISS pro nové.
Na co dát pozor při používání mezipaměti podobnosti
Při používání ukládání podobnosti do mezipaměti zvažte následující chování:
- Volatilní mezipaměť: Pokud přijdou dva podobné požadavky současně, první se nemusí uložit do mezipaměti včas na to, aby ho mohl využít druhý, což vede k
MISS. - Nastavitelná doba trvání: Platnost uložených odpovědí vyprší podle
cache_ttlnastavení. Výchozí hodnota je 48 hodin. - Závislost na datech: Uložené odpovědi jsou vázány na konkrétní části dokumentu. Pokud se tyto části změní nebo smažou, mezipaměť se vymaže, aby odpovědi zůstaly aktuální.
Jak funguje porovnávání podobnosti
Mezipaměť podobnosti AI Search používá MinHash a Locality-Sensitive Hashing (LSH) a najde i znovu použije odpovědi pro podobně formulované dotazy.
Zde je, jak to funguje, když přijde nový prompt:
- Prompt se rozdělí na malé překrývající se části slov (tzv. shingles), například „what's the“ nebo „the weather.“
- Tyto shingly se pomocí MinHash převedou na „otisk“ (fingerprint). Čím větší je překryv dvou promptů, tím podobnější budou jejich otisky.
- Otisky (fingerprinty) se ukládají do segmentů LSH, které AI Search pomáhají rychle najít podobné výzvy, aniž by musel porovnávat úplně každou z nich.
- Pokud je předchozí prompt ve stejném bucketu dostatečně podobný (podle vámi nastaveného prahu), AI Search znovu použije jeho odpověď uloženou v mezipaměti.
Zvolte prahovou hodnotu
Práh podobnosti určuje, jak blízké si dva prompty musí být, aby se využila odpověď uložená v mezipaměti. Práh můžete nastavit na úrovni instance, nebo ho přepsat pro jednotlivý požadavek.
| Práh | Hodnota API | Popis | Příklad shody |
|---|---|---|---|
| Přesná shoda | super_strict_match |
Pouze téměř identické shody | „Jaké je dnes počasí?“ odpovídá „Jaké je dnes počasí?“ |
| Silná | close_enough (výchozí) |
Vysoká sémantická podobnost | „Jaké je dnes počasí?“ odpovídá „Jaké bude dnes počasí?“ |
| Široké | flexible_friend |
Střední shoda, více výsledků | „Jaké je dnes počasí?“ odpovídá „Řekni mi dnešní počasí“ |
| Volné | anything_goes |
Nízká podobnost, maximální opětovné využití | „Jaké je dnes počasí?“ odpovídá „Ukaž mi předpověď“ |
Nastavení doby trvání mezipaměti
Nastavte cache_ttl při vytváření nebo aktualizaci instance, abyste určili, jak dlouho si instance uchovává odpovědi v mezipaměti. Povolené hodnoty jsou:
| Doba trvání | Hodnota API |
|---|---|
| 10 minut | 600 |
| 30 minut | 1800 |
| 1 hodina | 3600 |
| 2 hodiny | 7200 |
| 6 hodin | 21600 |
| 12 hodin | 43200 |
| 24 hodin | 86400 |
| 48 hodin | 172800 |
| 72 hodin | 259200 |
| 6 dní | 518400 |
Vymazání uložených odpovědí z mezipaměti
Chcete-li okamžitě vymazat všechny uložené odpovědi instance z mezipaměti, použijte operaci vymazání mezipaměti:
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/ai-search/instances/$INSTANCE_NAME/purge_cache" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Vymazání mezipaměti změní interní klíč mezipaměti instance, takže nové dotazy nebudou znovu používat dříve uložené odpovědi.
Uložené odpovědi můžete také vymazat z mezipaměti na stránce nastavení instance v Cloudflare dashboardu.
Přepsání mezipaměti pro jednotlivý požadavek
Nastavení mezipaměti na úrovni instance můžete přepsat pro jednotlivé požadavky pomocí cache parametr v ai_search_options:
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
cache: {
enabled: true,
cache_threshold: "flexible_friend",
},
},
});