Skip to main content

Configuração do LLM

Modelo padrão

O raro-reviewer usa o NVIDIA NIM com o modelo qwen/qwen2.5-coder-32b-instruct por padrão.

Para usar outro modelo, defina a variável NVIDIA_MODEL:

-e NVIDIA_MODEL="meta/llama-3.1-70b-instruct"

Endpoint

O SDK OpenAI é usado com o endpoint da NVIDIA NIM:

https://integrate.api.nvidia.com/v1

Formato de resposta

O LLM é instruído a responder apenas com JSON válido:

{
"findings": [
{
"line": 42,
"severity": "high",
"category": "security",
"message": "SQL injection vulnerability: user input directly in query"
}
]
}

Se não houver issues relevantes:

{"findings": []}

Prompt de sistema

O prompt instrui o LLM a:

  1. Analisar apenas linhas adicionadas (diff lines com +)
  2. Focar em 4 categorias: bug, security, performance, clean_code
  3. Responder com JSON estrutulado
  4. Não inventar problemas para preencher a resposta

Validação de resposta

A resposta do LLM é validada em duas etapas:

  1. Schema Pydantic: Verifica se o JSON segue o formato esperado
  2. Validação de linha: Verifica se cada line number existe entre as linhas adicionadas no diff

Se qualquer finding referenciar uma linha que não está no diff, todo o arquivo é descartado (LlmParseError).

Limites

LimiteValorConfigurável
Linhas por arquivo800Sim (max_file_lines)
Timeout da chamadaPadrão OpenAI SDKNão
RetriesNenhum (v1)Não

Custos estimados

O NVIDIA NIM oferece créditos gratuitos para desenvolvimento. Para produção, consulte a tabela de preços da NVIDIA.

Fator principal de custo: número de arquivos alterados por MR × linhas adicionadas por arquivo.