Como Criar um Analisador de Código com DeepSeek-Coder, Ollama e LangChain
Juliano Souza
Director of Information Technology | Technology Mentor for Startups in the EMEA Region.
Passo 1: Instale o Ollama e Baixe o ModeloPrimeiro, baixe o Ollama (ollama.ai) e execute no terminal:
ollama pull deepseek-coder:6.7b
Passo 2: Configure o Ambiente Python
Crie um ambiente virtual e instale as dependências:
python3 -m venv venv
source venv/bin/activate
pip install langchain langchain-community streamlit
Passo 3: Crie o Backend com LangChain
Crie um arquivo analisador.py:
from langchain_community.chat_models import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
def analisar_codigo(codigo):
llm = ChatOllama(model="deepseek-coder:6.7b", temperature=0.3)
prompt = ChatPromptTemplate.from_messages([
("system", "Você é um especialista em seguran?a de código. Analise este código Python e explique vulnerabilidades:"),
("user", "{codigo}")
])
chain = prompt | llm
resposta = chain.invoke({"codigo": codigo})
return resposta.content
Passo 4: Crie o Frontend com Streamlit
Crie um arquivo app.py:
import streamlit as st
from analisador import analisar_codigo
st.title("?? Analisador de Seguran?a em Código")
codigo = st.text_area("Cole seu código Python aqui:", height=200)
if st.button("Analisar"):
with st.spinner("Procurando vulnerabilidades..."):
analise = analisar_codigo(codigo)
st.markdown(f"**Resultado:**\n{analise}")
Passo 5: Execute a Aplica??o
No terminal, inicie o Ollama e o Streamlit:
ollama serve # Em outro terminal
streamlit run app.py
Caso de Uso: Análise de SQL Injection
Entrada (Código Vulnerável):
query = "SELECT * FROM users WHERE id = " + user_input
cursor.execute(query)
Saída do Modelo:
?? Vulnerabilidade: SQL Injection O código concatena diretamente a entrada do usuário à consulta SQL. Solu??o: Use consultas parametrizadas: cursor.execute("SELECT * FROM users WHERE id = %s", (user_input,))
Que outras vulnerabilidades vocês testariam?"
?? Pronto para transformar LLMs em ferramentas práticas? Experimente e compartilhe seus resultados! ??
Co-Founder of Altrosyn and DIrector at CDTECH | Inventor | Manufacturer
4 周This project beautifully illustrates the potential of open-source tools for building robust, privacy-focused applications. By leveraging Ollama's offline capabilities and DeepSeek-Coder's specialized focus on code analysis, you've created a compelling solution for real-time vulnerability detection. On a deeper level, this means democratizing access to advanced AI security features, empowering developers of all sizes. Given your emphasis on customization, how have you fine-tuned DeepSeek-Coder's training data to specifically prioritize the identification of SQL Injection vulnerabilities within Python codebases?