---
title: Atribuidor de Variáveis
slug: atribuidor-de-variaveis
createdAt: 2024-09-05T14:18:44.644Z
---

### Definição

O nó de atribuição de variáveis é usado para atribuir valores a variáveis editáveis. As variáveis editáveis atualmente suportadas incluem:

**Uso**: Por meio do nó de atribuição de variáveis, você pode atribuir variáveis de workflow a variáveis de conversação para armazenamento temporário, que podem ser continuamente referenciadas em conversas subsequentes.

![](https://api.archbee.com/api/optimize/NB-ulyH02IT7Ep_VosDsd/uDj8Y8twUj1ySxoLU3E1y_image.png)

### Exemplos de Cenários de Uso

Usando o nó de atribuição de variáveis, você pode escrever o contexto do processo de conversação, arquivos enviados para a caixa de diálogo (em breve) e informações de preferência do usuário em variáveis de conversação. Essas variáveis armazenadas podem ser referenciadas em conversas subsequentes para direcionar diferentes fluxos de processamento ou formular respostas.

**Cenário 1**
Você pode escrever o contexto durante a conversa, o arquivo enviado para a caixa de chat (em breve), as informações de preferência inseridas pelo usuário, etc., na variável de conversação usando o nó de Atribuição de Variáveis. Essas informações armazenadas podem ser referenciadas em conversas futuras para guiar diferentes fluxos de processamento ou fornecer respostas.

**Exemplo**: Após o início da conversa, o LLM determinará automaticamente se a entrada do usuário contém fatos, preferências ou histórico de conversas que precisam ser lembrados. Se contiver, o LLM primeiro extrairá e armazenará essas informações, usando-as como contexto para responder. Se não houver novas informações para lembrar, o LLM usará diretamente as memórias relevantes anteriores para responder às perguntas.

![](https://api.archbee.com/api/optimize/NB-ulyH02IT7Ep_VosDsd/HTurT4oj34gu9qUzCqPov_image.png)

**Processo de Configuração**:

1. **Definir Variáveis de Conversação**:
   Primeiro, configure uma array de Variáveis de Conversação chamada *memories*, do tipo array\[object], para armazenar informações do usuário, preferências e histórico de conversas.
2. **Determinar e Extrair Memórias**:
   Adicione um nó de Ramificação Condicional, usando o LLM para determinar se a entrada do usuário contém novas informações que precisam ser lembradas.
3. **Atribuição/Escrita de Variáveis**:
   No ramo superior, use o nó de atribuição de variáveis para adicionar as novas informações extraídas à array *memories*.
4. **Leitura e Uso de Variáveis**:
   Nos nós LLM subsequentes, converta o conteúdo da array *memories* em uma string e insira-a no prompt do LLM como contexto.

**Converter string em objeto**

```python
import json

def main(arg1: str) -> object:
    try:
        # Analisar a string JSON de entrada
        input_data = json.loads(arg1)
        
        # Extrair o objeto de memória
        memory = input_data.get("memory", {})
        
        # Construir o objeto de retorno
        result = {
            "facts": memory.get("facts", []),
            "preferences": memory.get("preferences", []),
            "memories": memory.get("memories", [])
        }
        
        return {
            "mem": result
        }
    except json.JSONDecodeError:
        return {
            "result": "Erro: String JSON inválida"
        }
    except Exception as e:
        return {
            "result": f"Erro: {str(e)}"
        }
```

**Converter objeto em string**

```python
import json

def main(arg1: list) -> str:
    try:
        # Assume-se que arg1[0] seja o dicionário que precisamos processar
        context = arg1[0] if arg1 else {}
        
        # Construir o objeto de memória
        memory = {"memory": context}
        
        # Converter o objeto para uma string JSON
        json_str = json.dumps(memory, ensure_ascii=False, indent=2)
        
        # Envolver a string JSON em tags <answer>
        result = f"<answer>{json_str}</answer>"
        
        return {
            "result": result
        }
    except Exception as e:
        return {
            "result": f"<answer>Erro: {str(e)}</answer>"
        }
```

**Cenário 2**
Registro das preferências iniciais do usuário: Lembrar a preferência de idioma inserida pelo usuário durante a conversa e continuar usando esse idioma para respostas nas conversas subsequentes.

**Exemplo**: Antes da conversa, o usuário especifica "Inglês" na caixa de entrada de idioma. Esse idioma será gravado na variável de conversação, e o LLM usará essa informação ao responder, continuando a usar "Inglês" em conversas futuras.

![](https://api.archbee.com/api/optimize/NB-ulyH02IT7Ep_VosDsd/7wkgS_cAY-ize8qTXDCmM_image.png)

**Guia de Configuração**:

1. **Definir a variável de conversação**:
   Primeiro, defina uma variável de conversação chamada *language*. Adicione um nó de verificação de condição no início do fluxo da conversa para verificar se a variável *language* está vazia.
2. **Escrita/Atribuição de Variável**:
   No início da primeira rodada de conversação, se a variável *language* estiver vazia, use um nó LLM para extrair o idioma inserido pelo usuário e, em seguida, use o nó de atribuição de variáveis para gravar esse idioma na variável de conversação *language*.
3. **Leitura de Variáveis**:
   Nas rodadas subsequentes de conversação, a variável *language* armazenará a preferência de idioma do usuário, e o nó LLM referenciará essa variável para responder usando o tipo de idioma preferido pelo usuário.

**Cenário 3**
Assistência com a verificação de listas de tarefas: Registrar entradas do usuário dentro da conversa usando variáveis de conversação, atualizar o conteúdo da lista de verificação e verificar itens pendentes nas conversas subsequentes.

**Exemplo**: Após iniciar a conversa, o LLM solicitará que o usuário insira itens relacionados à lista de verificação na caixa de chat. Assim que o usuário mencionar conteúdo da lista de verificação, ele será atualizado e armazenado na variável de conversação. O LLM lembrará o usuário de continuar complementando os itens faltantes após cada rodada de diálogo.

![](https://api.archbee.com/api/optimize/NB-ulyH02IT7Ep_VosDsd/I-eaO_ZSzVoyDdo-DUf3A_image.png)

**Processo de Configuração**:

1. **Definir variável de conversação**:
   Primeiro, defina uma variável de conversação chamada *ai\_checklist* e faça referência a essa variável no LLM como contexto para verificação.
2. **Escrita/Atribuição de Variáveis**:
   Durante cada rodada de diálogo, verifique o valor em *ai\_checklist* dentro do nó LLM e compare-o com a entrada do usuário. Se o usuário fornecer novas informações, atualize a lista de verificação e escreva o conteúdo atualizado em *ai\_checklist* usando o nó de atribuição de variáveis.
3. **Leitura de Variáveis**:
   Leia o valor em *ai\_checklist* e compare-o com a entrada do usuário em cada rodada de diálogo até que todos os itens da lista sejam concluídos.

### Usando o Nó de Atribuição de Variáveis

Clique no sinal de "+" no lado direito do nó, selecione o nó "atribuidor de variáveis" e preencha "Variável Atribuída" e "Definir Variável".

![](https://api.archbee.com/api/optimize/NB-ulyH02IT7Ep_VosDsd/wAFgMkJFTly4Dk2DHT5zz_image.png)

**Configuração das Variáveis**:

- **Variável Atribuída**: Selecione a variável que será atribuída, ou seja, especifique a variável de conversação de destino que precisa ser atribuída.
- **Definir Variável**: Selecione a variável a ser atribuída, ou seja, especifique a variável de origem que precisa ser convertida.

**Modo de Escrita**:

- **Sobrescrever**: Sobrescreve o conteúdo da variável de origem na variável de conversação de destino.
- **Adicionar**: Quando a variável especificada é do tipo Array.
- **Limpar**: Limpa o conteúdo da variável de conversação de destino.

