科学工具
科学工具让世界更美好
让世界更美好

虚假新闻检测器

虚假新闻检测器是基于事实核查的自动化系统,能检测虚假新闻,它利用大型语言模型(如Qwen2.5-14B)和BGE-M3-Embedding模型,能够自动从新闻文本中提取可核查的核心声明,并通过DuckDuckGo搜索引擎实时获取相关证据,进行语义匹配和分块证据处理。虚假新闻检测器系统基于分析的证据,给出新闻的真伪判断(正确、错误或部分正确),能将整个核查过程通过Streamlit构建的流式Web界面实时展现。

虚假新闻检测器能自动识别中文、英文、日文、韩文等输入文本,不需要手动切换语言设置。支持用户自定义输出语言,也能根据输入自动匹配对应语言呈现结果,同时提供完整的中英文界面。

虚假新闻检测器兼容多种模型服务:

• Ollama:支持本地部署,默认搭载 GPT-OSS 120B Cloud 与 Nomic Embed 模型

• LM Studio:可接入本地模型服务

• OpenAI:直接调用官方 GPT 系列模型

• 自定义API:兼容 OpenAI 格式的任意模型服务均可接入

虚假新闻检测器先从新闻中智能提取核心可验证声明,再通过 SearXNG、DuckDuckGo 等搜索引擎获取多源网络证据。利用先进嵌入模型计算证据相关性,确保核查准确性。最终会呈现详细推理过程和证据来源,让核查结果可追溯。自动保存所有事实核查历史,方便后续查看。支持生成专业的PDF格式核查报告,便于存档和分享。同时支持多用户独立使用,各自的数据互不干扰。

安装的环境要求

• 运行环境需安装 Python 3.12 及以上版本

• 推荐安装 Ollama,或其他兼容 OpenAI API 的模型服务

• 可选安装 SearXNG,用于增强搜索功能

安装虚假新闻检测器

1、克隆仓库

git clone https://github.com/CaptainYifei/fake-news-detector.git
cd fake-news-detector

2、安装依赖

pip install -r requirements.txt

3、配置模型服务(以 Ollama 为例)

# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 拉取推荐模型
ollama pull gpt-oss:120b-cloud
ollama pull nomic-embed-text:latest

4、配置搜索服务(可选)

# 使用 Docker 启动 SearXNG
docker run -d -p 8090:8080 searxng/searxng

5、启动应用

streamlit run app.py

应用启动后,访问 http://localhost:8501 就能使用。

虚假新闻检测器配置

模型配置(model_config.json)

系统通过该文件统一管理模型服务,示例配置如下:

{
  "providers": {
    "ollama": {
      "name": "Ollama",
      "type": "openai_compatible",
      "base_url": "http://localhost:11434/v1",
      "models": {
        "gpt-oss:120b-cloud": {
          "name": "GPT-OSS 120B Cloud",
          "type": "chat",
          "max_tokens": 8192
        },
        "nomic-embed-text:latest": {
          "name": "Nomic Embed Text",
          "type": "embedding",
          "dimensions": 768
        }
      }
    }
  },
  "defaults": {
    "llm_provider": "ollama",
    "llm_model": "gpt-oss:120b-cloud",
    "embedding_provider": "ollama",
    "embedding_model": "nomic-embed-text:latest",
    "output_language": "zh"
  }
}

搜索引擎配置

支持两种常用搜索引擎,可在配置文件中设置:

• SearXNG:本地部署的隐私搜索引擎

• DuckDuckGo:在线搜索,支持代理配置

虚假新闻检测器工作流程

1、声明提取:借助 LLM 从输入文本中提取核心可验证声明

2、证据搜索:通过配置的搜索引擎获取相关网络证据

3、语义排序:利用嵌入模型计算并排序证据相关性

4、事实判断:基于证据给出 TRUE/FALSE/PARTIALLY TRUE 三种判断结果

5、结果呈现:展示详细推理过程和证据来源

虚假新闻检测器使用方法

Web 界面使用

1、选择模型提供商和具体模型

2、配置搜索引擎和输出语言

3、输入需要核查的新闻内容

4、查看实时处理进度和最终结果

5、导出 PDF 报告或查看历史记录

API 接口使用

1、启动 API 服务

python api.py

2、发送核查请求

curl -X POST http://localhost:5000/fact-check \
  -H "Content-Type: application/json" \
  -d '{"text": "需要核查的新闻内容"}'

详细 API 文档可查看 docs/api_doc.html