Después de crear una instancia de Example Store, puedes empezar a crear y subir ejemplos. No hay límite en el número de ejemplos que puedes almacenar en una instancia de ExampleStore. Los ejemplos estarán disponibles inmediatamente después de subirlos a la instancia de Example Store.
Estos son algunos casos en los que tendría que subir ejemplos:
Las consultas no son relevantes para los ejemplos.
El modelo tiene dificultades con algunos razonamientos.
Los ejemplos disponibles no abarcan todas las funciones, los resultados o el razonamiento que esperas.
Si creas ejemplos relevantes con el formato esperado, puedes conseguir lo siguiente:
Mejorar la capacidad del LLM para prestar atención a los ejemplos y usarlos, evitando cambios inesperados en los patrones de respuesta que se producen debido a pequeños cambios en la petición.
Reduce el posible impacto negativo de añadir ejemplos de consultas irrelevantes.
El LLM funciona correctamente con consultas similares.
Si el LLM muestra un comportamiento o un razonamiento inesperado, puedes subir una respuesta corregida para guiar al modelo a seguir el patrón o el razonamiento esperado en las solicitudes posteriores.
Las muestras de esta página te permiten crear ejemplos basados en la salida de LLM. Crear ejemplos basados en la salida de un LLM tiene las siguientes ventajas con respecto a crear ejemplos manualmente:
Crear ejemplos basados en los resultados esperados del LLM requiere menos esfuerzo manual.
Si creas ejemplos basados en el comportamiento inesperado de LLMs, puedes corregir directamente los casos de error.
Puedes crear ejemplos basados en las respuestas de modelos con buen rendimiento para mejorar el comportamiento de otros modelos. Por ejemplo, si Gemini 1.5 Pro ofrece mejores respuestas que Gemini 1.5 Flash, pero con una latencia mayor, puedes crear ejemplos con esas respuestas para conseguir un rendimiento similar con latencias más bajas usando Gemini 1.5 Flash.
Usar ejemplos para mejorar el rendimiento de la llamada de función
Puedes usar ejemplos de pocos disparos para mejorar el rendimiento de las llamadas a funciones mostrando lo siguiente: * Cuándo se invoca una función concreta.
Cómo extraer los argumentos que se van a usar en la llamada a la función.
Cómo responde el modelo en función de la respuesta devuelta por la función o por varias funciones en caso de razonamiento de varios pasos.
Para obtener más información sobre la llamada a funciones, consulta la documentación sobre la llamada a funciones.
Requisitos previos
Antes de usar los ejemplos de Python de esta página, debes instalar e inicializar el SDK de Vertex AI para Python para Example Store en tu entorno de Python local.
Ejecuta el siguiente comando para instalar el SDK de Vertex AI para Python en Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0
Usa el siguiente código de ejemplo para importar e inicializar el SDK de Example Store.
import vertexai from vertexai.preview import example_stores vertexai.init( project="PROJECT_ID", location="LOCATION" )
Haz los cambios siguientes:
PROJECT_ID: tu ID de proyecto.
LOCATION: tu región. Solo se admite
us-central1
.
Subir ejemplos
Usa los siguientes ejemplos para subir ejemplos a una instancia de Example Store. Puedes subir un máximo de cinco ejemplos por solicitud.
Python
Los siguientes ejemplos te permiten mejorar el comportamiento de los LLMs y el rendimiento de las llamadas de función creando y subiendo ejemplos a una instancia de Example Store, usando las respuestas recibidas de un LLM. Antes de usar los siguientes ejemplos, asegúrate de haber hecho lo siguiente:Sigue las instrucciones de configuración de Python que se indican en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de Vertex AI.
Autentícate en Vertex AI configurando las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación en un entorno de desarrollo local.
Subir un ejemplo basado en una respuesta esperada
Usa el siguiente ejemplo para crear y subir una muestra en un caso en el que la respuesta del LLM tenga el formato esperado. Este ejemplo te permite enviar una solicitud, crear un ejemplo basado en la respuesta y, a continuación, subir el ejemplo a una instancia de Example Store.
from vertexai.preview.example_stores import ContentsExample, StoredContentsExample
client = genai.Client(
http_options=genai_types.HttpOptions(api_version="v1"),
vertexai=True,
project="PROJECT_ID",,
location="LOCATION")
user_content = Content(
role="user",
parts=[Part(text="EXAMPLE_QUERY")],
)
response = client.models.generate_content(
model="MODEL_NAME",
user_content,
config=genai_types.GenerateContentConfig(
tools=[FUNCTION_OR_FUNCTION_DECLARATION]
)
)
# Upload example.
example = {
"contents_example": {
"contents": [user_content.to_json_dict()],
"expected_contents": [
{"content": response.candidates[0].content.to_json_dict()},
{"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
{"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
],
},
"search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])
Haz los cambios siguientes:
PROJECT_ID: tu ID de proyecto.
LOCATION: tu región. Solo se admite
us-central1
.EXAMPLE_QUERY: la solicitud o consulta del usuario al LLM o al agente.
MODEL_NAME: nombre del modelo. Por ejemplo,
gemini-2.0-flash
.FUNCTION_OR_FUNCTION_DECLARATION: la función o la declaración de función que se va a usar en la solicitud. Consulta la documentación del SDK de IA generativa sobre la función de llamada a funciones para obtener ayuda a la hora de definir una función como herramienta.
EXPECTED_FUNCTION_RESPONSE: la respuesta esperada de la función (un
FunctionResponse
objeto) para la llamada de la función esperada. Consulta la documentación del SDK de IA generativa sobre la función de llamada a funciones para obtener ayuda a la hora de definir una respuesta de función.EXPECTED_FINAL_MODEL_RESPONSE: la respuesta final esperada del modelo (un objeto
Content
) para la llamada de función y la respuesta esperadas.
Subir un ejemplo para corregir una respuesta inesperada
Si el LLM no genera la respuesta como esperabas, puedes crear un ejemplo basado en la respuesta corregida. De esta forma, el LLM sigue el razonamiento esperado en las solicitudes posteriores.
Usa el siguiente ejemplo para subir un ejemplo con la respuesta corregida a la instancia de Example Store.
user_content = Content(
role="user",
parts=[Part(text="EXAMPLE_QUERY")],
)
example = {
"contents_example": {
"contents": [user_content.to_json_dict()],
"expected_contents": [
{"content": EXPECTED_FUNCTION_CALL.to_json_dict()},
{"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
{"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
],
},
"search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])
Haz los cambios siguientes:
EXAMPLE_QUERY: la solicitud o consulta del usuario al LLM o al agente.
EXPECTED_FUNCTION_CALL: la llamada a función esperada (un
FunctionCall
objeto) para la consulta de usuario proporcionada. Consulta la documentación del SDK de IA generativa sobre la función de llamada a funciones para obtener ayuda sobre cómo definir una llamada a funciones.EXPECTED_FUNCTION_RESPONSE: la respuesta esperada de la función (un
FunctionResponse
objeto) para la llamada de la función esperada. Consulta la documentación del SDK de IA generativa sobre la función de llamada a funciones para obtener ayuda a la hora de definir una respuesta de función.EXPECTED_FINAL_MODEL_RESPONSE: la respuesta final esperada del modelo (un objeto
Content
) para la llamada de función y la respuesta esperadas.
REST
Para subir una muestra a una instancia de Example Store, envía una solicitud POST
mediante el método exampleStores.upsertExamples
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto.
- LOCATION: la región en la que quieres crear la tienda de ejemplo. La única región admitida es
us-central1
. - EXAMPLE_STORE_ID: el ID de la instancia de Example Store en la que quiere subir el ejemplo.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples
Cuerpo JSON de la solicitud:
{ "examples": [ { "stored_contents_example": { "contents_example": { "contents": [ { "role": "user", "parts": [ { "text": "Is there a store in Mountain View, CA that I can visit to try the new Pixel 8 Pro?" } ] } ], "expected_contents": [ { "content": { "role": "model", "parts": [ { "text": ""Yes, there is a store located at 2000 N Shoreline Blvd, Mountain View, CA 94043, US." } ] } } ] }, "search_key_generation_method": { "last_entry": {} } } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente, donde EXAMPLE_ID representa el ID numérico generado para el ejemplo.
Siguientes pasos
- Consulta cómo recuperar ejemplos.