dingo

MigoXLabApache-2.0活跃维护

一站式评估 AI 数据、模型和应用质量的工具,能检测数据质量、幻觉等问题并生成质量报告,适合做数据清洗与模型上线前的质量把关。

Dingo: A Comprehensive AI Data, Model and Application Quality Evaluation Tool

v2.5.0发布于 2026-08-04 11:06 UTC767star +1 / 7 天81fork同步于 2026-11-10 05:59 UTC

怎么上手

由 README 提炼,执行前请确认
pip install dingo-python
dingo eval --input .github/env/local_plaintext.json
硬件要求按 README 说明

README 未说明显存或 GPU 型号要求;核心包为 Python 库,规则评估可纯 CPU 运行,LLM 评估需调用外部 API,HHEM 幻觉检测依赖 transformers + torch。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

一站式评估 AI 数据、模型与应用质量的 Python 工具,覆盖训练数据清洗到 RAG 系统评测

一站式评估 AI 数据、模型和应用质量的工具,能检测数据质量、幻觉等问题并生成质量报告,适合做数据清洗与模型上线前的质量把关。

核心能力

  • 内置 100+ 指标,规则与 LLM 评估可混合编排
  • 支持多字段并行评估,不同字段套用不同质量规则
  • 接入本地文件、SQL 数据库、HuggingFace 数据集与 S3
  • 提供 RAG 评测指标与 HHEM 幻觉检测能力
  • 内置 MCP Server,可接入 Cursor、Claude Desktop 等 Agent

容易踩的坑

