Einleitung
Die semantische Suche erweitert die standardmäßige Schlüsselwortsuche mit semantischer Ähnlichkeit. Diese Ähnlichkeit bedeutet, dass eine Abfrage für "sonnig" mit dem Text "helles natürliches Licht" übereinstimmen könnte, obwohl es keine lexikalische Überschneidung mehr als einen Buchstaben gibt. Anstelle der Charakterähnlichkeit verwendet die semantische Suche Einbettungsvektoren, die von künstlicher Intelligenz (AI) erzeugt werden, um Abfrage- und Dokumentähnlichkeit zu messen und relevantere Suchergebnisse bereitzustellen.
In diesem Modul wird gezeigt, wie Sie die semantische Suche in Azure Database für PostgreSQL flexiblen Server aktivieren und Azure OpenAI zum Generieren von Vektoreinbettungen verwenden.
Szenario
Angenommen, Sie arbeiten bei einem Unternehmen, das Urlaubsimmobilienauflistungen verwaltet. Sie möchten Kunden das Onlinesuchen und Buchen von Einträgen ermöglichen. Eine Herausforderung ist die vielen verschiedenen Wörter, die die Menschen verwenden, um dasselbe zu beschreiben. Sie haben begrenzte Ressourcen, um Schlüsselwortlisten zu entwickeln und zu verwalten, da Beschreibungen geändert werden und Eigenschaften sich ändern, und die manuelle Eingabe von Schlüsselwörtern ist anfällig für Fehler. Sie möchten relevante Suchergebnisse ohne manuelle Stichwortlisten bereitstellen.
Lernziele
Sie erhalten eine Übersicht über semantische Suche, Einbettungen und Vektordatenbanken. Anschließend aktivieren Sie die pgvector Und azure_ai Erweiterungen. Mit diesen Erweiterungen führen Sie eine semantische Suche über Vektorspalten aus, die aus Azure OpenAI-Einbettungen mithilfe der azure_ai Erweiterung generiert werden. Schließlich schreiben Sie eine Suchfunktion, die eine Abfragezeichenfolge empfängt, Einbettungen für diese Abfrage generiert und eine semantische Suche für die Datenbank ausführt.
Am Ende dieser Sitzung können Sie mithilfe einer flexiblen Server-Datenbank von Azure Database für PostgreSQL semantische Suchvorgänge gegen Vektoreinbettungen ausführen, die von Azure OpenAI generiert werden.