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_analyzerconda create -n code-analyzer python=3.10 -y
conda activate code-analyzerpip install -r requirements.txtBaixe 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.pyUse 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...