Token导航 LogoToken导航TokenDH.com
dingo (Data Eval) logo
搜索检索stdio官方级别未说明来源级核验

dingo (Data Eval)

MCP Server

Dingo是一款全面的AI数据质量评估工具,支持机器学习数据集、LLM训练数据验证、幻觉检测和RAG系统评估。

工具数

0

提示词数

0

GitHub Stars

700

资源数

0
PythonClaude搜索Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MigoXLab

提供方

MigoXLab

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install dingo-python

详细介绍

英语 · 简体中文 · 日本语

👋 join us on Discord and WeChat

If you like Dingo, please give us a ⭐ on GitHub!

介绍

Dingo是一个全面的人工智能数据、模型和应用质量评估工具,专为机器学习从业者、数据工程师和人工智能研究人员设计。它可以帮助您系统地评估和提高训练数据的质量,微调数据集和生产AI系统。

______________________________________________________________________

🚀 企业Dingo SaaS版本

需要一个 生产级数据质量平台?试试 Dingo SaaS 企业版!

✨ 与开源版本相比,SaaS提供:

  • 🌐 网页用户界面 -可视化评估界面,无需编码
  • 🔐 访问控制 -智威汤逊+谷歌OAuth 2.0
  • 📊 可视化报告 -交互式图表、趋势分析、导出功能
  • 🔌 RESTful API -与现有系统无缝集成

📝 如何获得免费的SaaS代码

👉 申请Dingo SaaS仓库访问

审核时间:1-5个工作日|适合企业数据治理、团队协作

______________________________________________________________________

为什么是丁戈?

🎯 生产级质量检查 -从预训练数据集到RAG系统,确保您的AI获得高质量的数据

🗄️ 多源数据集成 -无缝连接到本地文件、SQL数据库(PostgreSQL/MySQL/SQLite)、HuggingFace数据集和S3存储

🔍 多领域评估 -将不同的质量规则并行应用于不同的字段(例如,ISBN验证 isbn,文本质量 title)

🤖 RAG系统评估 -基于5个学术支持指标的检索和生成质量综合评价

🧠 LLM&规则&代理混合 -将快速启发式规则(30+内置)与基于LLM的深度评估相结合

🚀 灵活执行 -在本地运行以实现快速迭代,或使用Spark扩展以实现十亿级数据集

📊 丰富的报告 -具有GUI可视化和现场级见解的详细质量报告

架构图

Architecture of dingo

快速开始

安装

# 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 all features (HHEM + Agent)
pip install "dingo-python[all]"

Dingo的示例用例

1.评估LLM聊天数据

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.评估数据集

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"](input_args)
    result = executor.execute()
    print(result)

命令行界面

使用规则集进行评估

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

使用LLM进行评估(例如GPT-4o)

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

______________________________________________________________________

MCP 服务器

Dingo包括一个内置的模型上下文协议(MCP)服务器,用于AI代理集成:

# 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

有关详细的设置和Cursor/Claude Desktop集成,请参阅专用文档:

英语 · 简体中文 · 日本语

视频演示

为了帮助您快速开始使用Dingo MCP,我们创建了一个视频演练:

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

本视频逐步演示了如何将Dingo MCP服务器与Cursor一起使用。

______________________________________________________________________

📚 数据质量指标

Dingo提供 100+评估指标 在多个维度上,将基于规则的速度与基于LLM的深度相结合。

度量类别

类别示例用例
预训练文本质量完整性、有效性、相似性、安全性LLM预训练数据过滤
SFT数据质量诚实、有益、无害(3H)指令微调数据
RAG评估可信度、上下文精确性、答案相关性RAG系统评估
幻觉检测HHEM-2.1-开放、真实性检查生产AI可靠性
分类主题分类、内容标签数据组织
多模态图像文本相关性、VLM质量、OCR视觉评估视觉语言数据
安全PII检测,透视API毒性隐私与安全

📊 查看完整的度量文档→\ 📖 RAG评估指南→ | 中文版\ 🔍 幻觉检测指南→ | 中文版\ ✅ 事实性评估指南→ | 中文版\ 👁️ VLM渲染判断指南→ | 中文版

大多数指标都有学术研究的支持,以确保科学的严谨性。

快速度量使用

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)
            ]
        }
    ]
}

