Vektorové reprezentace otevírají dveře k mnoha možnostem využití umělé inteligence ve vašich 4D aplikacích: sémantické vyhledávání, doporučení, porovnávání obsahu a klasifikace dokumentů.
Vytvoření embeddingu však znamená více než jen generování vektoru. Jak se vaše data mění, musí se aktualizovat i jejich vektorové reprezentace. Musíte detekovat změny, zneplatnit dotčené vektory, přepočítat je a vypořádat se s potenciálními chybami nebo omezeními služeb umělé inteligence.
Počínaje verzí 4D 21 R5 vám modul „ 4D Embedding Studio “ ušetří práci s budováním celé této infrastruktury. Prostřednictvím rozhraní můžete konfigurovat své embeddingy, zatímco plánovač spravuje jejich životní cyklus, od zneplatnění až po přepočítání. Díky tomu se můžete soustředit na to podstatné: využití embeddingů k zavedení funkcí umělé inteligence do vašich aplikací.
V tomto HDI se přepočty spouštějí ručně, abyste mohli sledovat každý krok a okamžitě získat výsledky. Plánovač, který tento proces v produkčním prostředí automatizuje, je vysvětlen dále v tomto článku.
Vytvářejte vektorové reprezentace bez psaní kódu
Vložení je vektorové znázornění obsahu. Převádí text nebo jiné informace na posloupnost čísel, kterou může model umělé inteligence porovnávat. Výsledkem je, že obsah s podobným významem vytváří podobné vektory, i když nepoužívá přesně stejná slova.
Pomocí nástroje 4D Embedding Studio můžete generování vektorů konfigurovat zcela prostřednictvím rozhraní:
- V nastavení struktury na stránce AI zadejte svého poskytovatele AI a alias modelu vnoření.
- Do příslušné tabulky přidejte pole typu Object a přiřaďte jej ke třídě 4D.Vector. Volitelně můžete také přidat booleovské pole s názvem „<vector_name>_dirty“ (například student_vector_dirty) pro sledování vektorů, které je třeba přepočítat. Více podrobností o této strategii najdete níže.
- Otevřete 4D Embedding Studio z nabídky „Design“.
- Vyberte vektorové pole, definujte informace, které budou tvořit jeho obsah, a vyberte model vkládání, který chcete použít.

