Auf der Seite werden das Neusortieren und die verschiedenen Arten von Rankern erläutert. Außerdem wird gezeigt, wie Sie die Vertex AI Ranking API verwenden, um die abgerufenen Antworten neu zu ranken.
Verfügbare Reranker
Optionen für die Einstufung | Beschreibung | Latenz | Genauigkeit | Preise |
---|---|---|---|---|
Vertex AI Ranking API | Die Vertex AI Ranking API ist ein eigenständiger semantischer Reranker, der für eine hochpräzise Relevanzbewertung und niedrige Latenz entwickelt wurde. Weitere Informationen zur Vertex AI Ranking API finden Sie unter Such- und RAG-Qualität mit der Ranking API verbessern. |
Sehr niedrig (weniger als 100 Millisekunden) | Hervorragende Leistung | Pro Vertex AI RAG Engine-Anfrage |
LLM-Reranker | Der LLM-Reranker verwendet einen separaten Aufruf von Gemini, um die Relevanz von Chunks für eine Anfrage zu bewerten. | Hoch (1 bis 2 Sekunden) | Modellabhängig | Preise für LLM-Tokens |
Vertex AI Ranking API verwenden
Wenn Sie die Vertex AI Ranking API verwenden möchten, müssen Sie die Discovery Engine API aktivieren. Alle unterstützten Modelle finden Sie unter Such- und RAG-Qualität mit der Ranking API verbessern.
Diese Codebeispiele zeigen, wie Sie das erneute Ranking mit der Vertex AI Ranking API in der Toolkonfiguration aktivieren.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Ersetzen Sie die folgenden Variablen, die im Beispielcode verwendet werden:
- PROJECT_ID: Die ID Ihres Google Cloud -Projekts.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- MODEL_NAME: LLM-Modell für die Inhaltsgenerierung. Beispiel:
gemini-2.0-flash
. - INPUT_PROMPT: Der Text, der zur Inhaltsgenerierung an das LLM gesendet wird.
- RAG_CORPUS_RESOURCE: Der Name der RAG-Korpusressource.
Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Optional: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.
- RANKER_MODEL_NAME: Der Name des Modells, das für das erneute Ranking verwendet wird. Beispiel:
semantic-ranker-default@latest
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
config = rag.RagRetrievalConfig(
top_k=10,
ranking=rag.Ranking(
rank_service=rag.RankService(
model_name=RANKER_MODEL_NAME
)
)
)
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus=CORPUS_NAME,
)
],
rag_retrieval_config=config
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_NAME", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("INPUT_PROMPT")
print(response.text)
# Example response:
# The sky appears blue due to a phenomenon called Rayleigh scattering.
# Sunlight, which contains all colors of the rainbow, is scattered
# by the tiny particles in the Earth's atmosphere....
# ...
REST
Wenn Sie Inhalte mit Gemini-Modellen generieren möchten, rufen Sie die Vertex AI GenerateContent
API auf. Wenn Sie RAG_CORPUS_RESOURCE
in der Anfrage angeben, ruft das Modell automatisch Daten aus der Vertex AI RAG Engine ab.
Ersetzen Sie die folgenden Variablen, die im Beispielcode verwendet werden:
- PROJECT_ID: Die ID Ihres Google Cloud -Projekts.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- MODEL_NAME: LLM-Modell für die Inhaltsgenerierung. Beispiel:
gemini-2.0-flash
. - GENERATION_METHOD: LLM-Methode zum Generieren von Inhalten.
Zu den Optionen gehören
generateContent
undstreamGenerateContent
. - INPUT_PROMPT: Der Text, der zur Inhaltsgenerierung an das LLM gesendet wird.
- RAG_CORPUS_RESOURCE: Der Name der RAG-Korpusressource.
Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Optional: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.
- RANKER_MODEL_NAME: Der Name des Modells, das für das erneute Ranking verwendet wird. Beispiel:
semantic-ranker-default@latest
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_NAME:GENERATION_METHOD" \
-d '{
"contents": {
"role": "user",
"parts": {
"text": "INPUT_PROMPT"
}
},
"tools": {
"retrieval": {
"disable_attribution": false,
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
},
"rag_retrieval_config": {
"top_k": SIMILARITY_TOP_K,
"ranking": {
"rank_service": {
"model_name": "RANKER_MODEL_NAME"
}
}
}
}
}
}
}'
LLM-Reranker in der Vertex AI RAG Engine verwenden
In diesem Abschnitt werden die Voraussetzungen und Codebeispiele für die Verwendung eines LLM-Rerankers vorgestellt.
Der LLM-Reranker unterstützt nur Gemini-Modelle, auf die zugegriffen werden kann, wenn die Vertex AI RAG Engine API aktiviert ist. Eine Liste der unterstützten Modelle finden Sie unter Gemini-Modelle.
So rufen Sie relevante Kontexte mit der Vertex AI RAG Engine API ab:
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Ersetzen Sie die folgenden Variablen, die im Codebeispiel verwendet werden:
- PROJECT_ID: Die ID Ihres Google Cloud -Projekts.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_RESOURCE: Der Name der RAG-Korpusressource. Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: Der Abfragetext, um relevante Kontexte abzurufen.
- MODEL_NAME: Der Name des Modells, das für das erneute Ranking verwendet wird.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE"
MODEL_NAME= "MODEL_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_config = rag.RagRetrievalConfig(
top_k=10,
ranking=rag.Ranking(
llm_ranker=rag.LlmRanker(
model_name=MODEL_NAME
)
)
)
response = rag.retrieval_query(
rag_resources=[
rag.RagResource(
rag_corpus=CORPUS_NAME,
)
],
text="TEXT",
rag_retrieval_config=rag_retrieval_config,
)
print(response)
# Example response:
# contexts {
# contexts {
# source_uri: "gs://your-bucket-name/file.txt"
# text: "....
# ....
REST
Ersetzen Sie die folgenden Variablen, die im Codebeispiel verwendet werden:
- PROJECT_ID: Die ID Ihres Google Cloud -Projekts.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_RESOURCE: Der Name der RAG-Korpusressource. Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: Der Abfragetext, um relevante Kontexte abzurufen.
- MODEL_NAME: Der Name des Modells, das für das erneute Ranking verwendet wird.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
}
},
"query": {
"text": "TEXT",
"rag_retrieval_config": {
"top_k": 10,
"ranking": {
"llm_ranker": {
"model_name": "MODEL_NAME"
}
}
}
}
}'
Nächste Schritte
- Weitere Informationen zu den Antworten von RAG finden Sie unter Abruf- und Generierungsausgabe der Vertex AI RAG Engine.
- RAG-Wissensdatenbank (Korpus) verwalten