定制:所有提示均在中定义 dingo/model/llm/ 目录(按类别组织: text_quality/, rag/, hhh/等等)。根据特定领域的要求扩展或修改它们。

______________________________________________________________________

🎓 从业者的关键概念

是什么让Dingo生产准备就绪?

1. 多油田评价管道

一次性对不同字段应用不同的质量检查:

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

为什么重要:评估结构化数据(如数据库表),而无需为每个字段编写单独的脚本。

2. 大型数据集的流处理

SQL数据源使用SQLAlchemy的服务器端游标:

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

为什么重要:处理生产数据库,而不导出到中间文件。

3. 内存中的场隔离

RAG评估可防止不同字段组合之间的上下文泄漏:

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

为什么重要:评估多个字段组合时进行精确的度量计算。

4. 混合规则LLM策略

将快速规则(100%覆盖率)与抽样LLM检查(10%覆盖率)相结合:

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

为什么重要:平衡生产规模评估的成本和覆盖范围。

5. 通过注册进行扩展

用于自定义规则、提示和模型的干净插件架构:

@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']
        )

为什么重要:适应特定领域的需求,而无需分叉代码库。

______________________________________________________________________

🌟 功能亮点

📊 多源数据集成

多样化的数据来源 -连接到您的数据所在的位置\ ✅ 本地文件:jsonl、CSV、TXT、拼花地板\ ✅ SQL数据库:PostgreSQL、MySQL、SQLite、Oracle、SQL Server(带流处理)\ ✅ 云存储:S3和S3兼容存储\ ✅ ML平台:直接拥抱人脸数据集集成

企业级SQL支持 -生产数据库集成\ ✅ 十亿级数据集的内存高效流式传输\ ✅ 连接池和自动资源清理\ ✅ 复杂的SQL查询(JOIN、WHERE、聚合)\ ✅ SQLAlchemy支持多种方言

多场质量检查 -不同领域的不同规则\ ✅ 并行评估流程(例如,ISBN验证+文本质量同步)\ ✅ 字段混叠和嵌套字段提取(user.profile.name)\ ✅ 每个领域的独立结果报告\ ✅ 用于灵活数据转换的ETL管道架构

______________________________________________________________________

🤖 RAG系统评估

5学术支持指标 -基于RAGAS、DeepEval、TruLens的研究\ ✅ 忠诚:答案上下文一致性(幻觉检测)\ ✅ 答案相关性:答案查询对齐\ ✅ 上下文精准度:检索精度\ ✅ 上下文回忆:检索召回\ ✅ 上下文相关性:上下文查询相关性

全面报道 -自动聚合统计\ ✅ 每个指标的平均值、最小值、最大值、标准偏差\ ✅ 现场分组结果\ ✅ 批量和单次评估模式

📖 查看RAG评估指南→

______________________________________________________________________

🧠 混合评估系统

基于规则 -快速、确定、经济高效\ ✅ 30+内置规则(文本质量、格式、PII检测)\ ✅ 正则表达式、启发式、统计检查\ ✅ 自定义规则注册

LLM基础 -深入的语义理解\ ✅ OpenAI(GPT-4o、GPT-3.5)、DeepSeek、Kimi\ ✅ 本地型号(Llama3、Qwen)\ ✅ 视觉语言模型(InternVL,Gemini)\ ✅ 自定义提示注册

基于代理的 -使用工具进行多步推理\ ✅ 网络搜索集成(Tavily)\ ✅ 自适应上下文收集\ ✅ 多源事实核查\ ✅ 定制代理和工具注册

可扩展架构\ ✅ 基于插件的规则/提示/模型注册\ ✅ 关注点(代理、工具、编排)的清晰分离\ ✅ 特定领域定制

______________________________________________________________________

🚀 灵活的执行和集成

多个接口\ ✅ CLI用于快速检查\ ✅ 用于集成的Python SDK\ ✅ IDE(游标等)的MCP(模型上下文协议)服务器

可扩展执行\ ✅ 用于快速迭代的本地执行器\ ✅ 用于分布式处理的Spark执行器\ ✅ 可配置的并发和批处理

