--- title: Structured Output Extractor emoji: 🔩 colorFrom: green colorTo: gray sdk: streamlit sdk_version: "1.29.0" python_version: "3.10" app_file: app.py pinned: false --- # 🔩 Structured Output Extractor Extrator universal de dados estruturados usando **OpenAI Function Calling** com schema JSON dinâmico e retry automático com error feedback. ## 🔧 Como funciona ``` Texto qualquer (contrato, notícia, CV, invoice...) ↓ Schema selecionado (preset ou customizado pelo usuário) ↓ Tool definition criada dinamicamente (OpenAI function) ↓ gpt-4o-mini chamado com tool_choice="required" ↓ JSON parseado → validado ↓ Retry automático com feedback de erro ao LLM (max 2x) ↓ Output: campos visuais + JSON bruto + download ``` ## 📋 Schemas Disponíveis | Schema | Campos principais | |---|---| | **Contrato Legal** | Partes, objeto, valor, prazo, obrigações | | **Notícia / Artigo** | Entidades, fatos, sentimento, dados numéricos | | **Currículo / CV** | Experiências, formação, habilidades, idiomas | | **Invoice / NF** | Emitente, destinatário, itens, totais | | **Artigo Científico** | Autores, metodologia, métricas, contribuições | | **Custom** | Qualquer schema JSON definido pelo usuário | ## ⚙️ Secrets - `OPENAI_API_KEY` ## 🚀 Local ```bash pip install openai altair streamlit export OPENAI_API_KEY=sk-... streamlit run app.py ```