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.
Antes de começar
Para concluir as etapas demonstradas nesta página, primeiro siga as instruções em Configurar o Banco de memória.
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, é possível usar 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.