Skip to main content

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

  1. Clone o repositório:
git clone https://github.com/seu-usuario/refactool-beta.git
cd refactool-beta
  1. Instale as dependências:
pip install -r requirements.txt
  1. 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

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -am 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. 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

refactool-0.1.0.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

refactool-0.1.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

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

Hashes for refactool-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0580dcf17a257c1b038f8aa0cd7447c14a8d71b4c570f26a1defefb27bc4897e
MD5 4f2815ea9e0fd8c428a455b7959c0bdb
BLAKE2b-256 cbb5aeaceb3737536eb8ec1abb4821d0fe026b7eba7e5bd72136d5e4eeb99e0d

See more details on using hashes here.

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

Hashes for refactool-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6efa77830ba3105fa6f2653d2ff2379a8cb34255bae934a7e1f032763f0ae2a3
MD5 47605e77f983f8f96b278a4115bb87ef
BLAKE2b-256 15a25497d284d023f3e1b3deba6f4e732691af6393ca871db20a71b4fd10683d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page