# Troubleshooting - Problemas Comuns ## Erro: "Failed to parse file" ### Possíveis Causas: 1. **Encoding do arquivo** - O arquivo deve estar em **UTF-8 sem BOM** - Evite salvar no Bloco de Notas do Windows (pode adicionar BOM) - Use VSCode, Notepad++, ou outro editor que suporte UTF-8 2. **Caracteres invisíveis** - Copiar/colar pode adicionar caracteres invisíveis - Re-digite o arquivo ou use um editor que mostre caracteres invisíveis 3. **Problemas com comentários** - Comentários devem começar com `#` no início da linha - Evite caracteres especiais em comentários 4. **Aspas incorretas** - Use aspas retas `"` não aspas curvas `"` ou `"` - Verifique se todas as aspas estão fechadas ### Soluções: #### 1. Validar o arquivo primeiro: ```bash okto validate scripts/train.okt ``` Isso mostrará erros detalhados. #### 2. Verificar encoding no VSCode: - Abra o arquivo no VSCode - Veja no canto inferior direito: deve mostrar "UTF-8" - Se mostrar outro encoding, clique e selecione "Save with Encoding" → "UTF-8" #### 3. Criar arquivo limpo: ```bash # Copie o conteúdo do exemplo cp oktoscript/examples/test-t5-basic.okt scripts/train.okt # Ou crie manualmente ``` #### 4. Verificar sintaxe básica: - Todas as strings devem estar entre aspas: `"valor"` - Arrays devem usar colchetes: `["okm", "safetensors"]` - Blocos devem ter chaves: `{ ... }` - Não use vírgulas no final de arrays ou objetos ### Exemplo de arquivo correto: ```okt # okto_version: "1.2" PROJECT "test_t5_basic" DESCRIPTION "Teste basico" ENV { accelerator: "gpu" min_memory: "4GB" install_missing: true } DATASET { train: "dataset/train.jsonl" validation: "dataset/val.jsonl" } MODEL { base: "google/t5-small" } TRAIN { epochs: 3 batch_size: 8 learning_rate: 0.0001 } EXPORT { format: ["okm"] path: "export/" } ``` ### Checklist: - [ ] Arquivo está em UTF-8 - [ ] Todas as aspas estão fechadas - [ ] Não há caracteres especiais invisíveis - [ ] Sintaxe está correta (chaves, colchetes, etc.) - [ ] `okto validate` passa sem erros ### Se ainda não funcionar: 1. Execute com `--debug` (se disponível): ```bash okto validate scripts/train.okt --debug ``` 2. Verifique o conteúdo do arquivo: ```bash okto show scripts/train.okt ``` 3. Compare com um exemplo que funciona: ```bash okto validate oktoscript/examples/test-t5-basic.okt ```