返回市场
事实核查器-mcp

事实核查器-mcp

作者:devshark4 星标更新:2025-04-12

项目介绍

Fact Checker MCP Server

这是一个模型上下文协议(MCP)服务器,通过与知识来源(如Wikidata)进行对比来验证简单的事实声明。

功能

  • 接受自然语言的事实声明
  • 验证声明的准确性
  • 返回符合MCP规范的响应,包括声明、正确答案和置信度分数
  • 包含一个与Ollama LLM集成的MCP客户端

MCP负载格式

{
  "version": "1.0",
  "context": {
    "type": "fact_check",
    "claim": "法国的首都是伦敦",
    "correct_answer": "不正确。法国的首都是巴黎,而不是伦敦。",
    "confidence": 0.95
  }
}

安装和设置

  1. 克隆此仓库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 运行服务器:
    python app.py
    

使用方法

服务器API

/fact-check端点发送POST请求,并在JSON负载中包含声明:

curl -X POST http://localhost:5000/fact-check \
  -H "Content-Type: application/json" \
  -d '{"claim": "法国的首都是伦敦"}'

集成Ollama的MCP客户端

项目中包含一个演示如何与Ollama LLM集成的MCP客户端:

  1. 确保已安装并运行Ollama:

    ollama serve
    
  2. 运行演示脚本:

    bash run_demo.sh
    
  3. 或者直接运行客户端:

    python mcp_client.py --model llama3
    

客户端将:

  • 检测提示中的关于首都的事实声明
  • 使用MCP服务器验证这些声明
  • 用准确的信息增强LLM的知识
  • 确保LLM提供事实正确的响应

测试

基础测试

使用特定声明运行测试客户端:

python test_client.py "法国的首都是巴黎"

或者运行默认的多声明测试套件:

python test_client.py

综合测试套件

运行包含正确和错误声明的综合测试套件:

python test_client.py --test-suite

单元测试

运行单元测试以验证服务器的功能:

python -m unittest test_unit.py

支持的声明类型

目前,服务器可以验证:

  • 关于首都城市的声明(例如,“[国家]的首都是[城市]”)

未来更新将添加更多类型的声明支持。

扩展服务器

要添加对新类型声明的支持:

  1. check_fact()函数中添加一个新的模式匹配正则表达式
  2. 实现类似于check_capital_claim()的相应验证函数

许可证

MIT

作者

© Anthony Lim