Utiliser un agent de pipeline de requêtes LlamaIndex

Avant de commencer

Ce tutoriel suppose que vous avez lu et suivi les instructions de :

Obtenir une instance d'un agent

Pour interroger un LlamaIndexQueryPipelineAgent, vous devez d'abord créer une instance ou obtenir une instance existante.

Pour obtenir le LlamaIndexQueryPipelineAgent correspondant à un ID de ressource spécifique :

SDK Vertex AI pour Python

Exécutez le code suivant :

import vertexai

client = vertexai.Client(  # For service interactions via client.agent_engines
    project="PROJECT_ID",
    location="LOCATION",
)

agent = client.agent_engines.get(name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID")

print(agent)

Où :

Bibliothèque de requêtes Python

Exécutez le code suivant :

from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests

def get_identity_token():
    credentials, _ = google_auth.default()
    auth_request = google_requests.Request()
    credentials.refresh(auth_request)
    return credentials.token

response = requests.get(
f"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
    headers={
        "Content-Type": "application/json; charset=utf-8",
        "Authorization": f"Bearer {get_identity_token()}",
    },
)

API REST

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID

Lorsque vous utilisez le SDK Vertex AI pour Python, l'objet agent correspond à une classe AgentEngine qui contient les éléments suivants :

  • un agent.api_resource contenant des informations sur l'agent déployé. Vous pouvez également appeler agent.operation_schemas() pour renvoyer la liste des opérations compatibles avec l'agent. Pour en savoir plus, consultez Opérations compatibles.
  • un agent.api_client qui permet des interactions de service synchrones.
  • un agent.async_api_client qui permet des interactions de service asynchrones.

Le reste de cette section suppose que vous disposez d'une instance AgentEngine nommée agent.

Opérations compatibles

Les opérations suivantes sont acceptées pour LlamaIndexQueryPipelineAgent :

  • query : pour obtenir une réponse à une requête de manière synchrone.

La méthode query accepte le type d'argument suivant :

  • input : messages à envoyer à l'agent.

Interroger l'agent

La commande

agent.query(input="What is Paul Graham's life in college?")

équivaut à ce qui suit (sous forme complète) :

agent.query(input={"input": "What is Paul Graham's life in college?"})

Pour personnaliser le dictionnaire d'entrée, consultez Personnaliser le modèle de requête.

Vous pouvez également personnaliser le comportement de l'agent au-delà de input en transmettant des arguments de mots clés supplémentaires à query().

response = agent.query(
    input={
      "input" = [
        "What is Paul Graham's life in college?",
        "How did Paul Graham's college experience shape his career?",
        "How did Paul Graham's college experience shape his entrepreneurial mindset?",
      ],
    },
    batch=True  # run the pipeline in batch mode and pass a list of inputs.
)
print(response)

Pour obtenir la liste complète des paramètres disponibles, consultez le code QueryPipeline.run.

Étapes suivantes