To je vše. Nemusíte psát logiku, která vektory generuje. 4D ví, jak vytvořit vektorovou reprezentaci na základě vaší konfigurace.
Vaše vektory jsou nyní připraveny k použití ve vaší aplikaci, například k provádění sémantického vyhledávání.
Automatická detekce vektorů, které je třeba aktualizovat
V produkční aplikaci nejsou data nikdy statická. Pokud je vkládání založeno na názvu a obsahu dokumentu, je třeba zohlednit jakoukoli změnu v obou těchto prvcích.
Bez specializovaného mechanismu máte dvě možné strategie, z nichž ani jedna není ideální:
- Ponechat zastaralé vektory a riskovat méně relevantní výsledky;
- pokaždé přepočítat všechny vektory, což zbytečně ovlivňuje výkon a náklady na volání služeb AI.
4D Embedding Studio volí cílenější přístup. Když dojde ke změně entity, 4D určí, zda tato změna ovlivňuje složení jejího vektorového zobrazení. Pouze dotčené vektory jsou zneplatněny a označeny k přepočítání.
Nemusíte vyvíjet ani udržovat vlastní logiku detekce změn.
Poznámka: detekce se vztahuje na pole v samotné tabulce. Pokud obsah vnoření používá atribut z související tabulky, vypočítaný atribut, alias nebo vlastnost objektu, jeho změna automaticky nezneplatní vektor. V takovém případě zneplatněte vektory programově nebo vynuťte jejich přepočítání.
Označte zastaralé vektory podle svých potřeb
Pokud změna vyžaduje aktualizaci vložení, 4D Embedding Studio vám umožňuje zvolit, jak má být vektor označen jako zastaralý.
Bez pole pro sledování změn
Pokud není definováno žádné sledovací pole, neplatný vektor se automaticky nahradí hodnotou Null. V vyhledávání se proto již nepoužívá, dokud není znovu vypočítán.
Tato možnost se hodí pro aplikace, které upřednostňují přísnou konzistenci: je lepší nevrátit žádné výsledky, než se spoléhat na vnoření, které již neodpovídá aktuálním datům.
S polem „dirty“
Do struktury můžete také přidat booleovské pole s názvem „ <vector_name>_dirty “. Je-li nutná aktualizace, nastaví se toto pole na hodnotu „true“ a stávající vektor se zachová, dokud nebude znovu vypočítán.
Vaše aplikace se pak může rozhodnout, zda bude tento vektor dočasně nadále používat, nebo jej vyloučí filtrováním podle „<vector_name>_dirty = false“.
Tato strategie podporuje kontinuitu služby a zároveň vám umožňuje přesně identifikovat, které vektory čekají na přepočítání.
Změna modelu představuje zvláštní případ: různé modely generují vektory, které nelze vzájemně porovnávat. Po změně modelu je proto nutné všechny vektory přepočítat a 4D Embedding Studio automaticky označí všechny dotčené záznamy jako „dirty“. Dokud nebudou přepočítány, vyřaďte je ze svých vyhledávání pomocí filtru „<vector_name>_dirty =false“.
Pokud vaše obchodní logika vyžaduje úplnou kontrolu, můžete také deaktivovat automatické označování za neplatné a tento životní cyklus spravovat sami.
Spolehlivé přepočítávání vektorů na pozadí
Jakmile jsou vektory označeny jako zastaralé, jejich přepočítání zajišťuje plánovač 4D Embedding Studio. Stačí zvolit, jak často se má spouštět, a poté jej spustit: buď povolením možnosti „Execute the ‚On Host Database Event‘ method of components“ v nastavení struktury na stránce Security (ve výchozím nastavení je tato možnost vypnutá), nebo pomocí jediného řádku kódu:
cs.EmbeddingStudio.Scheduler.me.start()
4D Embedding Studio pak za vás koordinuje zpracování.
Přepočty probíhají asynchronně, aniž by blokovaly uživatele. Jejich frekvenci můžete přizpůsobit potřebám vaší aplikace: spouštějte je pravidelně, provádějte hromadné aktualizace nebo je spouštějte na vyžádání, například po nasazení nebo po významné změně vašich dat.
Chyba nezastaví zpracování: vektory, které nebylo možné vypočítat, zůstanou v čekání a budou automaticky znovu zpracovány při příštím spuštění.
To vám umožňuje najít správnou rovnováhu mezi aktuálními výsledky, zátěží zpracování a náklady na AI API, zatímco 4D se postará o technické aspekty potřebné k přepočítání vašich vnoření.
Vyhledávání podle významu pomocí vašich vektorů
Jakmile jsou vaše vektory vypočítány, sémantické vyhledávání probíhá ve dvou krocích.
Nejprve se vypočítá vektor pro text zadaný uživatelem. Aby byly vektory srovnatelné, musí být vypočítány pomocí stejného modelu jako uložené vektory. Použití definice nakonfigurované v 4D Embedding Studio zajistí, že použijete ten správný.
// Retrieve the embedding definition configured in 4D Embedding Studio
var $settings:=cs.EmbeddingStudio.Settings.new()
var $definition:=$settings.find("Students"; "student_vector")
// Compute the vector of the user's query with the same model
var $result:=cs.EmbeddingStudio.Playground.new().embed("apps that are easy to use"; $definition)
Poté spusťte dotaz ORDA na vektorovém poli. 4D nativně porovná dotazový vektor s vektory vašich entit, ponechá ty, které překračují prahovou hodnotu podobnosti, a seřadí je od nejbližších k nejvzdálenějším:
// Find the most similar students, best match first
var $students:=ds.Students.query("student_vector > :1 order by student_vector desc"; \
{vector: $result.vector; threshold: 0.5})
Pokud používáte pole s neplatnými hodnotami, jednoduše přidejte kritérium pro vyloučení vektorů, u nichž se čeká na přepočítání:
var $students:=ds.Students.query("student_vector > :1 and student_vector_dirty = false order by student_vector desc"; \
{vector: $result.vector; threshold: 0.5})
Toto vyhledávání dokáže najít studenta, jehož životopis zmiňuje „intuitivní rozhraní“ a „testování použitelnosti“, i když se žádná z těchto slov v dotazu nevyskytuje.
Chcete-li se dozvědět více o vektorovém vyhledávání v 4D (metriky podobnosti, prahové hodnoty a kombinace s tradičními kritérii), podívejte se na naše předchozí články:
- Sémantické vyhledávání: dotazování podle vektorové podobnosti
- 4D AI: Třídění výsledků dotazu podle podobnosti vektorů
Přidejte 4D Embedding Studio do svého projektu
Nyní, když máte vše, co potřebujete k zahájení práce, proč nevyzkoušet 4D Embedding Studio ve své vlastní aplikaci? Nejprve jej přidejte do svého projektu: otevřete „Design > Project Dependencies“, klikněte na tlačítko „+“ a vyberte kartu „GitHub“. Ze seznamu standardních komponent 4D vyberte „4D Embedding Studio“ a přidejte jej do svého projektu.
Pravidlo závislosti je ve výchozím nastavení nastaveno na „Follow 4D version“, což zajišťuje, že komponenta bude vždy v souladu s vaší verzí 4D. Po zobrazení výzvy k načtení komponenty restartujte svůj projekt.

Další informace najdete v článcích Správa závislostí projektu a Ovládání standardních komponent 4D.
Plně spravovaný životní cyklus
Díky nástroji 4D Embedding Studio se společnost 4D stará o všechny procesy potřebné pro životní cyklus vašich vložených komponent:
- jejich generování se konfiguruje vizuálně,
- změny vyžadující aktualizaci jsou detekovány automaticky,
- vektory lze zneplatnit podle vámi zvolené strategie,
- jejich přepočítání je koordinováno na pozadí plánovačem,
- jsou řešeny chyby a omezení služeb AI,
-
operace lze sledovat v okně „Embedding Scheduler“.
Není třeba tuto infrastrukturu budovat ani udržovat: váš kód se může soustředit na to, co přináší vaší aplikaci přidanou hodnotu, jako je sémantické vyhledávání, doporučení nebo porovnávání obsahu.
V dokumentaci najdete pokyny k nastavení svého prvního vkládání a dozvíte se, jak jej integrovat do svých sémantických vyhledávání.
K tomuto příspěvku zatím nelze přidávat komentáře.