En la página, se explica la clasificación nueva y los tipos de clasificadores. En la página, también se muestra cómo usar la API de clasificación de Vertex AI para volver a clasificar las respuestas recuperadas.
Reclasificadores disponibles
Opciones del clasificador | Descripción | Latencia | Precisión | Precios |
---|---|---|---|---|
API de clasificación de Vertex AI | La API de clasificación de Vertex AI es un reclasificador semántico independiente diseñado para obtener una puntuación de relevancia muy precisa y una latencia baja. Para obtener más información sobre la API de clasificación de Vertex AI, consulta Cómo mejorar la búsqueda y la calidad de RAG con la API de clasificación. |
Muy baja (menos de 100 milisegundos) | Rendimiento de vanguardia | Por solicitud del motor de RAG de Vertex AI |
Reclasificador de LLM | El reclasificador de LLM usa una llamada independiente a Gemini para evaluar la relevancia de los fragmentos para una consulta. | Alta (de 1 a 2 segundos) | Depende del modelo | Precios de los tokens de LLM |
Usa la API de clasificación de Vertex AI
Para usar la API de clasificación de Vertex AI, debes habilitar la API de Discovery Engine. Puedes encontrar todos los modelos compatibles en Mejora la búsqueda y la calidad de la RAG con la API de clasificación.
En estos ejemplos de código, se muestra cómo habilitar la clasificación nuevamente con la API de clasificación de Vertex AI en la configuración de la herramienta.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Reemplaza las siguientes variables que se usan en el código de muestra:
- PROJECT_ID: Es el ID de tu Google Cloud proyecto.
- LOCATION: Es la región para procesar la solicitud.
- MODEL_NAME: Es un modelo de LLM para la generación de contenido. Por ejemplo,
gemini-2.0-flash
. - INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG.
Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: Es la cantidad de contextos principales que se recuperarán.
- RANKER_MODEL_NAME: Es el nombre del modelo que se usa para la clasificación nuevamente. Por ejemplo,
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
Para generar contenido con modelos de Gemini, realiza una llamada a la
API de GenerateContent
de Vertex AI. Cuando especificas el RAG_CORPUS_RESOURCE
cuando realizas la solicitud, el modelo recupera datos automáticamente del motor de RAG de Vertex AI.
Reemplaza las siguientes variables que se usan en el código de muestra:
- PROJECT_ID: Es el ID de tu Google Cloud proyecto.
- LOCATION: Es la región para procesar la solicitud.
- MODEL_NAME: Es un modelo de LLM para la generación de contenido. Por ejemplo,
gemini-2.0-flash
. - GENERATION_METHOD: Es el método LLM para la generación de contenido.
Las opciones incluyen
generateContent
ystreamGenerateContent
. - INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG.
Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: Es la cantidad de contextos principales que se recuperarán.
- RANKER_MODEL_NAME: Es el nombre del modelo que se usa para la clasificación nuevamente. Por ejemplo,
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"
}
}
}
}
}
}
}'
Usa el reclasificador de LLM en el motor de RAG de Vertex AI
En esta sección, se presentan los requisitos previos y las muestras de código para usar un reclasificador de LLM.
El reclasificador de LLM solo admite modelos de Gemini, a los que se puede acceder cuando está habilitada la API de Vertex AI RAG Engine. Para ver la lista de modelos compatibles, consulta Modelos de Gemini.
Para recuperar contextos relevantes con la API de Vertex AI RAG Engine, haz lo siguiente:
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Reemplaza las siguientes variables que se usan en la muestra de código:
- PROJECT_ID: Es el ID de tu Google Cloud proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG. Formato:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: Es el texto de la consulta para obtener contextos relevantes.
- MODEL_NAME: Es el nombre del modelo que se usa para volver a clasificar.
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
Reemplaza las siguientes variables que se usan en la muestra de código:
- PROJECT_ID: Es el ID de tu Google Cloud proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG. Formato:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - TEXT: Es el texto de la consulta para obtener contextos relevantes.
- MODEL_NAME: Es el nombre del modelo que se usa para volver a clasificar.
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"
}
}
}
}
}'
¿Qué sigue?
- Para obtener más información sobre las respuestas de RAG, consulta Resultado de la recuperación y la generación del motor de RAG de Vertex AI.
- Administra tu base de conocimiento (corpus) de RAG