Cette page explique comment récupérer des exemples à partir de votre Example Store. Vous disposez des options suivantes pour récupérer vos exemples:
FetchExamples
: récupère tous les exemples qui correspondent exactement à vos critères de filtrage. Utilisez cette option si vous n'avez que quelques exemples ou si vous avez besoin d'une latence plus faible.SearchExamples
: récupère des exemples à l'aide d'une recherche de similarité entre votre requête utilisateur et vos exemples stockés. Utilisez cette option si vous avez un grand nombre d'exemples.
Prérequis
Avant d'utiliser les exemples Python de cette page, installez et initialisez le SDK Vertex AI pour Python dans votre environnement Python local.
Exécutez la commande suivante pour installer le SDK Vertex AI pour Python pour Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0
Utilisez l'exemple de code suivant pour importer et initialiser le SDK pour Example Store.
import vertexai from vertexai.preview import example_stores vertexai.init( project="PROJECT_ID", location="LOCATION" )
Remplacez les éléments suivants :
PROJECT_ID : ID de votre projet
LOCATION : votre région. Seule l'option
us-central1
est acceptée.
Exemples de récupération
Utilisez les exemples suivants pour extraire des exemples. FetchExamples
récupère tous les exemples correspondant exactement à vos critères de filtrage.
SDK Vertex AI pour Python
Le code suivant renvoie tous les exemples de votre Example Store, jusqu'à 100 par page:
from vertexai.preview import example_stores
example_store = example_stores.ExampleStore(EXAMPLE_STORE_NAME)
# Returns the dictionary representation of FetchExamplesResponse.
examples = example_store.fetch_examples()
Vous pouvez utiliser function_names
pour spécifier un ou plusieurs filtres qui limitent les exemples renvoyés. L'exemple suivant ne renvoie que les exemples qui incluent les fonctions flight_booking_tool
et hotel_booking_tool
:
# Returns examples that include either tool.
example_store.fetch_examples(
filter={
"function_names": {
"values": ["flight_booking_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ANY"
}
}
)
# Returns examples that include *both* tools.
example_store.fetch_examples(
filter={
"function_names": {
"values": ["flight_booking_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ALL"
}
}
)
Vous pouvez utiliser le filtre search_keys
pour limiter les exemples renvoyés par leur clé de recherche.
# Returns examples that include any of the following search keys.
example_store.fetch_examples(
filter={"search_keys": ["How do I get to the airport?"]}
)
Vous pouvez utiliser le filtre example_ids
pour limiter les exemples renvoyés par leur ID d'exemple. Les exemples d'ID utilisent le format exampleTypes/stored_contents_example/examples/<var>EXAMPLE_ID</var>
, où EXAMPLE_ID représente l'ID numérique généré pour l'exemple.
# Returns examples that have any of the following Example IDs.
example_store.fetch_examples(
example_ids=["exampleTypes/stored_contents_example/examples/09b1d383f92c47e7a2583a44ebbc7854"]
)
API REST
Pour extraire des exemples, envoyez une requête POST à l'aide de la méthode exampleStores.fetchExamples
.
Le filtre function_names
spécifié dans l'exemple de corps de requête JSON ne renvoie que des exemples qui incluent les fonctions flight_booking_tool
et hotel_booking_tool
:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet
- LOCATION: région dans laquelle vous souhaitez créer l'exemple de boutique. La seule région compatible est
us-central1
. - EXAMPLE_STORE_ID: ID de l'instance Example Store dans laquelle vous souhaitez importer l'exemple.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:fetchExamples
Corps JSON de la requête :
{ "stored_contents_example_filter": { "function_names": { "values": ["flight_booking_tool", "hotel_booking_tool"], "array_operator": "CONTAINS_ANY" } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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:fetchExamples"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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:fetchExamples" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à celle-ci, où EXAMPLE_ID représente l'ID généré pour l'exemple.
Exemples de recherches
Example Store trouve les exemples les plus pertinents en fonction du score de similarité entre les clés de recherche de stored_contents_example_key
et des exemples stockés. L'utilisation d'exemples pertinents pour la conversation aide le modèle à apprendre le comportement attendu.
SDK Vertex AI pour Python
Utilisez l'exemple de code suivant pour rechercher des exemples pertinents à l'aide du SDK Vertex AI pour Python:
example_store.search_examples(
parameters={
"stored_contents_example_key": "what's the weather in nyc"
},
# Only fetch the most similar examaple. The default value is 3.
top_k=1
)
"""
Response -- dictionary representation of SearchExamplesResponse.
{'results': [{'example': {'exampleId': 'exampleTypes/stored_contents_example/examples/16834837b178453783e471b459d99195',
'storedContentsExample': {'searchKey': 'What is the weather like in Boston?',
'contentsExample': {'contents': [{'role': 'user',
'parts': [{'text': 'What is the weather like in Boston?'}]}],
'expectedContents': [{'content': {'parts': [{'functionCall': {'name': 'get_current_weather',
'args': {'location': 'New York, NY'}}}]}},
{'content': {'parts': [{'functionResponse': {'name': 'get_current_weather',
'response': {'humidity': 65.0,
'description': 'Partly Cloudy',
'icon': 'partly-cloudy',
'temperature': 38.0,
'location': 'Boston, MA',
'wind': {'speed': 10.0, 'direction': 'NW'}}}}]}},
{'content': {'role': 'model',
'parts': [{'text': 'The weather in Boston is 38 degrees and partly cloudy.'}]}}]}}},
'similarityScore': 0.73527116}]}
"""
Vous pouvez utiliser le filtre function_names
pour limiter les exemples inclus dans la recherche de similarité.
example_store.search_examples(
parameters={
"stored_contents_example_key": "What's the weather in nyc",
"function_names": {
"values": ["weather_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ANY"
}
}
)