Skip to content

lsprdev/code_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Code Analyzer

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.


✨ Funcionalidades

  • 📜 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

📁 Estrutura

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

🚀 Instalação

1. Clone o projeto

git clone https://github.com/lsprdev/code_analyzer.git
cd code_analyzer

2. Crie e ative o ambiente (opcional mas recomendado)

conda create -n code-analyzer python=3.10 -y
conda activate code-analyzer

3. Instale as dependências

pip install -r requirements.txt

4. Instale e inicie o Ollama

Baixe o Ollama e instale um modelo (ex: codellama, deepseek-r1):

ollama pull codellama
...

🛠️ Como usar

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.

🧠 Modelos suportados

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.

📄 Exemplos de saída

🧠 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...

About

Um analisador interativo de código que utiliza modelos LLM locais via Ollama e LangChain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages