Auf dieser Seite wird beschrieben, wie Sie Ihre Suchergebnisse für Anwendungen mit dem Vertex AI-Rankingmodellendpunkt bewerten, der in der Modellendpunktverwaltung registriert ist.
Die Vertex AI Ranking API nimmt eine Liste von Dokumenten und sortiert diese anhand ihrer Relevanz für eine bestimmte Suchanfrage (einen Suchstring). Wenn Sie die Funktion ai.rank()
verwenden, werden Bewertungen dafür zurückgegeben, wie gut ein Dokument eine bestimmte Suchanfrage beantwortet.
Um die Anleitungen auf dieser Seite verwenden zu können, müssen Sie AlloyDB for PostgreSQL kennen und mit den Konzepten der generativen KI vertraut sein.
AlloyDB reserviert das ai
-Schema und versucht, es zu erstellen, wenn Sie die google_ml_integration
-Erweiterung installieren. Wenn die Schemaerstellung fehlschlägt, verwenden Sie die Funktionen mit demselben Namen im google_ml
-Schema.
Hinweise
Wenden Sie sich an den Support, um Zugriff auf die Funktion zum Sortieren Ihrer Suchergebnisse mithilfe von Ranking-Modellen zu erhalten. Warten Sie, bis Sie die Aktivierungsbestätigung erhalten haben, bevor Sie der Anleitung auf dieser Seite folgen.
Das Vertex AI-Rankingmodell muss registriert sein. Weitere Informationen finden Sie unter Vertex AI-Rankingmodelle.
Suchergebnisse sortieren
In der folgenden SQL-Abfrage wird gezeigt, wie Sie Ihre Suchergebnisse sortieren :
SELECT
ai.rank(
model_id => 'MODEL_ID',
search_string => 'SEARCH_STRING',
documents => ARRAY['DOCUMENT_1', 'DOCUMENT_2', 'DOCUMENT_3']);
Ersetzen Sie Folgendes:
Parameter | Beschreibung |
---|---|
MODEL_ID |
Eine eindeutige ID für den von Ihnen definierten Modellendpunkt. |
SEARCH_STRING |
Suchstring, anhand dessen die Einträge sortiert oder bewertet werden. |
DOCUMENTS |
Ein eindeutiger String, der den Datensatz identifiziert. |
Beispiele
Wenn Sie Suchergebnisse mit dem registrierten Ranking-Endpunkt sortieren möchten, führen Sie die folgende Abfrage aus:
SELECT index, score
FROM
ai.rank(
model_id => 'semantic-ranker-512-002',
search_string => 'AlloyDB is a PostgreSQL compatible AI database that is ready for production.',
documents =>
ARRAY[
'Alloys are made from combination of metals',
'The best enterprise-ready PostgreSQL database.',
'You can feel the heat in Alloy apartments.']);
Die Antwort ist eine Tabelle, in der jedes Dokument und die Bewertung basierend auf der Relevanz für die Suchanfrage angezeigt wird.Unten sehen Sie eine Beispielantwort:
index | score
-------+-------
1 | 0.03
2 | 0.02
3 | 0.01
(3 rows)
Angenommen, Sie haben eine AlloyDB-Datenbank mit einer Liste von Rezensionsbeschreibungen, die in Einbettungen umgewandelt werden. Im folgenden Codebeispiel wird gezeigt, wie Sie mit dem Ranking-Modell den Namen der Produkte mit der höchsten Bewertung basierend auf der semantischen Ähnlichkeit ihrer Rezensionsbeschreibungen zu einer Suchanfrage abrufen. Es wird davon ausgegangen, dass sowohl die text-embedding-005
- als auch die semantic-ranker-512@002
-Modellendpunkte registriert sind.
WITH
initial_results AS (
SELECT product_id, name, review, review_id,
ROW_NUMBER() OVER () AS ref_number
FROM user_reviews
ORDER BY
review_desc_embedding <=> google_ml.embedding(
'text-embedding-005', 'good desserts')
LIMIT 100
),
reranked AS (
SELECT
ai.rank(
model_id => 'semantic-ranker-512@002',
search_string => 'good desserts',
documents => ARRAY_AGG(review ORDER BY ref_number))
FROM initial_results
)
SELECT product_id, name
FROM initial_results, reranked
WHERE initial_results.ref_number = reranked.index
ORDER BY reranked.score;