Mit der wachsenden Bedeutung der vektorbasierten Suche in KI-Anwendungen wie der semantischen Suche, Empfehlungsmaschinen und der Verarbeitung natürlicher Sprache führt 4D eine native Unterstützung für Vektorabfragen in der Funktion query() ein. Diese Erweiterung bringt Vektorähnlichkeitsvergleiche direkt in die Sprache von DataClass.query() und EntitySelection.query().
Abfrage nach Vektorähnlichkeit
Sie können nun nach Entitäten suchen, deren Vektorfelder einem Referenzvektor ähnlich sind, indem Sie die bekannten Vergleichsoperatoren verwenden: >, >=, < und <=.
Die grundlegende Syntax lautet:
// 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})
Dies gibt Entitäten zurück, bei denen die Ähnlichkeit mit $myVector größer als der Standardschwellenwert (0,5) ist, unter Verwendung der Standardähnlichkeitsmetrik: Kosinusähnlichkeit.
Sie können Ihre Suche feiner abstimmen, indem Sie beides explizit definieren:
-
Welche Ähnlichkeitsmetrik für Ihren Anwendungsfall am relevantesten ist, mit dem Attribut metric
-
wie ähnlich ein Ergebnis Ihrem Referenzvektor sein muss, um als relevant zu gelten (Attribut threshold)
var $comparisonVector := {vector: $inputEmbedding; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1"; $comparisonVector)
KOMBINATION VON SEMANTISCHER SUCHE UND KLASSISCHER ABFRAGE
Ein wesentlicher Vorteil des 4D Ansatzes ist, dass semantische Abfragen mit traditionellen ORDA-Filtern in derselben Abfrage kombiniert werden können.
So können Sie leistungsstarke und präzise Suchanfragen erstellen, die eine bedeutungsbasierte Suche mit strukturierten Kriterien kombinieren.
var $comparisonVector := {vector: $myVector; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000"; $comparisonVector)
In diesem Beispiel findet die Abfrage Mitarbeiter, deren Stellenbeschreibungen semantisch nahe am Eingabetext liegen und deren Gehalt über 100.000 liegt.
WANN MAN SIE VERWENDEN SOLLTE (UND WANN NICHT)
Die semantische Suche (Abfrage) ist ideal, wenn Sie möchten, dass Ihre Anwendung die Bedeutung und nicht die exakten Übereinstimmungen versteht.
Sie ist perfekt für:
-
Unscharfe oder kontextbezogene Suchanfragen (z. B. „finde ähnliche Dokumente wie dieses“)
-
Abfragen in natürlicher Sprache (z. B. „Mitarbeiter aus den Bereichen Marketing und Design“)
-
Empfehlungsmaschinen und Wissensentdeckungsfunktionen
Es ist jedoch nicht für strukturierte analytische Aufgaben konzipiert.
Wenn Ihre Abfrage etwas wie „die 10 bestbezahlten Mitarbeiter“ lautet, ist eine klassische Abfrage schneller und besser geeignet.
Durch die Kombination beider Ansätze können Sie Sucherlebnisse schaffen, die sowohl intelligent als auch präzise sind. Die semantische Suche bietet eine bemerkenswerte Leistung und lässt sich perfekt mit herkömmlichen attributbasierten ORDA-Abfragen kombinieren.
Fazit
Mit der in 4D integrierten semantischen Suche (Query) können Sie ganz einfach KI-gesteuerte Such- und Discovery-Funktionen in Ihren Anwendungen erstellen.
Wählen Sie die Ähnlichkeitsmetrik, die am besten zu Ihrem Anwendungsfall passt, passen Sie die Relevanzschwelle an und kombinieren Sie semantische und strukturierte Filter für optimale Ergebnisse.
Diese neue Funktion bringt die Leistung von KI-basiertem Verständnis direkt in Ihr 4D-Datenmodell und öffnet die Tür zu intelligenteren, kontextbezogenen Abfragen.
Derzeit sind Vektorfelder nicht indiziert, aber die Indizierungsunterstützung wird in einer kommenden Version von 4D eingeführt. Diese zukünftige Erweiterung wird die Leistung erheblich verbessern und die semantische Suche für große Datensätze noch schneller und effizienter machen.
Für diesen Beitrag sind derzeit keine Kommentare verfügbar.