---
title: Execução de Código
slug: execucao-de-codigo
createdAt: 2024-09-05T14:01:22.546Z
---

### Introdução

O nó de código suporta a execução de código Python/NodeJS para realizar transformações de dados dentro de um workflow. Ele pode simplificar seu workflow e é adequado para cenários como operações aritméticas, transformações de JSON, processamento de texto, e mais.

Este nó melhora significativamente a flexibilidade para desenvolvedores, permitindo que incorporem scripts personalizados em Python ou JavaScript no workflow e manipulem variáveis de maneiras que os nós predefinidos não podem alcançar. Por meio das opções de configuração, você pode especificar as variáveis de entrada e saída necessárias e escrever o código correspondente para execução.

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

### Configuração

Se você precisar usar variáveis de outros nós no nó de código, deve definir os nomes das variáveis nas variáveis de entrada e referenciar essas variáveis. Você pode consultar as Referências de Variáveis.

### Cenários de Uso

Usando o nó de código, você pode realizar as seguintes operações comuns:

### Processamento de Dados Estruturados

Em workflows, muitas vezes é necessário lidar com processamento de dados não estruturados, como análise, extração e transformação de strings JSON. Um exemplo típico é o processamento de dados de um nó HTTP. Em estruturas de retorno comuns de API, os dados podem estar aninhados em múltiplas camadas de objetos JSON, e você precisa extrair certos campos. O nó de código pode ajudá-lo a realizar essas operações. Aqui está um exemplo simples que extrai o campo *data.name* de uma string JSON retornada por um nó HTTP:

```python
def main(http_response: str) -> str:
    import json
    data = json.loads(http_response)
    return {
        # Lembre-se de declarar 'result' nas variáveis de saída
        'result': data['data']['name'] 
    }
```

### Cálculos Matemáticos

Quando você precisa realizar cálculos matemáticos complexos em um workflow, também pode usar o nó de código. Por exemplo, calcular uma fórmula matemática complexa ou realizar alguma análise estatística sobre os dados. Aqui está um exemplo simples que calcula a variância de um array:

```python
def main(x: list) -> float:
    return {
        # Lembre-se de declarar 'result' nas variáveis de saída
        'result': sum([(i - sum(x) / len(x)) ** 2 for i in x]) / len(x)
    }
```

### Concatenação de Dados

Às vezes, você pode precisar concatenar múltiplas fontes de dados, como várias recuperações de conhecimento, pesquisas de dados, chamadas de API, etc. O nó de código pode ajudá-lo a integrar essas fontes de dados. Aqui está um exemplo simples que mescla dados de duas bases de conhecimento:

```python
def main(knowledge1: list, knowledge2: list) -> list:
    return {
        # Lembre-se de declarar 'result' nas variáveis de saída
        'result': knowledge1 + knowledge2
    }
```

### Implementação Local

Se você é um usuário de implementação local, precisa iniciar um serviço sandbox para garantir que o código malicioso não seja executado. Este serviço requer o uso de Docker. Você pode encontrar informações específicas sobre o serviço sandbox aqui. Você também pode iniciar o serviço diretamente via *docker-compose*:

```bash
docker-compose -f docker-compose.middleware.yaml up -d
```

### Limitações

Tanto os ambientes de execução Python quanto JavaScript são estritamente isolados (em sandbox) para garantir a segurança. Isso significa que os desenvolvedores não podem usar funções que consumam grandes quantidades de recursos do sistema ou possam representar riscos à segurança, como acesso direto ao sistema de arquivos, realizar requisições de rede ou executar comandos em nível de sistema operacional. Essas limitações garantem a execução segura do código enquanto evitam o consumo excessivo de recursos do sistema.
