Como Rodar Localmente (Setup para Novos Colaboradores)¶
Pré-requisitos¶
- Python 3.13 instalado
uvinstalado (gerenciador de pacotes)- Git instalado
- Docker Desktop instalado (para uso do Supabase CLI localmente)
- Conta no Google AI Studio para obter a
GEMINI_API_KEY
Passo a Passo¶
- Fork este repositório.
- Clone o seu fork:
bash git clone https://github.com/SEU-USUARIO/vox-ai.git cd vox-ai -
Instale o uv (Gerenciador de pacote): ```bash # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Mac/Linux¶
curl -LsSf https://astral.sh/uv/install.sh | sh
4. **Instale as dependências:**bash uv sync ```Nota: Para adicionar novas bibliotecas, use
uv add [NOME_DA_LIB]. O arquivorequirements.txté gerado automaticamente para deploy. Para atualizá-lo:uv export --no-hashes > requirements.txt5. Configure as Variáveis de Ambiente: Crie um arquivo.streamlit/secrets.tomlna raiz do projeto. O arquivo deve seguir este formato:```toml GEMINI_API_KEY = "SUA_CHAVE_AQUI"
[supabase] url = "SUA_URL_SUPABASE" key = "SUA_CHAVE_ANON_SUPABASE" ```
🔒 Credenciais do Supabase (Interno): O Vox utiliza o Supabase para RAG e Logs. Essas credenciais não são públicas.
- Sem credenciais: O projeto rodará sem conexão com a base de dados do projeto usando apenas a resposta da IA. Você verá avisos de conexão no terminal, o que é esperado.
- Precisa de acesso ao banco? Se a feature que você deseja implementar depende estritamente do acesso ao banco de dados, envie um e-mail para a equipe. Podemos fornecer credenciais temporárias ou um ambiente de sandbox.
- Instale os Git Hooks (Segurança):
Para garantir que nenhum segredo seja commitado, que o banco de dados esteja consistente e que as mensagens de commit estejam no padrão, instale os hooks de pré-commit:
bash python scripts/install_hooks.py
-
Execute o projeto:
bash uv run streamlit run vox_ai.py -
Acesse em:
http://localhost:8501
Adicionar Novas Dependências¶
# Adicionar biblioteca:
uv add nome-da-biblioteca
# Atualizar requirements.txt (usado no deploy):
uv export --no-hashes > requirements.txt
Rodando os Testes¶
# Todos os testes unitários:
pytest
# Testes de integração (requerem credenciais reais):
pytest tests/test_gemini_integration.py
pytest tests/test_supabase_connection.py