Spaces:
Sleeping
Sleeping
| 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 | |
| ``` |