Esta página descreve como obter memórias geradas e carregadas do banco de memórias. Para ver o fluxo de trabalho completo de configuração, geração e utilização do Memory Bank, consulte o guia de início rápido com a API REST.
Tem as seguintes opções para obter memórias geradas:
Obter memória: obtenha o conteúdo completo de uma única memória através do SDK do Vertex AI.
Listar memórias: liste memórias através do SDK Vertex AI ou da consola Google Cloud .
Recuperar memórias: com o SDK Vertex AI, recupere memórias através da recuperação de memórias baseada no âmbito. Recuperar memórias através da pesquisa por similaridade ou de todas as memórias no âmbito.
Antes de começar
Para concluir os passos demonstrados nesta página, primeiro, tem de seguir os passos em Configuração do banco de memória.
Crie uma memória
Use GetMemories para obter o conteúdo completo de uma única memória:
memory = client.agent_engines.memories.get(
name="MEMORY_NAME")
Substitua o seguinte:
- MEMORY_NAME: um nome de memória totalmente qualificado no formato "projects/.../locations/.../reasoningEngines/.../memories...".
Liste memórias
Consola
Para agentes implementados, pode usar a Google Cloud consola para listar todas as memórias associadas à sua instância do Agent Engine:
- Na Google Cloud consola, aceda à página Vertex AI Agent Engine.
As instâncias do Agent Engine que fazem parte do projeto selecionado aparecem na lista. Pode usar o campo Filtrar para filtrar a lista pela coluna especificada.
Clique no nome da instância do Agent Engine.
Clique no separador Memórias. É apresentada uma lista de memórias por ID. Pode filtrar as memórias por âmbito (por exemplo,
{"user_id": "123"}).
SDK Vertex AI
Use ListMemories para obter todas as memórias no seu banco de memórias.
pager = client.agent_engines.memories.list(name=agent_engine.api_resource.name)
for page in pager:
print(page)
Obtenha memórias através da obtenção baseada no âmbito
Pode usar RetrieveMemories para obter memórias de um âmbito específico. Só são devolvidas memórias com o mesmo âmbito exato (independentemente da ordem) que o pedido de obtenção. Por exemplo, pode obter todas as memórias associadas a um utilizador específico através de {"user_id": "123"}. Se não forem devolvidas memórias, o banco de memórias não tem memórias para o âmbito fornecido.
O âmbito de uma memória é definido quando a memória é gerada ou criada e é imutável.
Pode usar RetrieveMemories para realizar as seguintes operações para um âmbito específico:
Recupere memórias através da pesquisa por semelhança
Nos casos em que tem muitas memórias para um âmbito específico, pode usar a pesquisa de semelhanças para obter apenas as memórias mais semelhantes, fornecendo parâmetros de pesquisa de semelhanças. O banco de memória só considera memórias que têm exatamente o mesmo âmbito que o pedido quando realiza uma pesquisa de semelhanças. A pesquisa de semelhanças compara os vetores de incorporação entre os factos das memórias e a consulta de pesquisa do pedido.
As memórias devolvidas são ordenadas da mais semelhante (distância euclidiana mais curta) para a menos semelhante (distância euclidiana mais longa):
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
),
]
"""
Substitua o seguinte:
QUERY: a consulta para a qual vai ser realizada a pesquisa de similaridade. Por exemplo, pode usar a última interação do utilizador na conversa como consulta.
SCOPE: um dicionário que representa o âmbito da pesquisa de similaridade. Por exemplo,
{"user_id": "123"}. Apenas são consideradas as memórias com o mesmo âmbito que o pedido.
Recupere todas as memórias
Se não forem fornecidos parâmetros de pesquisa de semelhanças, RetrieveMemories devolve todas as memórias que têm o âmbito fornecido, independentemente da respetiva semelhança com a conversa atual.
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."
}
),
]
"""
Substitua o seguinte:
- SCOPE: um dicionário que representa o âmbito da obtenção. Por exemplo,
{"user_id": "123"}. Só são devolvidas memórias com o mesmo âmbito que o pedido.