Analisador de código que utiliza múltiplos provedores de IA para fornecer sugestões de melhoria
Project description
Refactool Analisador de Código
Este projeto é uma ferramenta de análise de código que utiliza múltiplos provedores de IA para fornecer sugestões de melhoria em projetos. Por padrão, utiliza o Google Gemini, mas suporta integração com outros provedores.
Funcionalidades
- Análise estática de código
- Sugestões de melhoria em português do Brasil
- Suporte a múltiplos provedores de IA:
- Google Gemini (padrão)
- OpenAI GPT
- DeepSeek
- Ollama (para execução local)
- Análise de repositórios Git
- Relatórios detalhados em formato JSON
- Configuração flexível de provedores de IA
Requisitos
- Python 3.8+
- Git instalado
- Pelo menos uma das seguintes chaves de API:
- Google Gemini API Key
- OpenAI API Key
- DeepSeek API Key
- Ollama instalado localmente (opcional)
Instalação
- Clone o repositório:
git clone https://github.com/seu-usuario/refactool-beta.git
cd refactool-beta
- Instale as dependências:
pip install -r requirements.txt
- Configure o arquivo
.env:
# Configuração do Gemini (Padrão)
GEMINI_API_KEY=sua-chave-api-aqui
# Configuração do Git (Windows)
GIT_PYTHON_GIT_EXECUTABLE=C:\Program Files\Git\bin\git.exe
# Configurações Opcionais de Outros Provedores
OPENAI_API_KEY=sua-chave-openai-aqui
DEEPSEEK_API_KEY=sua-chave-deepseek-aqui
OLLAMA_URL=http://localhost:11434/api/generate
OLLAMA_MODEL=llama2:13b
Uso
Análise Básica
Para analisar um repositório usando o provedor padrão (Gemini):
python analyze_repo.py https://github.com/usuario/repositorio
Análise com Provedor Específico
Para especificar qual provedor de IA usar:
# Usando OpenAI
python analyze_repo.py https://github.com/usuario/repositorio --provider openai
# Usando DeepSeek
python analyze_repo.py https://github.com/usuario/repositorio --provider deepseek
# Usando Ollama local
python analyze_repo.py https://github.com/usuario/repositorio --provider ollama
Opções Adicionais
# Salvar relatório em arquivo específico
python analyze_repo.py https://github.com/usuario/repositorio -o relatorio.json
# Usar arquivo de configuração personalizado
python analyze_repo.py https://github.com/usuario/repositorio -c config.json
# Análise com múltiplos provedores
python analyze_repo.py https://github.com/usuario/repositorio --providers gemini,openai,deepseek
# Análise focada em diretórios específicos
python analyze_repo.py https://github.com/usuario/repositorio --dirs src/,tests/
Configuração Personalizada
Você pode criar um arquivo config.json para personalizar a análise:
{
"providers": {
"gemini": {
"enabled": true,
"model": "gemini-2.0-flash",
"temperature": 0.7
},
"openai": {
"enabled": true,
"model": "gpt-4",
"temperature": 0.5
},
"deepseek": {
"enabled": true,
"model": "deepseek-coder-33b-instruct"
},
"ollama": {
"enabled": true,
"model": "llama2:13b",
"url": "http://localhost:11434/api/generate"
}
},
"analysis": {
"max_method_lines": 30,
"max_complexity": 10,
"ignore_patterns": ["*.min.js", "vendor/*"]
}
}
Estrutura do Projeto
/
├── microservices/
│ └── source-provider/
│ └── src/
│ ├── analyzers/ # Módulos de análise
│ │ ├── ai_providers.py # Provedores de IA
│ │ └── ...
│ ├── analyze_repo.py # Script principal
│ └── test_gemini.py # Testes do Gemini
├── requirements.txt # Dependências
└── README.md # Este arquivo
Publicação
Este pacote está disponível no PyPI e pode ser instalado via pip:
pip install refactool
Novas versões são publicadas automaticamente através do pipeline de CI/CD quando uma nova tag é criada no repositório.
Nota para desenvolvedores internos: Instruções detalhadas sobre o processo de publicação estão disponíveis na documentação interna do projeto.
Contribuindo
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Crie um Pull Request
Licença
Este projeto está licenciado sob a GNU Lesser General Public License v3.0 (LGPL-3.0).
Para mais detalhes, consulte o arquivo LICENSE ou visite GNU Lesser General Public License v3.0.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file refactool-0.1.0.tar.gz.
File metadata
- Download URL: refactool-0.1.0.tar.gz
- Upload date:
- Size: 47.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0580dcf17a257c1b038f8aa0cd7447c14a8d71b4c570f26a1defefb27bc4897e
|
|
| MD5 |
4f2815ea9e0fd8c428a455b7959c0bdb
|
|
| BLAKE2b-256 |
cbb5aeaceb3737536eb8ec1abb4821d0fe026b7eba7e5bd72136d5e4eeb99e0d
|
File details
Details for the file refactool-0.1.0-py3-none-any.whl.
File metadata
- Download URL: refactool-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6efa77830ba3105fa6f2653d2ff2379a8cb34255bae934a7e1f032763f0ae2a3
|
|
| MD5 |
47605e77f983f8f96b278a4115bb87ef
|
|
| BLAKE2b-256 |
15a25497d284d023f3e1b3deba6f4e732691af6393ca871db20a71b4fd10683d
|