← Přehled / ai-search / configuration / retrieval
Posilování relevance
Posilování umožňuje zvýhodnit výsledky vyhledávání u dokumentů s konkrétními vlastnostmi metadat. Můžete tak například zvýhodnit nedávné dokumenty, zobrazit výše stránky s vyšší prioritou nebo naopak snížit prioritu konceptů. Posilování mění pořadí výsledků, aniž by nahrazovalo sémantickou relevanci.
Jak to funguje
Posilování se uplatňuje až po počátečním kroku vyhledávání a před reranking (pokud je povoleno):
- Hledat: AI Search načte až 50 kandidátních částí obsahu pomocí vektorového vyhledávání, vyhledávání podle klíčových slov nebo obojího.
- Boost: Každý kandidát se znovu ohodnotí pomocí polí metadat, která zadáte v
boost_by. Posílení se přičítá k původnímu skóre vyhledávání. - Přeřadit: Pokud je přeřazení povoleno, model pro přeřazení znovu seřadí zvýhodněné výsledky.
- Návrat: Prvních
max_num_resultsse vrací.
Posilování může změnit pořadí výsledků v rámci sady kandidátů, nemůže ale zvýhodnit část obsahu, kterou počáteční krok vyhledávání nenašel.
Podporovaná pole
Výsledky můžete posílit podle vestavěného timestamp pole nebo jakékoli pole definované ve vašem vlastní schéma metadat.
| Typ položky | Podporované směry |
|---|---|
datetime |
asc, desc, exists, not_exists |
number |
asc, desc, exists, not_exists |
text |
exists, not_exists pouze |
boolean |
exists, not_exists pouze |
Směry
Směr určuje, jak hodnota pole ovlivňuje pořadí jednotlivých výsledků:
| Směr | Účinek |
|---|---|
desc |
Vyšší hodnoty pole získávají vyšší skóre (například nejnovější položky). |
asc |
Nižší hodnoty pole získávají vyšší skóre (například nejnižší cena). |
exists |
Dokumenty, které dané pole mají, získají vyšší skóre. |
not_exists |
Dokumenty, které dané pole nemají, získají vyšší skóre. |
Pokud vynecháte direction, AI Search použije výchozí hodnotu podle typu pole:
| Typ položky | Výchozí směr |
|---|---|
number, datetime, timestamp |
asc |
text, boolean |
exists |
Použití asc nebo desc na text nebo boolean je pole, které vrací chybu.
Konfigurace
Zadejte boost_by jako pole až 3 objektů při vytváření nebo aktualizaci instance. Každý objekt musí odkazovat na jedinečné pole.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
field |
string | Ano | Název pole metadat nebo timestamp. Musí odpovídat vašemu schématu. Nerozlišuje velká a malá písmena. |
direction |
string | Ne | Jedna z asc, desc, exists, not_exists. Výchozí hodnoty podle typu. |
const instance = await env.AI_SEARCH.create({
id: "my-instance",
retrieval_options: {
boost_by: [
{ field: "timestamp", direction: "desc" },
{ field: "priority", direction: "desc" },
],
},
});Chcete-li posílení odebrat, nastavte boost_by na prázdné pole při aktualizaci instance.
Přepsání pro jednotlivé požadavky
Můžete přepsat boost_by u jednotlivých požadavků pomocí ai_search_options.retrieval. Hodnoty na úrovni požadavku zcela nahradí výchozí hodnotu na úrovni instance.
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
retrieval: {
boost_by: [{ field: "timestamp", direction: "desc" }],
},
},
});Chcete-li posílení pro jeden konkrétní požadavek vypnout, předejte prázdné pole:
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
retrieval: {
boost_by: [],
},
},
});Běžné vzory
Zde je několik běžných způsobů, jak využít posilování relevance:
| Vzor | Konfigurace |
|---|---|
| Upřednostnění nedávných dokumentů | [{ "field": "timestamp", "direction": "desc" }] |
| Zvýhodnění podle vlastní priority | [{ "field": "priority", "direction": "desc" }] |
| Zvýhodnění levnějších možností | [{ "field": "cost", "direction": "asc" }] |
| Zvýhodnění dokumentů s autorem | [{ "field": "author", "direction": "exists" }] |
| Potlačit koncepty | [{ "field": "draft", "direction": "not_exists" }] |
| Kombinace aktuálnosti a priority | [{ "field": "timestamp", "direction": "desc" }, { "field": "priority", "direction": "desc" }] |
Omezení
- Maximálně 3 pole boost na požadavek.
- Názvy položek musí odpovídat položce ve vašem vlastním schématu metadat nebo vestavěné
timestamp. textabooleanpole podporují pouzeexistsanot_existssměry.- Pole boost musí být v rámci jednoho požadavku jedinečná.
- Posilování mění pořadí sady kandidátů z počátečního vyhledávání. Nemůže zobrazit dokumenty, které nebyly nalezeny.