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:
Get memory: obtenha o conteúdo completo de uma única memória.
List memories: crie listas de memórias
Recuperar memórias: recupere memórias através da recuperação de memória baseada no âmbito. Recuperar memórias através da pesquisa por semelhança 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
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.