Skip to content

Arquitetura

O ollabench corre cada caso contra cada modelo, pontua os outputs com checks declarativos, e resume num relatório ordenado.

flowchart LR
  SU["suite.json<br/>(cases + checks)"] --> RUN["runSuite"]
  M["--models a,b"] --> RUN
  RUN -->|por modelo × caso| CLI["OllamaModelClient.generate"]
  CLI --> OUT["output + latência"]
  OUT --> SC["scoreCheck<br/>(contains · regex · jsonValid · maxLatencyMs · …)"]
  SC --> REP["renderReport<br/>(tabela ordenada + matriz por caso)"]

Mapa de módulos

Módulo Responsabilidade
suite.ts Carregar/validar uma suite JSON
scorers.ts Tipos Check e scoreCheck (puro)
model.ts Interface ModelClient + OllamaModelClient
run.ts Correr casos × modelos, agregar resumos por modelo
report.ts Renderizar a comparação em markdown

Princípios de design

  • Scoring determinístico — os checks são funções puras, por isso os resultados são reprodutíveis e testáveis.
  • Erros não abortam — um modelo a falhar um caso é capturado, não lançado; a execução conclui.
  • Offline — fala apenas com o teu servidor Ollama local; sem chaves.
  • Extensível — novos tipos de check e backends de modelo encaixam atrás das mesmas interfaces.