Récupérer des souvenirs

Cette page explique comment récupérer les souvenirs générés et importés depuis la Banque de souvenirs. Pour découvrir l'intégralité du workflow de configuration, de génération et d'utilisation de la banque de mémoire, consultez le guide de démarrage rapide avec l'API REST.

Vous disposez des options suivantes pour récupérer les souvenirs générés :

  • Obtenir la mémoire : obtenez l'intégralité du contenu d'une mémoire à l'aide du SDK Vertex AI.

  • Lister les souvenirs : listez les souvenirs à l'aide du SDK Vertex AI ou de la console Google Cloud .

  • Récupérer des souvenirs : à l'aide du SDK Vertex AI, récupérez des souvenirs à l'aide de la récupération de mémoire basée sur le champ d'application. Récupérez des souvenirs à l'aide d'une recherche par similarité ou tous les souvenirs inclus dans le champ d'application.

Avant de commencer

Pour suivre les étapes décrites sur cette page, vous devez d'abord suivre celles de la section Configurer Memory Bank.

Obtenir un souvenir

Utilisez GetMemories pour obtenir l'intégralité du contenu d'une mémoire :

memory = client.agent_engines.memories.get(
    name="MEMORY_NAME")

Remplacez les éléments suivants :

  • MEMORY_NAME : nom de mémoire complet au format "projects/.../locations/.../reasoningEngines/.../memories...".

Lister les souvenirs

Console

Pour les agents déployés, vous pouvez utiliser la console Google Cloud pour lister toutes les mémoires associées à votre instance Agent Engine :

  1. Dans la console Google Cloud , accédez à la page Vertex AI Agent Engine.

    Accéder à Agent Engine

    Les instances Agent Engine faisant partie du projet sélectionné apparaissent dans la liste. Vous pouvez utiliser le champ Filtrer pour filtrer la liste en fonction de la colonne spécifiée.

  2. Cliquez sur le nom de votre instance Agent Engine.

  3. Cliquez sur l'onglet Souvenirs. Une liste de souvenirs s'affiche par ID. Vous pouvez filtrer les souvenirs par champ d'application (par exemple, {"user_id": "123"}).

SDK Vertex AI

Utilisez ListMemories pour récupérer tous les souvenirs de votre banque de souvenirs.

pager = client.agent_engines.memories.list(name=agent_engine.api_resource.name)
for page in pager:
  print(page)

Récupérer des souvenirs à l'aide de la récupération basée sur le champ d'application

Vous pouvez utiliser RetrieveMemories pour récupérer des souvenirs pour une portée spécifique. Seules les mémoires ayant exactement la même portée (indépendamment de l'ordre) que la demande de récupération sont renvoyées. Par exemple, vous pouvez récupérer tous les souvenirs associés à un utilisateur spécifique à l'aide de {"user_id": "123"}. Si aucun souvenir n'est renvoyé, cela signifie que la banque de souvenirs n'en contient aucun pour le champ d'application fourni.

Le champ d'application d'un souvenir est défini lors de sa génération ou de sa création, et il est immuable.

Vous pouvez utiliser RetrieveMemories pour effectuer les opérations suivantes pour un champ d'application spécifique :

Si vous avez de nombreux souvenirs pour une portée spécifique, vous pouvez utiliser la recherche par similarité pour n'extraire que les souvenirs les plus similaires en fournissant des paramètres de recherche par similarité. Memory Bank ne prend en compte que les souvenirs dont le champ d'application est exactement le même que celui de la requête lors de la recherche par similarité. La recherche de similarité compare les vecteurs d'embedding entre les faits des souvenirs et la requête de recherche.

Les souvenirs renvoyés sont triés du plus similaire (distance euclidienne la plus courte) au moins similaire (distance euclidienne la plus longue) :

results = client.agent_engines.memories.retrieve(
    name=agent_engine.api_resource.name,
    scope=SCOPE,
    similarity_search_params={
        "search_query": "QUERY",
        # Optional. Defaults to 3.
        "top_k": 3
    }
)
# RetrieveMemories returns a pager. You can use `list` to retrieve all memories.
list(results)

"""
Returns:

[
    RetrieveMemoriesResponseRetrievedMemory(
      memory=Memory(
        name="projects/.../locations/.../reasoningEngines/.../memories/...",
        ...
        fact="This is a fact."
      },
      distance=0.5
    ),
    RetrieveMemoriesResponseRetrievedMemory(
      memory=Memory(
        name="projects/.../locations/.../reasoningEngines/.../memories/...",
        ...
        fact="This is another fact."
      },
      distance=0.7
    ),
]
"""

Remplacez les éléments suivants :

  • QUERY : requête pour laquelle effectuer une recherche par similarité. Par exemple, vous pouvez utiliser la dernière réponse de l'utilisateur dans la conversation comme requête.

  • SCOPE : dictionnaire représentant le champ d'application de la recherche par similarité. Exemple :{"user_id": "123"} Seuls les souvenirs ayant la même portée que la requête sont pris en compte.

Récupérer tous les souvenirs

Si aucun paramètre de recherche de similarité n'est fourni, RetrieveMemories renvoie toutes les mémoires ayant la portée indiquée, quelle que soit leur similarité avec la conversation en cours.

results = client.agent_engines.memories.retrieve(
    name=agent_engine.api_resource.name,
    scope=SCOPE
)
# RetrieveMemories returns a pager. You can use `list` to retrieve all pages' memories.
list(results)

"""
Returns:

[
    RetrieveMemoriesResponseRetrievedMemory(
      memory=Memory(
        name="projects/.../locations/.../reasoningEngines/.../memories/...",
        ...
        fact="This is a fact."
      }
    ),
    RetrieveMemoriesResponseRetrievedMemory(
      memory=Memory(
        name="projects/.../locations/.../reasoningEngines/.../memories/...",
        ...
        fact="This is another fact."
      }
    ),
]
"""

Remplacez les éléments suivants :

  • SCOPE : dictionnaire représentant le champ d'application de la récupération. Exemple :{"user_id": "123"} Seuls les souvenirs ayant la même portée que la requête sont renvoyés.