Neubewertung für die Vertex AI-RAG-Engine

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 und streamGenerateContent.
  • 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