Um analisador interativo de código que utiliza modelos LLM locais via Ollama e LangChain, permitindo explicar o funcionamento de qualquer código com suporte a diferentes modelos — tudo diretamente do terminal.
- 📜 Leitura de qualquer script
- 🤖 Explicação automatizada com modelos como
codellama
,deepseek-r1
,llama3
, entre outros - 🎛️ Interface interativa para seleção de modelo via terminal (setas ↑ ↓)
- ⚡ Streaming da resposta em tempo real
- 📦 Estrutura modular e extensível
code_analyzer/
├── core/
│ ├── __init__.py
│ ├── code_explainer.py # Monta o pipeline LLM
│ ├── file_manager.py # Carrega o código do arquivo
│ ├── llm_service.py # Wrapper para o Ollama LLM
│ └── prompt_manager.py # Prompt template configurável
├── enums/
│ └── models.py # Enum com os modelos suportados
├── examples/
│ ├── sum_example.py # Exemplo de código Python
│ └── app.py # Script principal da aplicação
├── README.md
└── requirements.txt
git clone https://github.com/lsprdev/code_analyzer.git
cd code_analyzer
conda create -n code-analyzer python=3.10 -y
conda activate code-analyzer
pip install -r requirements.txt
Baixe o Ollama e instale um modelo (ex: codellama, deepseek-r1):
ollama pull codellama
...
Execute o script passando o caminho do arquivo que deseja analisar:
python main.py /examples/sum_example.py
Use as setas ↑ ↓ para escolher o modelo que irá interpretar o código e pressione Enter para iniciar a análise. A resposta será exibida em tempo real no terminal.
Os modelos disponíveis são definidos na enum OllamaModel:
Nome | Valor |
---|---|
CODELLAMA | codellama:latest |
LLAMA_3 | llama3.2:1b |
GEMMA_3 | gemma3:latest |
DEEPSEEK_R1 | deepseek-r1:8b |
Você pode estender essa enum para adicionar mais modelos compatíveis com Ollama.
🧠 Selecione o modelo desejado:
❯ codellama:latest
deepseek-r1:8b
llama3.2:1b
gemma3:latest
✅ Modelo selecionado: deepseek-r1:8b
Explicação do código:
Esta função "somar" recebe dois argumentos...