HHEM 幻觉检测和 retrieval 评测需另装可选依赖(pip install "dingo-python[hhem]" 或 [retrieval]),否则相关指标不可用;LLM 评估需自行填写 API key、api_url 与模型名;dingo serve 默认以 SSE 传输监听 8000 端口,接 Claude Desktop 需改用 --transport stdio。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.5.0
  1. v2.5.0最新正式版2026-08-04 · 2026-08-04 11:06 UTC

    What's Changed

  2. v2.4.0v2.4.0-released2026-05-29 · 2026-05-29 10:30 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/MigoXLab/dingo/compare/v2.2.1...v2.4.0

  3. v2.3.0v2.3.0-released2026-05-29 · 2026-05-29 03:24 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/MigoXLab/dingo/compare/v2.2.1...v2.3.0

  4. v2.2.22026-04-02 · 2026-04-02 08:08 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/MigoXLab/dingo/compare/v2.2.1...v2.2.2

  5. v2.2.1v2.2.1-released2026-03-24 · 2026-03-24 06:11 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/MigoXLab/dingo/compare/v2.1.0...v2.2.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    English · 简体中文 · 日本語

    Introduction

    Dingo is A Comprehensive AI Data, Model and Application Quality Evaluation Tool, designed for ML practitioners, data engineers, and AI researchers. It helps you systematically assess and improve the quality of training data, fine-tuning datasets, and production AI systems.


    🚀 Enterprise Dingo SaaS Version

    Need a production-grade data quality platform? Try Dingo SaaS Enterprise Edition!

    ✨ Compared to the open-source version, SaaS provides:

    • 🌐 Web UI - Visual evaluation interface, no coding required
    • 🔐 Access Control - JWT + Google OAuth 2.0
    • 📊 Visual Reports - Interactive charts, trend analysis, export features
    • 🔌 RESTful API - Seamless integration with existing systems

    📝 How to Get Free SaaS Code

    👉 Apply for Dingo SaaS Repository Access

    Review time: 1-5 business days | Suitable for enterprise data governance, team collaboration


    Why Dingo?

    🎯 Production-Grade Quality Checks - From pre-training datasets to RAG systems, ensure your AI gets high-quality data

    🗄️ Multi-Source Data Integration - Seamlessly connect to Local files, SQL databases (PostgreSQL/MySQL/SQLite), HuggingFace datasets, and S3 storage

    🔍 Multi-Field Evaluation - Apply different quality rules to different fields in parallel (e.g., ISBN validation for isbn, text quality for title)

    🤖 RAG System Assessment - Comprehensive evaluation of retrieval and generation quality with 5 academic-backed metrics

    🧠 LLM & Rule & Agent Hybrid - Combine fast heuristic rules (30+ built-in) with LLM-based deep assessment

    🚀 Flexible Execution - Run locally for rapid iteration or scale with Spark for billion-scale datasets

    📊 Rich Reporting - Detailed quality reports with GUI visualization and field-level insights

    Architecture Diagram

    Architecture of dingo

    Quick Start

    Installation

    # Core package (includes rule evaluation, LLM evaluation, MCP server, datasource support)
    pip install dingo-python
    
    # With HHEM hallucination detection model (requires transformers + torch)
    pip install "dingo-python[hhem]"
    
    # With retrieval benchmark evaluation (MTEB + pytrec-eval-terrier)
    pip install "dingo-python[retrieval]"
    
    # With all features (HHEM + Agent + Retrieval)
    pip install "dingo-python[all]"
    

    Example Use Cases of Dingo

    1. Evaluate LLM chat data

    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. Evaluate Dataset

    from dingo.config import InputArgs
    from dingo.exec import Executor
    
    # Evaluate a dataset from Hugging Face
    if __name__ == '__main__':
        input_data = {
            "input_path": "tatsu-lab/alpaca",  # Dataset from Hugging Face
            "dataset": {
                "source": "hugging_face",
                "format": "plaintext"  # Format: plaintext
            },
            "executor": {
                "result_save": {
                    "bad": True  # Save evaluation results
                }
            },
            "evaluator": [
                {
                    "evals": [
                        {"name": "RuleColonEnd"},
                        {"name": "RuleSpecialCharacter"}
                    ]
                }
            ]
        }
    
        input_args = InputArgs(**input_data)
        executor = Executor.exec_map["local"](https://github.com/MigoXLab/dingo/blob/HEAD/input_args)
        result = executor.execute()
        print(result)
    

    Command Line Interface

    Evaluate with Rule Sets

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

    Evaluate with LLM (e.g., GPT-4o)

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

    MCP Server

    Dingo includes a built-in Model Context Protocol (MCP) server for AI agent integration:

    # Start MCP server (SSE transport, default port 8000)
    dingo serve
    
    # Custom port
    dingo serve --port 9000
    
    # stdio transport (for Claude Desktop)
    dingo serve --transport stdio
    

    For detailed setup and Cursor/Claude Desktop integration, see the dedicated documentation:

    English · 简体中文 · 日本語

    Video Demonstration

    To help you get started quickly with Dingo MCP, we've created a video walkthrough:

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

    This video demonstrates step-by-step how to use Dingo MCP server with Cursor.


    📚 Data Quality Metrics

    Dingo provides 100+ evaluation metrics across multiple dimensions, combining rule-based speed with LLM-based depth.

    Metric Categories

    CategoryExamplesUse Case
    Pretrain Text QualityCompleteness, Effectiveness, Similarity, SecurityLLM pre-training data filtering
    SFT Data QualityHonest, Helpful, Harmless (3H)Instruction fine-tuning data
    RAG EvaluationFaithfulness, Context Precision, Answer RelevancyRAG system assessment
    Hallucination DetectionHHEM-2.1-Open, Factuality CheckProduction AI reliability
    ClassificationTopic categorization, Content labelingData organization
    MultimodalImage-text relevance, VLM quality, OCR visual evaluationVision-language data
    SecurityPII detection, Perspective API toxicityPrivacy and safety

    📊 View Complete Metrics Documentation →
    📖 RAG Evaluation Guide → | 中文版
    🔍 Hallucination Detection Guide → | 中文版
    ✅ Factuality Assessment Guide → | 中文版
    👁️ VLM Render Judge Guide → | 中文版

    Most metrics are backed by academic research to ensure scientific rigor.

    Quick Metric Usage

    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"},           # Rule-based (fast)
                    {"name": "LLMTextQualityV5", "config": llm_config}  # LLM-based (deep)
                ]
            }
        ]
    }
    

    Customization: All prompts are defined in dingo/model/llm/ directory (organized by category: text_quality/, rag/, hhh/, etc.). Extend or modify them for domain-specific requirements.


    🎓 Key Concepts for Practitioners

    What Makes Dingo Production-Ready?

    1. Multi-Field Evaluation Pipeline

    Apply different quality checks to different fields in a single pass:

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

    Why It Matters: Evaluate structured data (like database tables) without writing separate scripts for each field.

    2. Stream Processing for Large Datasets

    SQL datasources use SQLAlchemy's server-side cursors:

    # Handles billions of rows without OOM
    for data in dataset.get_data():  # Yields one row at a time
        result = evaluator.eval(data)
    

    Why It Matters: Process production databases without exporting to intermediate files.

    3. Field Isolation in Memory

    RAG evaluations prevent context bleeding across different field combinations:

    outputs/
    ├── user_input,response,retrieved_contexts/  # Faithfulness group
    └── user_input,response/                     # Answer Relevancy group
    

    Why It Matters: Accurate metric calculations when evaluating multiple field combinations.

    4. Hybrid Rule-LLM Strategy

    Combine fast rules (100% coverage) with sampled LLM checks (10% coverage):

    "evals": [
        {"name": "RuleAbnormalChar"},        # Fast, runs on all data
        {"name": "LLMTextQualityV5"}         # Expensive, sample if needed
    ]
    

    Why It Matters: Balance cost and coverage for production-scale evaluation.

    5. Extensibility Through Registration

    Clean plugin architecture for custom rules, prompts, and models:

    @Model.rule_register('QUALITY_BAD_CUSTOM', ['default'])
    class MyCustomRule(BaseRule):
        @classmethod
        def eval(cls, input_data: Data) -> EvalDetail:
            # Example: check if content is empty
            if not input_data.content:
                return EvalDetail(
                    metric=cls.__name__,
                    status=True,  # Found an issue
                    label=[f'{cls.metric_type}.{cls.__name__}'],
                    reason=["Content is empty"]
                )
            return EvalDetail(
                metric=cls.__name__,
                status=False,  # No issue found
                label=['QUALITY_GOOD']
            )
    

    Why It Matters: Adapt to domain-specific requirements without forking the codebase.


    🌟 Feature Highlights

    📊 Multi-Source Data Integration

    Diverse Data Sources - Connect to where your data lives
    ✅ Local Files: JSONL, CSV, TXT, Parquet
    ✅ SQL Databases: PostgreSQL, MySQL, SQLite, Oracle, SQL Server (with stream processing)
    ✅ Cloud Storage: S3 and S3-compatible storage
    ✅ ML Platforms: Direct HuggingFace datasets integration

    Enterprise-Ready SQL Support - Production database integration
    ✅ Memory-efficient streaming for billion-scale datasets
    ✅ Connection pooling and automatic resource cleanup
    ✅ Complex SQL queries (JOIN, WHERE, aggregations)
    ✅ Multiple dialect support with SQLAlchemy

    Multi-Field Quality Checks - Different rules for different fields
    ✅ Parallel evaluation pipelines (e.g., ISBN validation + text quality simultaneously)
    ✅ Field aliasing and nested field extraction (user.profile.name)
    ✅ Independent result reports per field
    ✅ ETL pipeline architecture for flexible data transformation


    🤖 RAG System Evaluation

    5 Academic-Backed Metrics - Based on RAGAS, DeepEval, TruLens research
    ✅ Faithfulness: Answer-context consistency (hallucination detection)
    ✅ Answer Relevancy: Answer-query alignment
    ✅ Context Precision: Retrieval precision
    ✅ Context Recall: Retrieval recall
    ✅ Context Relevancy: Context-query relevance

    Comprehensive Reporting - Auto-aggregated statistics
    ✅ Average, min, max, standard deviation for each metric
    ✅ Field-grouped results
    ✅ Batch and single evaluation modes

    📖 View RAG Evaluation Guide →


    🧠 Hybrid Evaluation System

    Rule-Based - Fast, deterministic, cost-effective
    ✅ 30+ built-in rules (text quality, format, PII detection)
    ✅ Regex, heuristics, statistical checks
    ✅ Custom rule registration

    LLM-Based - Deep semantic understanding
    ✅ OpenAI (GPT-4o, GPT-3.5), DeepSeek, Kimi
    ✅ Local models (Llama3, Qwen)
    ✅ Vision-Language Models (InternVL, Gemini)
    ✅ Custom prompt registration

    Agent-Based - Multi-step reasoning with tools
    ✅ Web search integration (Tavily)
    ✅ Adaptive context gathering
    ✅ Multi-source fact verification
    ✅ Custom agent & tool registration

    Extensible Architecture
    ✅ Plugin-based rule/prompt/model registration
    ✅ Clean separation of concerns (agents, tools, orchestration)
    ✅ Domain-specific customization


    🚀 Flexible Execution & Integration

    Multiple Interfaces
    ✅ CLI for quick checks
    ✅ Python SDK for integration
    ✅ MCP (Model Context Protocol) server for IDEs (Cursor, etc.)

    Scalable Execution
    ✅ Local executor for rapid iteration
    ✅ Spark executor for distributed processing
    ✅ Configurable concurrency and batching

    Data Sources
    ✅ Local Files: JSONL, CSV, TXT, Parquet formats
    ✅ Hugging Face: Direct integration with HF datasets hub
    ✅ S3 Storage: AWS S3 and S3-compatible storage
    ✅ SQL Databases: PostgreSQL, MySQL, SQLite, Oracle, SQL Server (stream processing for large-scale data)

    Modalities
    ✅ Text (chat, documents, code)
    ✅ Images (with VLM support)
    ✅ Multimodal (text + image consistency)


    📈 Rich Reporting & Visualization

    Multi-Level Reports
    ✅ Summary JSON with overall scores
    ✅ Field-level breakdown
    ✅ Per-rule violation details
    ✅ Type and name distribution

    GUI Visualization (via Dingo SaaS)
    ✅ Web UI with interactive data exploration
    ✅ Visual reports with trend analysis
    ✅ Anomaly tracking

    Metric Aggregation
    ✅ Automatic statistics (avg, min, max, std_dev)
    ✅ Field-grouped metrics
    ✅ Overall quality score


    📖 User Guide

    🔧 Extensibility

    Dingo uses a clean plugin architecture for domain-specific customization:

    Custom Rule Registration

    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):
        """Check domain-specific patterns"""
    
        @classmethod
        def eval(cls, input_data: Data) -> EvalDetail:
            text = input_data.content
    
            # Your custom logic
            is_valid = your_validation_logic(text)
    
            return EvalDetail(
                metric=cls.__name__,
                status=not is_valid,  # False = good, True = bad
                label=['QUALITY_GOOD' if is_valid else 'QUALITY_BAD_CUSTOM'],
                reason=["Validation details..."]
            )
    

    Custom LLM/Prompt Registration

    from dingo.model import Model
    from dingo.model.llm.base_openai import BaseOpenAI
    
    @Model.llm_register('custom_evaluator')
    class CustomEvaluator(BaseOpenAI):
        """Custom LLM evaluator with specialized prompts"""
    
        _metric_info = {
            "metric_name": "CustomEvaluator",
            "metric_type": "LLM-Based Quality",
            "category": "Custom Category"
        }
    
        prompt = """Your custom prompt here..."""
    

    Examples:

    Agent-Based Evaluation with Tools

    Dingo supports agent-based evaluators that can use external tools for multi-step reasoning and adaptive context gathering. Two implementation patterns are available:

    Pattern 1: LangChain-Based (e.g., AgentFactCheck)

    • Framework-driven with autonomous multi-step reasoning
    • Uses LangChain 1.0's create_agent with ReAct pattern
    • Best for: Complex reasoning tasks, rapid prototyping
    • Less code, more declarative

    Pattern 2: Custom Workflow (e.g., AgentHallucination)

    • Developer-driven with explicit workflow control
    • Manual tool calls and LLM interactions
    • Best for: Composing existing evaluators, domain-specific workflows
    • Full control, explicit behavior

    Both patterns share the same configuration interface and are transparent to users.

    Built-in Agents:

    • AgentFactCheck: LangChain-based fact-checking with autonomous search control
    • AgentHallucination: Custom workflow hallucination detection with adaptive context gathering
    • ArticleFactChecker: Two-phase article fact-checking — extracts verifiable claims then verifies each in parallel using web search and Arxiv, with configurable concurrency control

    Quick Example:

    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):
        """Custom agent with tool support"""
    
        available_tools = ["tavily_search", "my_custom_tool"]
        max_iterations = 5
    
        @classmethod
        def eval(cls, input_data: Data) -> EvalDetail:
            # Use tools for fact-checking
            search_result = cls.execute_tool('tavily_search', query=input_data.content)
    
            # Multi-step reasoning with LLM
            result = cls.send_messages([...])
    
            return EvalDetail(...)
    

    For detailed guidance on choosing and implementing agent patterns, see Agent Development Guide.

    Configuration Example:

    {
      "evaluator": [{
        "evals": [{
          "name": "AgentHallucination",
          "config": {
            "key": "openai-api-key",
            "model": "gpt-4",
            "parameters": {
              "agent_config": {
                "max_iterations": 5,
                "tools": {
                  "tavily_search": {"api_key": "tavily-key"}
                }
              }
            }
          }
        }]
      }]
    }
    

    Learn More:

    ⚙️ Execution Modes

    Local Executor (Development & Small-Scale)

    from dingo.config import InputArgs
    from dingo.exec import Executor
    
    input_args = InputArgs(**input_data)
    executor = Executor.exec_map["local"](https://github.com/MigoXLab/dingo/blob/HEAD/input_args)
    result = executor.execute()
    
    # Access results
    summary = executor.get_summary()           # Overall metrics
    bad_data = executor.get_bad_info_list()    # Quality issues
    good_data = executor.get_good_info_list()  # High-quality data
    

    Best For: Rapid iteration, debugging, datasets < 100K rows

    Spark Executor (Production & Large-Scale)

    from pyspark.sql import SparkSession
    from dingo.exec import Executor
    
    spark = SparkSession.builder.appName("Dingo").getOrCreate()
    spark_rdd = spark.sparkContext.parallelize(your_data)
    
    executor = Executor.exec_map["spark"](
        input_args,
        spark_session=spark,
        spark_rdd=spark_rdd
    )
    result = executor.execute()
    

    Best For: Production pipelines, distributed processing, datasets > 1M rows

    Retrieval Benchmark Executor

    Evaluate search APIs against MTEB standard retrieval benchmarks (SciFact, SCIDOCS, etc.) with metrics like NDCG, Recall, and MRR.

    CLI:

    pip install dingo-python[retrieval]
    
    dingo eval-retrieval --backend agentic --tasks SciFact \
        --api-url https://api.sciverse.space \
        --api-token YOUR_TOKEN --limit 100 --max-workers 8
    
    dingo eval-retrieval --backend meta_search --tasks SciFact \
        --api-url https://api.sciverse.space \
        --api-token YOUR_TOKEN --limit 100 --rate-limit 1.0 \
        --freshness-boost MILD \
        --filters-json '[{"field": "publication_published_year", "operator": "FILTER_OP_GTE", "value": 2010}]'
    
    dingo eval-retrieval --backend google_scholar --tasks SciFact \
        --api-token YOUR_SERPAPI_KEY --limit 100 --rate-limit 1.0
    
    dingo eval-retrieval --backend openalex --tasks SciFact \
        --api-token YOUR_OPENALEX_API_KEY --limit 100
    
    dingo eval-retrieval --backend openalex --tasks SciFact \
        --api-token YOUR_OPENALEX_API_KEY --limit 50 \
        --search-type semantic --rate-limit 1.0 --max-workers 1
    

    SDK:

    from dingo.config import InputArgs
    from dingo.exec import Executor
    
    input_data = {
        "input_path": "SciFact",
        "output_path": "outputs/retrieval_eval",
        "executor": {
            "retrieval": {
                "backend": "agentic",
                "api_url": "https://api.sciverse.space",
                "api_token": "YOUR_TOKEN",
                "limit": 100,
                "max_workers": 8,
            }
        },
    }
    
    input_args = InputArgs(**input_data)
    executor = Executor.exec_map["retrieval"](https://github.com/MigoXLab/dingo/blob/HEAD/input_args)
    result = executor.execute()
    print(result)
    

    Best For: Evaluating search/retrieval APIs against academic benchmarks, comparing retrieval backends

    Evaluation Reports

    After evaluation, Dingo generates:

    1. Summary Report (summary.json): Overall metrics and scores
    2. Detailed Reports: Specific issues for each rule violation

    Report Description:

    1. score: num_good / total
    2. type_ratio: The count of type / total, such as: QUALITY_BAD_COMPLETENESS / total

    Example summary:

    {
        "task_id": "d6c922ec-981c-11ef-b723-7c10c9512fac",
        "task_name": "dingo",
        "eval_group": "default",
        "input_path": "test/data/test_local_jsonl.jsonl",
        "output_path": "outputs/d6c921ac-981c-11ef-b723-7c10c9512fac",
        "create_time": "20241101_144510",
        "score": 50.0,
        "num_good": 1,
        "num_bad": 1,
        "total": 2,
        "type_ratio": {
            "content": {
                "QUALITY_BAD_COMPLETENESS.RuleColonEnd": 0.5,
                "QUALITY_BAD_RELEVANCE.RuleSpecialCharacter": 0.5
            }
        }
    }
    

    🚀 Roadmap & Contributions

    Future Plans

    • Agent-as-a-Judge - Multi-agent debate patterns for bias reduction and complex reasoning
    • SaaS Platform - Hosted evaluation service with API access and dashboard
    • Audio & Video Modalities - Extend beyond text/image
    • Diversity Metrics - Statistical diversity assessment
    • Real-time Monitoring - Continuous quality checks in production pipelines

    Limitations

    The current built-in detection rules and model methods primarily focus on common data quality issues. For special evaluation needs, we recommend customizing detection rules.

    Acknowledgments

    Contribution

    We appreciate all the contributors for their efforts to improve and enhance Dingo. Please refer to the Contribution Guide for guidance on contributing to the project.

    License

    This project uses the Apache 2.0 Open Source License.

    This project uses fasttext for some functionality including language detection. fasttext is licensed under the MIT License, which is compatible with our Apache 2.0 license and provides flexibility for various usage scenarios.

    Citation

    If you find this project useful, please consider citing our tool:

    @misc{dingo,
      title={Dingo: A Comprehensive AI Data Quality Evaluation Tool for Large Models},
      author={Dingo Contributors},
      howpublished={\url{https://github.com/MigoXLab/dingo}},
      year={2024}
    }