La pagina spiega il re-ranking e i tipi di ranker. La pagina mostra anche come utilizzare l'API Vertex AI Ranking per riordinare le risposte recuperate.
Riclassificatori disponibili
Opzioni di classificazione | Descrizione | Latenza | Accuratezza | Prezzi |
---|---|---|---|---|
API Vertex AI Ranking | L'API Vertex AI Ranking è un ricalcolatore semantico autonomo progettato per l'assegnazione di punteggi di pertinenza di alta precisione e bassa latenza. Per saperne di più sull'API Vertex AI Ranking, consulta Migliorare la qualità della ricerca e di RAG con l'API Ranking. |
Molto bassa (meno di 100 millisecondi) | Prestazioni all'avanguardia | Per richiesta di Vertex AI RAG Engine |
Riclassificatore LLM | LLM reranker utilizza una chiamata separata a Gemini per valutare la pertinenza dei chunk rispetto a una query. | Alto (da 1 a 2 secondi) | Dipendente dal modello | Prezzi dei token LLM |
Utilizzare l'API Vertex AI Ranking
Per utilizzare l'API Vertex AI Ranking, devi abilitare l'API Discovery Engine. Tutti i modelli supportati sono disponibili nell'API Migliora la qualità della ricerca e della RAG con il ranking.
Questi esempi di codice mostrano come attivare il ranking con l'API Vertex AI Ranking nella configurazione dello strumento.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python.
Sostituisci le seguenti variabili utilizzate nellcodice campione:
- PROJECT_ID: l'ID del tuo progetto Google Cloud .
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_NAME: modello LLM per la generazione di contenuti. Ad
esempio,
gemini-2.0-flash
. - INPUT_PROMPT: il testo inviato all'LLM per la generazione di contenuti.
- RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG.
Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: (facoltativo) il numero di contesti principali da recuperare.
- RANKER_MODEL_NAME: il nome del modello utilizzato per
il ranking. Ad esempio:
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
Per generare contenuti utilizzando i modelli Gemini, effettua una chiamata all'API Vertex AI GenerateContent
. Se specifichi RAG_CORPUS_RESOURCE
quando effettui la richiesta, il modello recupera automaticamente i dati da Vertex AI RAG Engine.
Sostituisci le seguenti variabili utilizzate nellcodice campione:
- PROJECT_ID: l'ID del tuo progetto Google Cloud .
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_NAME: modello LLM per la generazione di contenuti. Ad
esempio,
gemini-2.0-flash
. - GENERATION_METHOD: metodo LLM per la generazione di contenuti.
Le opzioni includono
generateContent
estreamGenerateContent
. - INPUT_PROMPT: il testo inviato all'LLM per la generazione di contenuti.
- RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG.
Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: (facoltativo) il numero di contesti principali da recuperare.
- RANKER_MODEL_NAME: il nome del modello utilizzato per
il ranking. Ad esempio:
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"
}
}
}
}
}
}
}'
Utilizza il reranker LLM in Vertex AI RAG Engine
Questa sezione presenta i prerequisiti e gli esempi di codice per l'utilizzo di un sistema di classificazione LLM.
Il reranker LLM supporta solo i modelli Gemini, accessibili quando l'API Vertex AI RAG Engine è abilitata. Per visualizzare l'elenco dei modelli supportati, consulta Modelli Gemini.
Per recuperare i contesti pertinenti utilizzando l'API Vertex AI RAG Engine, svolgi le seguenti operazioni:
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python.
Sostituisci le seguenti variabili utilizzate nell'esempio di codice:
- PROJECT_ID: l'ID del tuo progetto Google Cloud .
- LOCATION: la regione in cui elaborare la richiesta.
- RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG. Formato:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: il testo della query per ottenere contesti pertinenti.
- MODEL_NAME: il nome del modello utilizzato per il ranking.
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
Sostituisci le seguenti variabili utilizzate nell'esempio di codice:
- PROJECT_ID: l'ID del tuo progetto Google Cloud .
- LOCATION: la regione in cui elaborare la richiesta.
- RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG. Formato:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: il testo della query per ottenere contesti pertinenti.
- MODEL_NAME: il nome del modello utilizzato per il ranking.
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"
}
}
}
}
}'
Passaggi successivi
- Per saperne di più sulle risposte di RAG, consulta Output di recupero e generazione di Vertex AI RAG Engine.
- Gestire la knowledge base (corpus) RAG