En esta página, se describe cómo recuperar los recuerdos generados y subidos desde Memory Bank. Para ver el flujo de trabajo completo de configuración, generación y uso de Memory Bank, consulta la Guía de inicio rápido con la API de REST.
Tienes las siguientes opciones para recuperar los recuerdos generados:
Get memory: Obtén el contenido completo de un solo recuerdo.
List memories: Enumera recuerdos
Recuperar recuerdos: Recupera recuerdos con la recuperación de recuerdos basada en permisos. Recupera recuerdos con la búsqueda por similitud o todos los recuerdos dentro del alcance.
Antes de comenzar
Para completar los pasos que se muestran en esta página, primero debes seguir los pasos que se indican en Configura Memory Bank.
Obtener memoria
Usa GetMemories
para obtener el contenido completo de un solo recuerdo:
memory = client.agent_engines.get_memory(name="MEMORY_NAME")
Reemplaza lo siguiente:
- MEMORY_NAME: Es un nombre de memoria completamente calificado con el formato "projects/.../locations/.../reasoningEngines/.../memories...".
Lista de recuerdos
Usa ListMemories
para recuperar todos los recuerdos de tu banco de recuerdos.
pager = client.agent_engines.list_memories(name=agent_engine.api_resource.name)
for page in pager:
print(page)
Recupera recuerdos con la recuperación basada en el alcance
Puedes usar RetrieveMemories
para recuperar recuerdos de un alcance en particular. Solo se devuelven los recuerdos que tienen exactamente el mismo alcance (independientemente del orden) que la solicitud de recuperación. Por ejemplo, puedes recuperar todos los recuerdos que se limitan a un usuario en particular con {"user_id": "123"}
. Si no se devuelven recuerdos, significa que Memory Bank no tiene recuerdos para el alcance proporcionado.
El alcance de un recuerdo se define cuando se genera o crea el recuerdo, y es inmutable.
Puedes usar RetrieveMemories
para realizar las siguientes operaciones en un alcance determinado:
Recupera recuerdos con la búsqueda por similitud
En los casos en los que tengas muchos recuerdos para un alcance en particular, puedes usar la búsqueda por similitud para recuperar solo los recuerdos más similares proporcionando parámetros de búsqueda por similitud. Memory Bank solo considera los recuerdos que tienen exactamente el mismo alcance que la solicitud cuando realiza la búsqueda por similitud. La búsqueda de similitud compara los vectores de incorporación entre los hechos de los recuerdos y la búsqueda de la solicitud.
Los recuerdos devueltos se ordenan desde el más similar (distancia euclidiana más corta) hasta el menos similar (distancia euclidiana más grande):
results = client.agent_engines.retrieve_memories(
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
),
]
"""
Reemplaza lo siguiente:
QUERY: Es la búsqueda para la que se realizará la búsqueda por similitud. Por ejemplo, puedes usar el último turno del usuario en la conversación como la búsqueda.
SCOPE: Es un diccionario que representa el alcance de la búsqueda de similitud. Por ejemplo,
{"user_id": "123"}
Solo se consideran los recuerdos con el mismo alcance que la solicitud.
Recupera todos los recuerdos
Si no se proporcionan parámetros de búsqueda de similitud, RetrieveMemories
devuelve todos los recuerdos que tienen el alcance proporcionado, independientemente de su similitud con la conversación actual.
results = client.agent_engines.retrieve_memories(
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."
}
),
]
"""
Reemplaza lo siguiente:
- SCOPE: Es un diccionario que representa el alcance de la recuperación. Por ejemplo,
{"user_id": "123"}
Solo se muestran los recuerdos con el mismo alcance que la solicitud.