Después de crear una instancia de Example Store, puedes comenzar a crear y subir ejemplos a ella. No hay límite para la cantidad de ejemplos que puedes almacenar en una instancia de Example Store. Los ejemplos estarán disponibles inmediatamente después de que los subas a la instancia de Example Store.
A continuación, se incluyen algunas situaciones en las que deberás subir ejemplos:
Las búsquedas no son pertinentes para los ejemplos existentes.
El modelo tiene dificultades con algunos razonamientos.
Los ejemplos disponibles no abarcan todas las funciones, los resultados ni el razonamiento que esperas.
Si creas ejemplos pertinentes en el formato esperado, puedes lograr lo siguiente:
Mejora la capacidad del LLM para prestar atención a los ejemplos y usarlos, y evita cambios inesperados en los patrones de respuesta que resultan de pequeños cambios en la instrucción.
Reducir el posible impacto negativo de agregar ejemplos para búsquedas irrelevantes
El LLM funciona según lo esperado para consultas similares.
Si el LLM muestra un comportamiento o un razonamiento inesperados, puedes subir una respuesta corregida para guiar al modelo a seguir el patrón o el razonamiento esperados en solicitudes posteriores.
Los ejemplos de esta página te permiten crear ejemplos basados en el resultado del LLM. Crear ejemplos basados en el resultado de un LLM tiene las siguientes ventajas en comparación con la creación manual de ejemplos:
Crear ejemplos basados en el resultado esperado del LLM requiere menos esfuerzo manual.
Si creas ejemplos basados en el comportamiento inesperado del LLM, puedes corregir directamente los casos de falla.
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 proporciona mejores respuestas que Gemini 1.5 Flash, pero con una latencia más alta, puedes crear ejemplos con esas respuestas para lograr un rendimiento similar con latencias más bajas usando Gemini 1.5 Flash.
Usa ejemplos para mejorar el rendimiento de la llamada a función
Puedes usar ejemplos de pocos disparos para mejorar el rendimiento de la llamada a función, ya que demuestran lo siguiente: * Cuándo se invoca una función en particular
Cómo extraer los argumentos para usarlos en la llamada a la función
Cómo responde el modelo en función de la respuesta que devuelve la función o varias funciones en el caso de un razonamiento de varios pasos.
Para obtener más información sobre la llamada a función, consulta la documentación de la llamada a función.
Requisitos previos
Antes de usar las muestras de Python en esta página, debes instalar e inicializar el SDK de Vertex AI para Python para Example Store en tu entorno local de Python.
Ejecuta el siguiente comando para instalar el SDK de Vertex AI para Python para Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0
Usa el siguiente muestra de código para importar y, luego, inicializar el SDK de Example Store.
import vertexai from vertexai.preview import example_stores vertexai.init( project="PROJECT_ID", location="LOCATION" )
Reemplaza lo siguiente:
PROJECT_ID: ID del 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
En los siguientes ejemplos, se muestra cómo mejorar el comportamiento del LLM y el rendimiento de las llamadas a función creando y subiendo ejemplos a una instancia de Example Store con las respuestas recibidas de un LLM. Antes de usar las siguientes muestras, asegúrate de haber hecho lo siguiente:Sigue las instrucciones de configuración para Python que se encuentran en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Vertex AI para Python.
Configura las credenciales predeterminadas de la aplicación para autenticarte en Vertex AI. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Sube un ejemplo basado en una respuesta esperada
Usa el siguiente ejemplo para crear y subir una muestra en una situación en la que la respuesta del LLM tiene el formato esperado. Este ejemplo te permite enviar una solicitud, crear un ejemplo basado en la respuesta y, luego, 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])
Reemplaza lo siguiente:
PROJECT_ID: ID del proyecto
LOCATION: Tu región. Solo se admite
us-central1
.EXAMPLE_QUERY: Es la solicitud o consulta del usuario al LLM o al agente.
MODEL_NAME: Es el nombre del modelo. Por ejemplo,
gemini-2.0-flash
FUNCTION_OR_FUNCTION_DECLARATION: Es la función o la declaración de función que se usará en la solicitud. Consulta la documentación del SDK de IA generativa para la Llamada a funciones si necesitas ayuda para definir una función como herramienta.
EXPECTED_FUNCTION_RESPONSE: Es la respuesta esperada de la función (un
FunctionResponse
objeto) para la llamada esperada de la función. Consulta la documentación del SDK de IA generativa para la llamada a función si necesitas ayuda para definir una respuesta de función.EXPECTED_FINAL_MODEL_RESPONSE: Es la respuesta final esperada del modelo (un objeto
Content
) para la llamada y la respuesta esperadas de la función.
Sube un ejemplo para corregir una respuesta inesperada
Si el LLM no genera la respuesta según lo esperado, puedes crear un ejemplo basado en la respuesta corregida. Esto ayuda al LLM a seguir el razonamiento esperado para las solicitudes posteriores.
Usa la siguiente muestra 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])
Reemplaza lo siguiente:
EXAMPLE_QUERY: Es la solicitud o consulta del usuario al LLM o al agente.
EXPECTED_FUNCTION_CALL: Es la llamada a la función esperada (un
FunctionCall
objeto) para la búsqueda del usuario proporcionada. Consulta la documentación del SDK de IA generativa para la llamada a función para obtener ayuda para definir una llamada a función.EXPECTED_FUNCTION_RESPONSE: Es la respuesta esperada de la función (un
FunctionResponse
objeto) para la llamada esperada de la función. Consulta la documentación del SDK de IA generativa para la llamada a función si necesitas ayuda para definir una respuesta de función.EXPECTED_FINAL_MODEL_RESPONSE: Es la respuesta final esperada del modelo (un objeto
Content
) para la llamada y la respuesta esperadas de la función.
REST
Para subir una muestra a una instancia de Example Store, envía una solicitud POST
con el método exampleStores.upsertExamples
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: ID del proyecto
- LOCATION: Es la región en la que deseas crear la tienda de ejemplo. La única región admitida es
us-central1
. - EXAMPLE_STORE_ID: ID de la instancia de Example Store en la que deseas 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, en la que EXAMPLE_ID representa el ID numérico generado para el ejemplo.
¿Qué sigue?
- Obtén más información para recuperar ejemplos.