AI přináší do dokumentů 4D Write Pro kouzelné vyhledávání

Automaticky přeloženo z Deepl

V mnoha podnikových aplikacích 4D jsou dokumenty vším – technickými poznámkami, zprávami, manuály, interními příručkami. Když si však uživatelé nepamatují přesné znění, stává se hledání toho správného pomalé, frustrující, nebo ještě hůře – nemožné.

Ve verzi 4D 20 R10 to sémantické vyhledávání poháněné vektory umělé inteligence mění. Namísto hledání klíčových slov hledáte význam. Uživatelé dostanou správný dokument, i když hledají v jiných slovech nebo v jiném jazyce. Je to chytřejší způsob, jak odhalit znalosti skryté v dokumentech – rychlý, přesný a vytvořený pro to, jak lidé skutečně vyhledávají.

Uvažujme konkrétní příklad: uživatel chce vyhledat technickou poznámku, která vysvětluje, jak vložit obrázek do dokumentu aplikace 4D Write Pro. Nemusí si však vzpomenout na přesnou frázi použitou v dokumentu.

HDI_4DWP_AI_Vector

Jak vyhledávat v dokumentech 4D Write Pro

Vyhledávání v dokumentech uložených v databázi není nový pojem. Vývojáři 4D se při implementaci této funkce tradičně spoléhají na vyhledávání podle klíčových slov. Dnes však umělá inteligence otevírá dveře mnohem flexibilnějšímu a výkonnějšímu přístupu: sémantickému vyhledávání pomocí vektorů.

Podívejme se blíže na obě techniky a zjistěme, jak vektory revolučně mění způsob vyhledávání.

Tradiční metody vyhledávání pomocí klíčových slov

Tato metoda zahrnuje extrakci klíčových slov dokumentu a jejich uložení do textového pole. Vyhledávací dotaz je pak proveden porovnáním konkrétních klíčových slov zadaných uživatelem.

Tento přístup je rychlý a efektivní, pokud dotaz přesně odpovídá znění dokumentu. Pokud se znění byť jen nepatrně změní, vyhledávání selže. Například vyhledávání „vložit obrázek“ by nenašlo dokumenty obsahující „přidat obrázek“.

Sémantické vyhledávání pomocí vektorů umělé inteligence

Od verze 4D 20 R10 je k dispozici nová výkonná funkce: Podpora vektorů AI. Ta umožňuje sémantické vyhledávání podporované umělou inteligencí.

Na rozdíl od vyhledávání podle klíčových slov se sémantické vyhledávání zaměřuje na význam, nikoli na přesná slova. Umožňuje uživatelům najít dokumenty, které vyjadřují stejnou myšlenku různými způsoby. Například fráze jako „vložit obrázek“ nebo „přidat obrázek“ vyjadřují stejnou myšlenku.

Uživatelé mohou dokonce zadávat dotazy v jiném jazyce, než je obsah dokumentu. Význam je zachován a porovnáván – což indexování klíčových slov nedokáže.

Jak to funguje

  1. Každý dokument je analyzován a převeden na vektor pomocí komponenty 4D AIKit. Tento vektor představuje sémantický význam textu.
  2. Uživatelský dotaz je rovněž převeden na vektor.
  3. Vypočítá se podobnost mezi vektorem dotazu a vektory dokumentů.
  4. Vrátí se dokumenty seřazené od nejrelevantnějšího po nejméně relevantní.

Příklad implementace

K předvedení této funkce byla vytvořena ukázková databáze. Obsahuje několik dokumentů 4D Write Pro představujících technické poznámky.

Krok 1 – Generování vektorů pro každý dokument

Generování vektorů lze spustit při uložení dokumentu do databáze. V našem příkladu byla vytvořena metoda, která generuje všechny vektory najednou:

var $document : cs.NoteEntity
var $documents :=ds.Note.all()
For each ($document; $documents)
$txt :=WP Get text($document.Document)
$document .Vector:=cs.AIManagement.new($apiKey).generateVector($txt)
$document .save()
End for each

Krok 2 – Generování vektoru z dotazu uživatele

Když uživatel klikne na tlačítko pro vyhledávání, vytvoříme z jeho dotazu vektor

var $vector:=cs.AIManagement.new($apiKey).generateVector($prompt).

Krok 3 – Porovnání vektorů a seřazení podle podobnosti

Nakonec vrátíme seznam dokumentů seřazených podle sémantické relevance k dotazu uživatele.

var $formula:=Formula(This.Vector.cosineSimilarity($vector)
$documents:=ds.Note.all().orderByFormula($formula); dk descending)

V tomto příkladu vrátíme všechny dokumenty seřazené od nejrelevantnějšího po nejméně relevantní. Výsledky prezentované uživateli můžete také omezit – například na pět nejrelevantnějších.

Živá akce

Závěr

Sémantické vyhledávání s vektory umělé inteligence představuje významný vývoj v tom, jak uživatelé pracují s daty založenými na dokumentech ve 4D. Poskytuje větší flexibilitu, lepší přesnost a intuitivnější uživatelské prostředí – aniž by se spoléhalo na striktní porovnávání klíčových slov.

Ať už jde o interní poznámky, dokumentaci nebo znalostní báze, vektorové vyhledávání odemyká novou úroveň inteligence vašich aplikací 4D.

Nadcházející verze 4D (ne příliš vzdálená) představí speciální typ vektorového indexu pro rychlou analýzu velkých souborů dat.

A vy? Podnítil tento blog nápady pro vaše vlastní projekty? Jakým typům dokumentů by mohlo prospět sémantické vyhledávání ve vašich aplikacích?

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.