FASTAPI · SECURE CODE RUNNER & AI DEBUG

PyFlow

Serviço de execução de código Python em subprocessos protegidos com análise heurística inteligente e chat contextual para resolução de bugs.

Framework
FastAPI / Uvicorn
Isolamento
Subprocessos com Timeouts
Diagnóstico
Multi-Provider AI Analysis
Protocolo
RESTful OpenAPI & WebSocket

TL;DR Executivo — Resumo da Engenharia

O PyFlow é uma API local desenvolvida por Alex Santos para viabilizar a execução segura de trechos de código Python solicitados por agentes ou interfaces gráficas. Em vez de rodar o código no processo principal com chamadas perigosas a `eval()` ou `exec()`, o PyFlow gera subprocessos descartáveis com limites rígidos de tempo e captura de stdout/stderr. Se ocorrer uma exceção não tratada, seu motor analisa a árvore sintática do traceback e invoca múltiplos provedores de IA para oferecer explicações claras e patches de correção.

DIAGRAMA & WORKFLOW

Arquitetura de Fluxo do Sistema

Visão macro de como o projeto processa requisições, gerencia dados e entrega valor técnico com máxima eficiência.

Fluxo Lógico & Pipeline de Execução
+-----------------------+      +---------------------------+      +------------------------+
| Cliente (IDE / WebUI /| HTTP |          PyFlow           | fork |   Subprocesso Python   |
| Agente de Automação)  | ===> | (FastAPI Async Controller)| ===> |  (Isolado / Timeout)   |
+-----------------------+      +---------------------------+      +------------------------+
                                             |                                 |
                                             | <======== Captura Stdout/Stderr +
                                             |           (ou Traceback Exception)
                                             v
                               +---------------------------+
                               | Motor de Diagnóstico AI   |
                               | (Análise AST + Sugestões) |
                               +---------------------------+
ENGENHARIA DETALHADA

Os Pilares Técnicos Fundamentais

Decisões de design, algoritmos e técnicas aplicadas para garantir confiabilidade, segurança e excelência operacional.

01

Isolamento em Subprocessos com Timeouts Rígidos

Execução segura sem contaminação do ambiente mestre da API

Cada requisição de código é empacotada e despachada para um interpretador Python em processo separado via `asyncio.create_subprocess_exec`. É aplicado um timeout estrito (ex: 5 segundos por padrão), impedindo que laços infinitos como `while True: pass` ou chamadas bloqueantes congelem o servidor principal.

02

Captura Assíncrona de Stdout e Stderr com Streaming

Buffers circulares que previnem sobrecarga de memória por prints massivos

O PyFlow lê os streams de saída de maneira assíncrona, acumulando os logs em um buffer delimitado. Se o script testado tentar emitir milhões de linhas em loop, o buffer trunca graciosamente a saída, alertando o usuário sobre o limite de caracteres alcançado.

03

Diagnóstico Heurístico e Integração com Modelos de IA

Transformação de tracebacks enigmáticos em orientações práticas

Ao interceptar erros como `KeyError`, `IndexError` ou `AttributeError`, o PyFlow contextualiza a linha exata do código onde a falha ocorreu e consulta o modelo de IA configurado para sugerir a correção mínima necessária.

04

Especificação OpenAPI e Prontidão para Ferramentas MCP

Documentação automática Swagger UI para integração em pipelines de agentes

Por utilizar FastAPI, o PyFlow disponibiliza automaticamente esquemas OpenAPI interativos (`/docs`), facilitando seu consumo por bibliotecas client em Python, JavaScript ou como MCP tool corporativa.

IMPLEMENTAÇÃO EM CÓDIGO

Código em Prática

Exemplo concreto de uso, configuração e integração técnica.

Exemplo de Requisição REST — Execução com Tratamento de Erro PYTHON
import httpx

payload = {
    "code": "valores = [10, 20, 30]\nprint(valores[5])",
    "timeout": 3.0,
    "ai_diagnosis": True
}

response = httpx.post("http://localhost:8000/execute", json=payload)
resultado = response.json()

# Retorno estruturado:
# {
#   "status": "error",
#   "exit_code": 1,
#   "stderr": "IndexError: list index out of range",
#   "diagnosis": "O código tentou acessar o índice 5 de uma lista que possui apenas 3 elementos (índices 0 a 2)."
# }
DÚVIDAS & DECISÕES

Perguntas Frequentes & Respostas Técnicas

Esclarecimentos detalhados sobre funcionamento, licenças, compatibilidade e privacidade.

O PyFlow substitui um container Docker de produção?

Para ambientes multi-tenant de alto risco na nuvem, recomenda-se containers gVisor/Docker. O PyFlow é otimizado para desenvolvedores locais e agentes em máquinas de desenvolvimento.

Quais provedores de IA são suportados para o diagnóstico?

Suporta qualquer endpoint compatível com OpenAI, além de Google Gemini e modelos locais via Ollama.

O PyFlow suporta instalação de pacotes pip durante a execução?

Por motivos de segurança e determinismo, os scripts utilizam os pacotes instalados no ambiente virtual do interpretador Python apontado pelo servidor.

A API possui suporte a WebSockets para acompanhar saídas em tempo real?

Sim, o endpoint /ws/execute permite transmitir linhas de stdout e stderr em tempo real para dashboards e terminais web.