INTEGRITY Dokumentace

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):

  1. 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.
  2. 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í.
  3. Přeřadit: Pokud je přeřazení povoleno, model pro přeřazení znovu seřadí zvýhodněné výsledky.
  4. Návrat: Prvních max_num_results se 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í