Data Science Tools Python ★ 717

MigoXLab/dingo

Dingo için MCP sunucusu: kapsamlı veri kalitesi değerlendirme aracı. Sunucu, Dingo'nun kural tabanlı ve LLM tabanlı değerlendirme yetenekleri ile kurallar ve promptlar listesine erişimi sağlar.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "migoxlab-dingo": {
      "command": "python",
      "args": [
        "-m",
        "dingo"
      ]
    }
  }
}

👋 Discord ve WeChat üzerinde bize katılın

Dingo'yu seviyorsanız, lütfen GitHub'da bize bir ⭐ verin!

Giriş

Dingo, ML uygulayıcıları, veri mühendisleri ve yapay zeka araştırmacıları için tasarlanmış kapsamlı bir AI verisi, model ve uygulama kalitesi değerlendirme aracıdır. Eğitim verilerinin, fine-tuning veri setlerinin ve üretim AI sistemlerinin kalitesini sistematik olarak değerlendirmenize ve iyileştirmenize yardımcı olur.


🚀 Enterprise Dingo SaaS Sürümü

Üretime hazır bir veri kalitesi platformu mu arıyorsunuz? Dingo SaaS Enterprise Edition'ı deneyin!

✨ Açık kaynak sürümüne kıyasla, SaaS şunları sağlar:

  • 🌐 Web UI - Görsel değerlendirme arayüzü, kodlama gerekmez
  • 🔐 Erişim Kontrolü - JWT + Google OAuth 2.0
  • 📊 Görsel Raporlar - İnteraktif grafikler, trend analizi, dışa aktarma özellikleri
  • 🔌 RESTful API - Mevcut sistemlerle sorunsuz entegrasyon

📝 Ücretsiz SaaS Kodunu Alma

👉 Dingo SaaS Repository Erişimi İçin Başvur

İnceleme süresi: 1-5 iş günü | Kurumsal veri yönetimi, ekip işbirliği için uygun


Neden Dingo?

🎯 Üretim Sınıfı Kalite Kontrolleri - Ön-eğitim veri setlerinden RAG sistemlerine kadar, yapay zekanızın yüksek kaliteli veriler almasını sağlayın

🗄️ Çok Kaynaktan Veri Entegrasyonu - Yerel dosyalar, SQL veritabanları (PostgreSQL/MySQL/SQLite), HuggingFace veri setleri ve S3 depolama alanına sorunsuz bağlanın

🔍 Çok Alanlı Değerlendirme - Paralel olarak farklı alanlara farklı kalite kuralları uygulayın (örneğin isbn için ISBN doğrulaması, title için metin kalitesi)

🤖 RAG Sistem Değerlendirmesi - 5 akademik temelli metrik ile alma ve oluşturma kalitesinin kapsamlı değerlendirmesi

🧠 LLM & Kural & Ajan Hibrid - Hızlı sezgisel kuralları (30+ yerleşik) LLM tabanlı derin değerlendirme ile birleştirin

🚀 Esnek Yürütme - Hızlı yineleme için yerel olarak çalıştırın veya milyar ölçekli veri setleri için Spark ile ölçeklendirin

📊 Zengin Raporlama - GUI görselleştirme ve alan düzeyinde içgörülerle ayrıntılı kalite raporları

Mimari Diyagram

Architecture of dingo

Hızlı Başlangıç

Kurulum

# Çekirdek paket (kural değerlendirmesi, LLM değerlendirmesi, MCP sunucusu, veri kaynağı desteği dahil)
pip install dingo-python

# HHEM halüsinasyon tespit modeli ile (transformers + torch gerektirir)
pip install "dingo-python[hhem]"

# Tüm özellikler ile (HHEM + Ajan)
pip install "dingo-python[all]"

Dingo'nun Kullanım Durumlarına Örnekler

1. LLM sohbet verilerini değerlendirin

from dingo.config.input_args import EvaluatorLLMArgs
from dingo.io.input import Data
from dingo.model.llm.text_quality.llm_text_quality_v4 import LLMTextQualityV4
from dingo.model.rule.rule_common import RuleSpecialCharacter

data = Data(
    data_id='123',
    prompt="hello, introduce the world",
    content="�I am 8 years old. ^I love apple because:"
)


