Skip to content

Repository files navigation

ManuSift

ManuSift

学术论文诚信筛查 agent · 离线检测内核 · 基于 pi SDK 的独立 TUI
English

CI License: MIT Python 3.10+ Status pi agent

概述

ManuSift 对论文 PDF 及其 Source Data 表格执行诚信筛查:52 个检测器覆盖图像复用、 表格伪造指纹、统计不一致、扭曲措辞、引用异常等方向,输出带证据定位的 findings / issues / HTML 报告。

两个产品面:

入口 说明
交互 agent manusift 启动独立 TUI;对话式筛查,/screen <pdf> 触发全管线
批处理 CLI manusift screen paper.pdf --no-llm;完全离线、无需 API key,适合脚本与批量

架构:交互层基于 pi SDK 构建独立 agent (非 fork),检测内核为 Python;两者经 JSON-lines stdio 桥 (manusift toolserver)对接,agent 侧可调用全部 ~82 个领域工具

ManuSift 输出的是筛查信号(screening signals),不构成学术不端认定。


安装与使用

要求 Python ≥ 3.10(推荐 3.11);Windows / Linux / macOS。

git clone https://github.com/WuP1ao0/ManuSift.git
cd ManuSift

python -m venv .venv
# Windows:      .venv\Scripts\activate
# Linux/macOS:  source .venv/bin/activate
pip install -e .

python scripts/install_smoke.py    # 安装自检

# 离线批处理(无需 key)
manusift screen evals/fixtures/clean_academic.pdf --no-llm --suites fast --workspace ./my_jobs

产物布局

<workspace>/<trace_id>/
├── inputs/       # 原始 PDF 与伴随数据
├── steps/        # 逐检测器检查点
└── output/
    ├── findings.json            # 校准后 findings
    ├── issues.json              # 聚合后的复核条目
    ├── report.html              # HTML 总结
    └── investigation_pairs.*    # 主调查视图

建议显式指定 --workspace;缺省时产物位于 data/jobs/<trace_id>/

可选依赖

pip install -e ".[dev]"   # pytest + ruff
pip install -e ".[ocr]"   # EasyOCR + torch(约 2GB):图内表格 OCR 类检测器

批处理 LLM 润色:复制 .env.example.env,配置 MANUSIFT_OPENAI_API_KEYMANUSIFT_ANTHROPIC_API_KEY 后省略 --no-llm。 无 key 时管线仍完整执行,llm_report.* 为空壳。报告默认中文,--lang en 切换英文。


检测能力

方向 检测项
图像取证 多哈希复用(pHash/aHash/dHash)、SIFT copy-move、翻转/旋转匹配、凝胶接缝、panel + SSIM、页面栅格、噪声/ELA、AI 生成图探针
表格与统计 Benford、重复/近重复行、跨表复制、固定差/固定比、小数尾偏置、GRIM/GRIMMER、DEBIT、statcheck 式 t/F/χ²/z/r 与 p 值复算
图文交叉 柱状图几何提取与正文数值比对、森林图 CI 规则
文本与元数据 扭曲措辞(5,802 条词典)、论文工厂信号、PDF 元数据、参考文献重复/冲突
外部核验(选配) Crossref / OpenAlex 撤稿查询 / 数据可用性链接核验(带缓存,支持 CI 离线回放)
分诊 校准 + issue 聚合,high/medium/low 分级,严格控制误报

计数口径:注册检测器 52,离线管线运行 44(其余 8 个由 agent 按需调用); agent 工具面 ~82 = 检测器工具 + ingest / 报告 / 任务管理等辅助工具。 可通过 manusift toolserver --list-tools 查验。


架构

manusift  (独立 TUI,pi SDK,agent/bin/manusift-agent.mjs)
   │  定制系统提示词;默认只读工具面(--dev 开放 bash/edit/write)
   ▼
.pi/extensions/manusift/          桥扩展:/screen、调用去重护栏、~82 工具注册
   ▼
python -m manusift.toolserver     JSON-lines stdio 桥
   ▼
Python 检测内核:ingest → 44 检测器并行 → 校准/聚合 → 报告

批处理 manusift screen 直接调用检测内核,不经过 agent 层。

其它入口:manusift-workspace(本地任务浏览器)、 python -m uvicorn manusift.web.app:app(仅回环地址的本地 HTTP API)。

扩展检测器

# manusift/detectors/my_detector.py
from .base import DetectorResult
from ..contracts import ParsedDoc

class MyDetector:
    """一句话描述(同时用于 agent 工具列表)。"""
    name = "my_detector"

    def run(self, doc: ParsedDoc) -> DetectorResult:
        return DetectorResult(detector=self.name, ok=True, findings=[], duration_ms=1)

manusift/detectors/__init__.py 注册,或通过 entry_points 以第三方插件 形式发布;注册后自动进入 agent 工具面。


配置

统一前缀 MANUSIFT_,完整清单见 manusift/config.py

变量 默认 说明
MANUSIFT_WORKSPACE_DIR ./data/jobs 任务根目录(等价 --workspace
MANUSIFT_DETECTOR_WORKERS 4 检测器并行度(1 = 串行)
MANUSIFT_REPORT_LANGUAGE zh 报告语言 zh / en
MANUSIFT_OPENAI_API_KEY 未设 批处理 LLM 润色(可选)
MANUSIFT_PYTHON 自动探测 .venv agent 桥使用的 Python 解释器
MANUSIFT_PI 未设 强制以裸 pi 方式启动(跳过独立 agent)

文档

文档 内容
docs/pi-agent.md agent 安装、/screen、排障
docs/DETECTOR_LAYERS.md 检测器三层归属(管线/注册表/排除)
docs/REPORT_PATH.md 报告主链路(investigation_pairs)
docs/pubpeer_100_fraud_methods.md PubPeer 100 类手法与检测对照
docs/SECURITY.md 安全说明

开发

pip install -e ".[dev]"
python -m pytest -q
python -m ruff check manusift tests

python scripts/ci_benchmark_gate.py --skip-run   # 基准门禁(校验已存产物)

基准位于 benchmarks/:真实撤稿案 core recall 保持 1.0,负对照 high 误报为 0。 修改检测器前请阅读 docs/DETECTOR_LAYERS.md,改动后运行门禁回归。


许可与社区

MIT(LICENSE)· CONTRIBUTING · CODE_OF_CONDUCT · SECURITY · CHANGELOG · CITATION

免责声明

ManuSift 为筛查辅助工具,输出供人工复核的信号,不构成对学术不端的法律或 制度性认定,不能替代编辑、机构与领域专家的审查。

About

Screen scholarly PDFs and Source Data for integrity red flags—image reuse, table anomalies, metadata—offline CLI and MCP. No API key required.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages