Execução de Código
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.

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:
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:
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:
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:
docker-compose -f docker-compose.middleware.yaml up -dLimitaçõ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.