Obtenha memórias

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:

  1. Na Google Cloud consola, aceda à página Vertex AI Agent Engine.

    Aceda ao motor do agente

    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.

  2. Clique no nome da instância do Agent Engine.

  3. 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:

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.