def llm():
    LLMTextQualityV4.dynamic_config = EvaluatorLLMArgs(
        key='YOUR_API_KEY',
        api_url='https://api.openai.com/v1/chat/completions',
        model='gpt-4o',
    )
    res = LLMTextQualityV4.eval(data)
    print(res)

def rule():
    res = RuleSpecialCharacter().eval(data)
    print(res)

rule()

2. Veri Setini Değerlendirin

from dingo.config import InputArgs
from dingo.exec import Executor

# Hugging Face'ten bir veri seti değerlendirin
if __name__ == '__main__':
    input_data = {
        "input_path": "tatsu-lab/alpaca",  # Hugging Face'ten veri seti
        "dataset": {
            "source": "hugging_face",
            "format": "plaintext"  # Format: plaintext
        },
        "executor": {
            "result_save": {
                "bad": True  # Değerlendirme sonuçlarını kaydet
            }
        },
        "evaluator": [
            {
                "evals": [
                    {"name": "RuleColonEnd"},
                    {"name": "RuleSpecialCharacter"}
                ]
            }
        ]
    }

    input_args = InputArgs(**input_data)
    executor = Executor.exec_map["local"](https://github.com/MigoXLab/dingo/tree/HEAD/input_args)
    result = executor.execute()
    print(result)

Komut Satırı Arayüzü

Kural Setleri ile Değerlendirin

dingo eval --input .github/env/local_plaintext.json

LLM ile Değerlendirin (örneğin, GPT-4o)

dingo eval --input .github/env/local_json.json

MCP Sunucusu

Dingo, yapay zeka ajanı entegrasyonu için yerleşik bir Model Context Protocol (MCP) sunucusu içerir:

# MCP sunucusunu başlat (SSE transport, varsayılan port 8000)
dingo serve

# Özel port
dingo serve --port 9000

# stdio transport (Claude Desktop için)
dingo serve --transport stdio

Ayrıntılı kurulum ve Cursor/Claude Desktop entegrasyonu için bkz:

English · 简体中文 · 日本語

Video Gösterimi

Dingo MCP ile hızlı başlamanıza yardımcı olmak için bir video kılavuzu oluşturduk:

https://github.com/user-attachments/assets/aca26f4c-3f2e-445e-9ef9-9331c4d7a37b

Bu video, Dingo MCP sunucusunun Cursor ile nasıl kullanılacağını adım adım göstermektedir.


📚 Veri Kalitesi Metrikleri

Dingo, kural tabanlı hızlılığı LLM tabanlı derinlikle birleştirerek birden fazla boyutta 100'den fazla değerlendirme metriği sağlar.

Metrik Kategorileri

Kategori Örnekler Kullanım Durumu
Ön-eğitim Metni Kalitesi Bütünlük, Etkinlik, Benzerlik, Güvenlik LLM ön-eğitim veri filtreleme
SFT Veri Kalitesi Dürüst, Faydalı, Zararsız (3H) Talimat fine-tuning verisi
RAG Değerlendirmesi Sadakat, Bağlam Kesinliği, Cevap İlgisi RAG sistem değerlendirmesi
Halüsinasyon Tespiti HHEM-2.1-Open, Gerçeksellik Kontrolü Üretim yapay zeka güvenilirliği
Sınıflandırma Konu kategorileştirmesi, İçerik etiketleme Veri organizasyonu
Çok Modalite Görüntü-metin alaka, VLM kalitesi, OCR görsel değerlendirmesi Görme-dil verisi
Güvenlik PII tespiti, Perspective API toksisite Gizlilik ve güvenlik

📊 Tam Metrikleri Belgesi Görüntüle →
📖 RAG Değerlendirme Rehberi → | 中文版
🔍 Halüsinasyon Tespit Rehberi → | 中文版
Gerçeksellik Değerlendirme Rehberi → | 中文版
👁️ VLM Render Judge Rehberi → | 中文版

Çoğu metrik bilimsel titizliği sağlamak için akademik araştırma tarafından desteklenmektedir.

Hızlı Metrik Kullanımı

llm_config = {
    "model": "gpt-4o",
    "key": "YOUR_API_KEY",
    "api_url": "https://api.openai.com/v1/chat/completions"
}

input_data = {
    "evaluator": [
        {
            "fields": {"content": "content"},
            "evals": [
                {"name": "RuleAbnormalChar"},           # Kural tabanlı (hızlı)
                {"name": "LLMTextQualityV5", "config": llm_config}  # LLM tabanlı (derin)
            ]
        }
    ]
}

Özelleştirme: Tüm istemler dingo/model/llm/ dizininde tanımlanmıştır (kategori başına organize edilmiş: text_quality/, rag/, hhh/, vb.). Etki alanına özgü gereksinimler için bunları genişletin veya değiştirin.


🎓 Uygulayıcılar için Temel Kavramlar

Dingo'yu Üretime Hazır Yapan Nedir?

1. Çok Alanlı Değerlendirme Pipeline

Farklı alanlara tek bir geçişte farklı kalite kontrolleri uygulayın:

"evaluator": [
    {"fields": {"content": "isbn"}, "evals": [{"name": "RuleIsbn"}]},
    {"fields": {"content": "title"}, "evals": [{"name": "RuleAbnormalChar"}]},
    {"fields": {"content": "description"}, "evals": [{"name": "LLMTextQualityV5"}]}
]

Neden Önemli: Her alan için ayrı script yazmadan yapılandırılmış verileri (veritabanı tabloları gibi) değerlendirin.

2. Büyük Veri Setleri için Akış İşleme

SQL veri kaynakları SQLAlchemy'nin sunucu tarafı imleçlerini kullanır:

# Milyarlarca satırı OOM olmadan işle
for data in dataset.get_data():  # Aynı anda bir satır verir
    result = evaluator.eval(data)

Neden Önemli: Ara dosyalara dışa aktarmadan üretim veritabanlarını işleyin.

3. Bellekte Alan Yalıtımı

RAG değerlendirmeleri farklı alan kombinasyonları arasında bağlam sızıntısını önler:

outputs/
├── user_input,response,retrieved_contexts/  # Sadakat grubu
└── user_input,response/                     # Cevap İlgisi grubu

Neden Önemli: Birden çok alan kombinasyonu değerlendirilirken doğru metrik hesaplamaları.

4. Hibrid Kural-LLM Stratejisi

Hızlı kuralları (% 100 kapsama) örneklenmiş LLM kontrolleri (% 10 kapsama) ile birleştirin:

"evals": [
    {"name": "RuleAbnormalChar"},        # Hızlı, tüm verilerde çalışır
    {"name": "LLMTextQualityV5"}         # Pahalı, gerekirse örnek al
]

Neden Önemli: Üretim ölçeğinde değerlendirme için maliyet ve kapsama arasında denge sağlayın.

5. Kayıt Yoluyla Genişletilebilirlik

Özel kurallar, istemler ve modeller için temiz eklenti mimarisi:

@Model.rule_register('QUALITY_BAD_CUSTOM', ['default'])
class MyCustomRule(BaseRule):
    @classmethod
    def eval(cls, input_data: Data) -> EvalDetail:
        # Örnek: içeriğin boş olup olmadığını kontrol et
        if not input_data.content:
            return EvalDetail(
                metric=cls.__name__,
                status=True,  # Sorun bulundu
                label=[f'{cls.metric_type}.{cls.__name__}'],
                reason=["Content is empty"]
            )
        return EvalDetail(
            metric=cls.__name__,
            status=False,  # Sorun bulunamadı
            label=['QUALITY_GOOD']
        )

Neden Önemli: Kod tabanını fork'lamadan etki alanına özgü gereksinimlere uyarlanın.


🌟 Özellik Vurguları

📊 Çok Kaynaktan Veri Entegrasyonu

Çeşitli Veri Kaynakları - Verilerinizin bulunduğu yere bağlanın
Yerel Dosyalar: JSONL, CSV, TXT, Parquet
SQL Veritabanları: PostgreSQL, MySQL, SQLite, Oracle, SQL Server (akış işleme ile)
Bulut Depolama: S3 ve S3 uyumlu depolama
ML Platformları: Doğrudan HuggingFace veri setleri entegrasyonu

Kurumsal Sınıfı SQL Desteği - Üretim veritabanı entegrasyonu
✅ Milyar ölçekli veri setler için bellek verimli akış
✅ Bağlantı havuzu ve otomatik kaynak temizleme
✅ Karmaşık SQL sorguları (JOIN, WHERE, agregasyonlar)
✅ SQLAlchemy ile birden çok lehçe desteği

Çok Alanlı Kalite Kontrolleri - Farklı alanlar için farklı kurallar
✅ Paralel değerlendirme pipeline'ları (örneğin, ISBN doğrulaması + metin kalitesi eş zamanlı)
✅ Alan takma adı ve iç içe alan çıkarması (user.profile.name)
✅ Alan başına bağımsız sonuç raporları
✅ Esnek veri dönüşümü için ETL pipeline mimarisi


🤖 RAG Sistem Değerlendirmesi

5 Akademik Temelli Metrik - RAGAS, DeepEval, TruLens araştırmasına dayalı
Sadakat: Cevap-bağlam tutarlılığı (halüsinasyon tespiti)
Cevap İlgisi: Cevap-sorgu hizalaması
Bağlam Kesinliği: Alma kesinliği
Bağlam Geri Çağırma: Alma geri çağırması
Bağlam İlgisi: Bağlam-sorgu uygunluğu

Kapsamlı Raporlama - Otomatik toplanmış istatistikler
✅ Her metrik için ortalama, min, maks, standart sapma
✅ Alan gruplandırılmış sonuçlar
✅ Batch ve tek değerlendirme modları

📖 RAG Değerlendirme Rehberini Görüntüle →


🧠 Hibrid Değerlendirme Sistemi

Kural Tabanlı - Hızlı, belirleyici, uygun maliyetli
✅ 30+ yerleşik kural (metin kalitesi, format, PII tespiti)
✅ Regex, sezgisel, istatistiksel kontroller
✅ Özel kural kaydı

LLM Tabanlı - Derin anlamsal anlayış
✅ OpenAI (GPT-4o, GPT-3.5), DeepSeek, Kimi
✅ Yerel modeller (Llama3, Qwen)
✅ Görme-Dil Modelleri (InternVL, Gemini)
✅ Özel istem kaydı

Ajan Tabanlı - Araçlarla çok adımlı akıl yürütme
✅ Web arama entegrasyonu (Tavily)
✅ Uyarlanabilir bağlam toplama
✅ Çok kaynaktan gerçek doğrulama
✅ Özel ajan & araç kaydı

Genişletilebilir Mimari
✅ Eklenti tabanlı kural/istem/model kaydı
✅ Kaygıların temiz ayrılması (ajanlar, araçlar, orkestrasyon)
✅ Etki alanına özgü özelleştirme


🚀 Esnek Yürütme & Entegrasyon

Çoklu Arayüzler
✅ Hızlı kontroller için CLI
✅ Entegrasyon için Python SDK
✅ IDE'ler için MCP (Model Context Protocol) sunucusu (Cursor, vb.)

Ölçeklenebilir Yürütme
✅ Hızlı yineleme için yerel yürütücü
✅ Dağıtılmış işleme için Spark yürütücüsü
✅ Yapılandırılabilir eşzamanlılık ve toplu işlem

Veri Kaynakları
Yerel Dosyalar: JSONL, CSV, TXT, Parquet formatları
Hugging Face: HF veri setleri hub'ı ile doğrudan entegrasyon
S3 Depolama: AWS S3 ve S3 uyumlu depolama
SQL Veritabanları: PostgreSQL, MySQL, SQLite, Oracle, SQL Server (geniş ölçekli veriler için akış işleme)

Modaliteler
✅ Metin (sohbet, belgeler, kod)
✅ Görüntüler (VLM desteği ile)
✅ Çok modalite (metin + görüntü tutarlılığı)


📈 Zengin Raporlama & Görselleştirme

Çok Düzeyli Raporlar
✅ Genel puanlarla Özet JSON
✅ Alan düzeyinde dökümü
✅ Kural ihlali başına ayrıntılar
✅ Tür ve ad dağılımı

GUI Görselleştirme (Dingo SaaS aracılığıyla)
✅ İnteraktif veri keşfiyle Web UI
✅ Trend analizi ile görsel raporlar
✅ Anomali izleme

Metrik Agregasyonu
✅ Otomatik istatistikler (ort, min, maks, std_dev)
✅ Alan gruplandırılmış metrikler
✅ Genel kalite puanı


📖 Kullanıcı Rehberi

🔧 Genişletilebilirlik

Dingo, etki alanına özgü özelleştirme için temiz bir eklenti mimarisi kullanır:

Özel Kural Kaydı

from dingo.model import Model
from dingo.model.rule.base import BaseRule
from dingo.io import Data
from dingo.io.output.eval_detail import EvalDetail

@Model.rule_register('QUALITY_BAD_CUSTOM', ['default'])
class DomainSpecificRule(BaseRule):
    """Etki alanına özgü desenleri kontrol et"""

    @classmethod
    def eval(cls, input_data: Data) -> EvalDetail:
        text = input_data.content

        # Sizin özel mantığınız
        is_valid = your_validation_logic(text)

        return EvalDetail(
            metric=cls.__name__,
            status=not is_valid,  # False = iyi, True = kötü
            label=['QUALITY_GOOD' if is_valid else 'QUALITY_BAD_CUSTOM'],
            reason=["Doğrulama ayrıntıları..."]
        )

Özel LLM/İstem Kaydı

from dingo.model import Model
from dingo.model.llm.base_openai import BaseOpenAI

@Model.llm_register('custom_evaluator')
class CustomEvaluator(BaseOpenAI):
    """Özelleştirilmiş istemlerle özel LLM değerlendiricisi"""

    _metric_info = {
        "metric_name": "CustomEvaluator",
        "metric_type": "LLM-Based Quality",
        "category": "Custom Category"
    }

    prompt = """Özel istem burada..."""

Örnekler:

Araçlarla Ajan Tabanlı Değerlendirme

Dingo, çok adımlı akıl yürütme ve uyarlanabilir bağlam toplama için harici araçları kullanabilen ajan tabanlı değerlendiricileri destekler. İki uygulama deseni mevcuttur:

Desen 1: LangChain Tabanlı (örneğin, AgentFactCheck)

  • Çerçeve tarafından yönetilen otonom çok adımlı akıl yürütme
  • LangChain 1.0'ın create_agent ile ReAct modelini kullanır
  • İdeal: Karmaşık akıl yürütme görevleri, hızlı prototipleme
  • Daha az kod, daha bildirimsel

Desen 2: Özel İş Akışı (örneğin, AgentHallucination)

  • Geliştirici tarafından yönetilen açık iş akışı kontrolü
  • Manuel araç çağrıları ve LLM etkileşimleri
  • İdeal: Mevcut değerlendiricileri birleştirme, etki alanına özgü iş akışları
  • Tam kontrol, açık davranış

Her iki desen de aynı konfigürasyon arayüzünü paylaşır ve kullanıcılara karşı saydamdır.

Yerleşik Ajanlar:

  • AgentFactCheck: Otonom arama kontrolü ile LangChain tabanlı gerçek denetlemesi
  • AgentHallucination: Uyarlanabilir bağlam toplama ile özel iş akışı halüsinasyon tespiti
  • ArticleFactChecker: İki aşamalı makale gerçek denetlemesi — doğrulanabilir iddiaları çıkarır sonra her birini web araması ve Arxiv kullanarak paralel olarak doğrular, yapılandırılabilir eşzamanlılık kontrolü ile

Hızlı Örnek:

from dingo.io import Data
from dingo.io.output.eval_detail import EvalDetail
from dingo.model import Model
from dingo.model.llm.agent.base_agent import BaseAgent

@Model.llm_register('MyAgent')
class MyAgent(BaseAgent):
    """Araç desteği olan özel ajan"""

    available_tools = ["tavily_search", "my_custom_tool"]
    max_iterations = 5

    @classmethod
    def eval(cls, input_data: Data) -> EvalDetail:
        # Gerçek denetlemesi için araçları kullan
        search_result = cls.execute_tool('tavily_search', query=input_data.content)

        # L

Benzer MCP sunucuları

Daha fazla: Data Science Tools →