Pular para o conteúdo principal

Introdução

A Memory permite armazenar variáveis que persistem entre conversas, workflows e nós. Ao contrário do Context (que está disponível apenas durante a conversa atual), a Memory mantém os dados disponíveis para interações futuras com o usuário.
Uma única memória por usuário, quatro formas de acessá-la. A Memory é um único armazenamento por usuário que você acessa a partir de superfícies diferentes conforme onde estiver trabalhando:Qualquer escrita a partir de uma superfície fica imediatamente visível nas outras. Não há cópias paralelas para sincronizar.

Principais características

Tipos de dados

TTL (Time To Live): Tempo de vida em segundos de cada variável. Quando o TTL expira, a variável é automaticamente excluída. Por exemplo, 3600 = 1 hora, 86400 = 1 dia.

Quanto tempo a Memory dura no total

A Memory tem dois relógios independentes funcionando ao mesmo tempo: Regra mental: se o usuário escrever algo na Memory pelo menos uma vez a cada 30 dias, sua memória vive indefinidamente. Se passar 30 dias completos sem escrever, toda sua memória é apagada. Cada variável pode expirar antes pelo seu próprio TTL sem afetar o resto.
Somente escrever (set, setJson, setFile) renova o hashTTL. Ler (get, getJson, getFile) não conta.

Salvando variáveis

Usando o nó Variable

Para salvar variáveis sem código, use o nó Variable dentro da seção Logic. Em Variable insira o nome e em Value o que deseja salvar; pode ser texto simples, outra variável ou um valor do contexto.
O nó Variable é ideal para salvar primitivos (string, number, boolean) de forma rápida e visual.
Cada nó Variable permite um máximo de 20 variáveis. Se precisar de mais, use múltiplos nós ou salve os valores a partir de um nó de código.

Usando nós de código

Para maior controle sobre o TTL e tipos de dados complexos, use os métodos $memory em nós de código:

Lendo variáveis

Em qualquer nó

Dentro de qualquer nó você pode acessar a Memory com a sintaxe {{$memory.variableName}}. Por exemplo, se as variáveis na memória forem:
Então:
  • {{$memory.name}} mostra John
  • {{$memory.lastOrder.status}} mostra on the way

Em nós de código

Use os métodos específicos de acordo com o tipo de dado:

Trabalhando com arquivos

Ao salvar um arquivo na Memory, você deve fornecer o conteúdo em base64, o TTL e o tipo MIME:
Ao ler um arquivo com $memory.getFile() você obtém um FileHandle com três métodos para acessar o conteúdo:

Tipos MIME permitidos

Os métodos $memory.setFile(), $memory.getFile().toBase64() e $memory.getFile().toRaw() são assíncronos. Você deve usar await ao chamá-los.

Excluindo variáveis

Você pode excluir variáveis antes que seu TTL expire:

Segurança

Não armazene dados sensíveis na Memory:
  • Senhas ou números de cartão de crédito
  • Tokens de autenticação de longa duração
  • Informações de identificação pessoal (PII) altamente sensíveis
Para persistência de longo prazo, use o Datum.