Como Criar um Analisador de Código com DeepSeek-Coder, Ollama e LangChain

Como Criar um Analisador de Código com DeepSeek-Coder, Ollama e LangChain

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! ??

Godwin Josh

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?

回复

要查看或添加评论,请登录

Juliano Souza的更多文章