Esta página descreve como buscar recordações geradas e enviadas do Banco de recordações. Para conferir todo o fluxo de trabalho de configuração, geração e uso do Memory Bank, consulte o guia de início rápido com a API REST.
Você tem as seguintes opções para buscar recordações geradas:
Get memory: recebe todo o conteúdo de uma única memória.
Listar recordações: lista as recordações.
Recuperar recordações: recupere recordações usando a recuperação de recordações com base em escopo. Recuperar recordações usando a pesquisa por similaridade ou todas as recordações no escopo.
Configurar o ambiente
Antes de começar, configure seu ambiente e a instância do Agent Engine. Esta seção pressupõe que você configurou um ambiente de desenvolvimento em Python ou está usando um ambiente de execução com um ambiente de desenvolvimento em Python, como o Colab.
Importar bibliotecas
Instale o SDK da Vertex AI:
pip install google-cloud-aiplatform>=1.100.0
Configurar um cliente do SDK da Vertex AI
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
Substitua:
- PROJECT_ID: o ID do projeto.
- LOCATION: sua região. Somente
us-central1
é compatível com o banco de memória do Vertex AI Agent Engine.
Configurar a instância do Agent Engine
Para buscar recordações do banco de memória, primeiro você precisa de uma instância de um Agent Engine. É possível criar uma instância ou acessar uma já existente. As novas instâncias do Agent Engine ficam vazias, a menos que você primeiro crie ou gere memórias.
Criar
agent_engine = client.agent_engines.create()
Usar atual
agent_engine = client.agent_engines.get(name="AGENT_ENGINE_NAME")
Substitua:
- AGENT_ENGINE_NAME: o nome do mecanismo de agente. Ele precisa estar no formato
projects/.../locations/.../reasoningEngines/...
. Só é possível usar instâncias do Agent Engine emus-central1
para o banco de memória do Vertex AI Agent Engine.
Receber recordação
Use GetMemories
para acessar o conteúdo completo de uma única recordação:
memory = client.agent_engines.get_memory(name="MEMORY_NAME")
Substitua:
- MEMORY_NAME: um nome de memória totalmente qualificado no formato "projects/.../locations/.../reasoningEngines/.../memories...".
Listar recordações
Use ListMemories
para buscar todas as recordações no seu Banco de recordações.
pager = client.agent_engines.list_memories(name=agent_engine.api_resource.name)
for page in pager:
print(page)
Extrair recordações usando a recuperação baseada em escopo
Você pode usar RetrieveMemories
para recuperar recordações de um escopo específico. Somente as memórias que têm o mesmo escopo (independente da ordem) da solicitação de recuperação são retornadas. Por exemplo, é possível recuperar todas as recordações de um usuário específico usando {"user_id": "123"}
. Se nenhuma recordação for retornada, o Memory Bank não terá nenhuma recordação para o escopo fornecido.
O escopo de uma recordação é definido quando ela é gerada ou criada e é imutável.
Você pode usar RetrieveMemories
para realizar as seguintes operações em um escopo específico:
Recuperar recordações usando a pesquisa de similaridade
Para casos em que você tem muitas memórias para um escopo específico, use a pesquisa por similaridade para recuperar apenas as mais semelhantes fornecendo parâmetros de pesquisa por similaridade. O Memory Bank só considera as recordações que têm exatamente o mesmo escopo da solicitação ao realizar a pesquisa de similaridade. A pesquisa por similaridade compara os vetores de embedding entre os fatos das recordações e a consulta de pesquisa da solicitação.
As recordações retornadas são classificadas da mais semelhante (menor distância euclidiana) para a menos semelhante (maior distância euclidiana):
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
),
]
"""
Substitua:
QUERY: a consulta para realizar a pesquisa de similaridade. Por exemplo, use a última vez que o usuário falou na conversa como consulta.
SCOPE: um dicionário que representa o escopo da pesquisa de similaridade. Por exemplo,
{"user_id": "123"}
. Somente memórias com o mesmo escopo da solicitação são consideradas.
Recuperar todas as recordações
Se nenhum parâmetro de pesquisa de similaridade for fornecido, RetrieveMemories
vai retornar todas as recordações que têm o escopo fornecido, independente da similaridade com a conversa atual.
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."
}
),
]
"""
Substitua:
- SCOPE: um dicionário que representa o escopo para recuperação. Por exemplo,
{"user_id": "123"}
. Somente as recordações com o mesmo escopo da solicitação são retornadas.