Buscar recordações

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:

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.