S rostoucím významem vektorového vyhledávání v aplikacích umělé inteligence, jako je sémantické vyhledávání, doporučovací stroje a zpracování přirozeného jazyka, zavádí 4D nativní podporu vektorových dotazů ve funkci query(). Toto vylepšení přináší porovnávání vektorové podobnosti přímo do jazyka DataClass.query() a EntitySelection.query().
Dotazování podle vektorové podobnosti
Nyní můžete vyhledávat entity, jejichž vektorová pole jsou podobná referenčnímu vektoru, pomocí známých operátorů porovnávání: >, >=, < a <=.
Základní syntaxe je:
// Call the OpenAI embeddings API to generate the vector for the input text
var $result:=$clientAI.embeddings.create("A general manager living in France"; $model)
Var $inputEmbedding:=$result.vector
var $results := ds.MyClass.query("myVectorField > :1"; {vector: $inputEmbedding})
Vrátí entity, jejichž podobnost s $myVector je větší než výchozí prahová hodnota (0,5), a to pomocí výchozí metriky podobnosti: kosinové podobnosti.
Vyhledávání můžete zpřesnit explicitním definováním obou:
-
jaká metrika podobnosti je pro váš případ použití nejvhodnější pomocí atributu metrika
-
jak moc se musí výsledekpodobat referenčnímu vektoru, aby byl považován za relevantní, pomocí atributu prahové hodnoty.
var $comparisonVector := {vector: $inputEmbedding; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1"; $comparisonVector)
KOMBINACE SÉMANTICKÉHO VYHLEDÁVÁNÍ S KLASICKÝM DOTAZEM
Klíčovou výhodou přístupu 4D je, že sémantické dotazy lze kombinovat s tradičními filtry ORDA v jednom dotazu.
To umožňuje vytvářet výkonná a přesná vyhledávání, která kombinují vyhledávání na základě významu se strukturovanými kritérii.
var $comparisonVector := {vector: $myVector; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000"; $comparisonVector)
V tomto příkladu dotaz vyhledává zaměstnance, jejichž popis práce je sémanticky blízký vstupnímu textu a jejichž plat přesahuje 100 000.
KDY POUŽÍT (A KDY NE)
Sémantické vyhledávání (dotaz) je ideální, když chcete, aby aplikace rozuměla spíše významu než přesným shodám.
Je ideální pro:
-
Fuzzy nebo kontextové vyhledávání (např. „najdi dokumenty podobné tomuto“).
-
Dotazy v přirozeném jazyce (např. „zaměstnanci pracující v marketingu a designu“).
-
Doporučovací stroje a funkce pro zjišťování znalostí
Není však určen pro strukturované analytické úlohy.
Pokud je vaším dotazem něco jako „10 nejlépe placených zaměstnanců“, je rychlejší a vhodnější klasický dotaz.
Kombinací obou přístupů můžete vytvořit inteligentní a přesné vyhledávání. Sémantické vyhledávání dodává pozoruhodný výkon a dokonale se snoubí s tradičními atributovými dotazy ORDA.
Závěr
Díky sémantickému vyhledávání (dotazu), které je nyní zabudováno do 4D, můžete ve svých aplikacích snadno vytvářet funkce vyhledávání a zjišťování založené na umělé inteligenci.
Vyberte metriku podobnosti, která nejlépe vyhovuje vašemu případu použití, upravte práh relevance a kombinujte sémantické a strukturované filtry pro dosažení optimálních výsledků.
Tato nová funkce přináší sílu porozumění založeného na umělé inteligenci přímo do datového modelu 4D a otevírá dveře inteligentnějším dotazům zohledňujícím kontext.
V současné době nejsou vektorová pole indexována, ale podpora indexování bude zavedena v některé z příštích verzí 4D. Toto budoucí vylepšení výrazně zvýší výkon a umožní ještě rychlejší a efektivnější sémantické vyhledávání pro velké datové soubory.
K tomuto příspěvku zatím nelze přidávat komentáře.