数据源\ ✅ 本地文件:JSONL、CSV、TXT、拼花格式\ ✅ 拥抱脸:与HF数据集中心直接集成\ ✅ S3存储:AWS S3和S3兼容存储\ ✅ SQL数据库:PostgreSQL、MySQL、SQLite、Oracle、SQL Server(用于大规模数据的流处理)

模态\ ✅ 文本(聊天、文档、代码)\ ✅ 图像(支持VLM)\ ✅ 多模式(文本+图像一致性)

______________________________________________________________________

📈 丰富的报告和可视化

多级报告\ ✅ 总结JSON与总分\ ✅ 现场级细分\ ✅ 违反规则的详细信息\ ✅ 类型和名称分布

GUI可视化(通过 Dingo SaaS)\ ✅ 具有交互式数据探索功能的Web UI\ ✅ 带有趋势分析的可视化报告\ ✅ 异常跟踪

度量聚合\ ✅ 自动统计(平均值、最小值、最大值、标准偏差)\ ✅ 现场分组指标\ ✅ 总体质量得分

______________________________________________________________________

📖 用户指南

🔧 可扩展性

Dingo使用干净的插件架构进行特定领域的定制:

自定义规则注册

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..."]
        )

自定义LLM/快速注册

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..."""

示例:

基于Agent的工具评估

Dingo支持基于代理的评估器,可以使用外部工具进行多步推理和自适应上下文收集。有两种实现模式可供选择:

模式1:基于LangChain (例如。, AgentFactCheck)

  • 由自主多步推理驱动的框架
  • 使用LangChain 1.0 create_agent 采用ReAct模式
  • 最适合:复杂的推理任务、快速原型制作
  • 更少的代码,更具声明性

模式2:自定义工作流 (例如。, AgentHallucination)

  • 开发人员驱动,具有明确的工作流控制
  • 手动工具调用和LLM交互
  • 最适合:组合现有评估人员,特定领域的工作流程
  • 完全控制,明确行为

这两种模式共享相同的配置界面,对用户透明。

内置代理:

  • AgentFactCheck:基于LangChain的事实检查,具有自主搜索控制
  • AgentHallucination:使用自适应上下文收集进行自定义工作流幻觉检测
  • ArticleFactChecker:两阶段文章事实检查——提取可验证的声明,然后使用web搜索和Arxiv并行验证每个声明,并具有可配置的并发控制

快速示例:

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(...)

有关选择和实施代理模式的详细指导,请参阅 代理开发指南.

配置示例:

{
  "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"}
            }
          }
        }
      }
    }]
  }]
}

了解更多:

⚙️ 执行模式

本地执行人(开发和小规模)

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

input_args = InputArgs(**input_data)
executor = Executor.exec_map["local"](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

最佳选择:快速迭代、调试,数据集\1M行

评估报告

经过评估,Dingo生成:

  1. 总结报告 (summary.json):总体指标和分数
  2. 详细报告:每个违规行为的具体问题

报告说明:

  1. 得分: num_good / total
  2. 类型比率:类型/总数的计数,例如: QUALITY_BAD_COMPLETENESS / total

示例摘要:

{
    "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
        }
    }
}

🚀 路线图和贡献

未来计划

  • \[ \] 代理人作为法官 -用于减少偏见和复杂推理的多智能体辩论模式
  • \[ \] SaaS平台 -具有API访问和仪表板的托管评估服务
  • \[ \] 音频和视频模式 -扩展到文本/图像之外
  • \[ \] 多样性指标 -统计多样性评估
  • \[ \] 实时监控 -生产管道中的持续质量检查

局限性

当前的内置检测规则和模型方法主要关注常见的数据质量问题。对于特殊的评估需求,我们建议定制检测规则。

致谢

贡献

我们感谢所有贡献者为改进和加强 Dingo。请参阅 贡献指南 为项目做出贡献的指导。

许可证

该项目使用 Apache 2.0开源许可证.

此项目将fasttext用于某些功能,包括语言检测。fasttext根据MIT许可证获得许可,该许可证与我们的Apache 2.0许可证兼容,并为各种使用场景提供了灵活性。

引用

如果你觉得这个项目有用,请考虑引用我们的工具:

@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}
}

目录标签

目录标签

PythonClaude搜索数据质量评估本地部署机器学习幻觉检测RAG系统评估多源数据集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP