Uygulama Detayları

Platformun teknik altyapısı ve API uç noktaları hakkında bilgiler.

API Uç Noktaları

Platform dış sistemlerle entegrasyon için RESTful API uç noktaları sunar:

  • GET /models
  • GET /models/{id}
  • GET /models/{id}/score
  • POST /admin/scan

Statik Analiz Kuralları

Statik analiz motorumuz model dosyalarında belirli kalıpları arar:

  • Tehlikeli fonksiyonların (eval, exec) kullanımı.
  • Güvensiz serileştirme (pickle kullanımı).
  • Dışa dönük ağ çağrıları yapan kodlar.
  • Şüpheli dosya sistemi işlemleri.

Veritabanı Şeması

Sistem model ve skor verilerini depolamak için aşağıdaki temel şemayı kullanır:

CREATE TABLE models (
   id TEXT PRIMARY KEY,
   name TEXT,
   owner TEXT,
   hf_url TEXT,
   license TEXT,
   last_updated TIMESTAMP
);

CREATE TABLE scores (
   model_id TEXT REFERENCES models(id),
   computed_at TIMESTAMP DEFAULT now(),
   overall_score NUMERIC(5,2),
   PRIMARY KEY (model_id, computed_at)
);

Skorlama Fonksiyonu (Örnek)

Genel skor, farklı metriklerin ağırlıklı ortalaması alınarak hesaplanır:

def compute_overall_score(metrics):
    weights = {
      "provenance": 20, "usage": 20, "maintenance": 15, 
      "evaluation": 20, "safety": 15, "code_quality": 10
    }
    
    weighted_sum = 0
    total_weight = sum(weights.values())

    for k, w in weights.items():
        v = metrics.get(k, 0)
        weighted_sum += v * w

    return round(weighted_sum / total_weight, 2)

Dinamik Testler (Genişletilmiş)

Dinamik analiz, modelin davranışını test etmek için çeşitli girdiler kullanır.

İlgili Sayfalar