AravindB98/verifact

GitHub: AravindB98/verifact

VeriFact 是一个开源的信息可信度评估引擎,通过来源溯源、主张验证、来源声誉和操纵信号等多维度分析,帮助用户判断新闻、网页和社交媒体内容的可信度。

Stars: 0 | Forks: 0

# 🛡️ VeriFact ### 先验证,再信任。 **一个用于新闻、网页内容和社交媒体的开源可信度引擎 —— 来源溯源、主张验证、来源声誉和操纵信号, 附带您可以自行核查的证据。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/AravindB98/verifact/actions/workflows/ci.yml) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](pyproject.toml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) [![GitHub stars](https://img.shields.io/github/stars/AravindB98/verifact?style=social)](https://github.com/AravindB98/verifact/stargazers) ### 🌐 **[体验在线演示 → aravindb98.github.io/verifact](https://aravindb98.github.io/verifact/)** — 粘贴链接、X 帖子或 WhatsApp 转发内容。无需安装。
## 为什么选择 VeriFact? 虚假信息的传播速度远超事实核查人员。我们大多数人在当下都没有 切实可行的方法来回答一个简单的问题:**“我应该信任 这篇文章 / 帖子 / 转发内容吗?”** VeriFact 以软件唯一诚实的方式回答了这个问题 —— 不依赖魔法般的 真假预言机,而是提供**叠加的、透明的证据**: | 信号 | 它回答的问题 | 无需 API 密钥即可工作? | |---|---|---| | 🏛️ **来源声誉** | 这是谁发布的?是通讯社、讽刺网站、已知的虚假信息机构,还是才建立 3 周的伪装域名? | ✅ | | ✍️ **写作风格信号** | 它的*表现*像新闻吗 —— 是否有归属、署名、日期 —— 还是像病毒诱饵(全大写、“被删前速转”)? | ✅ | | 🔍 **主张提取** | 这里的实际可证伪主张是什么? | ✅(启发式) · 🔑 LLM 模式 | | 📚 **事实核查数据库** | Snopes / PolitiFact / AltNews / AFP 是否已经核查过这个? | 🔑 免费 Google 密钥 | | 🌐 **独立印证** | 是否有*任何信誉良好且独立的*来源在报道同样的事情? | ✅(GDELT) · 🔑 配合 Brave/Tavily 效果更好 | | 🖼️ **媒体来源** | 图片是否带有 C2PA 内容凭证?是否有编辑痕迹?它以前在哪里出现过? | ✅ | 每份报告的结尾都会提供带有链接的证据列表 —— **VeriFact 展示了其 工作过程**,并且在信号不足时完全拒绝评分(`insufficient_evidence`)。 没有真相预言机。没有黑盒。 ### 📱 社交媒体帖子与转发 | 输入 | VeriFact 如何处理 | |---|---| | **X / Twitter 链接** | ✅ 通过公共 embed 端点(FixTweet → X syndication)进行完整帖子提取 —— 包括文本、作者、关注者数量。无需登录。 | | **Instagram / Facebook / LinkedIn 链接** | ⚠️ 在公开可获取的情况下提取链接预览(OpenGraph)文本,并明确标记为*部分提取*。需要登录/私密帖子 → 如实报错并提示“请粘贴文本”。 | | **WhatsApp 转发** | 📋 转发内容没有公开的 URL —— 请直接粘贴文本(Text 选项卡 / CLI)。转发风格的病毒式传播特征正是风格分析器要针对的目标。 | | **任何粘贴的文本** | ✅ 完整的风格、主张、事实核查和印证分析。 | 对于社交媒体帖子,*平台*在评分中会被刻意降低权重 —— 任何人都可以在 X 上发帖;发布者和印证信息才是关键。 ## ✨ 三种使用方式 **1. Web UI** —— 粘贴链接或可疑的 WhatsApp 转发内容: ``` pip install git+https://github.com/AravindB98/verifact verifact serve # → open http://127.0.0.1:8000 ``` **2. CLI** —— 适合终端用户和脚本: ``` verifact analyze https://example-news.com/big-story verifact analyze "Scientists CONFIRM this one weird trick cures everything!!!" verifact analyze suspicious_photo.jpg --caption "flood in Chennai yesterday" verifact analyze --json # full machine-readable report ``` **3. Chrome 扩展** —— 一键核查您正在阅读的页面: 通过 `chrome://extensions` 加载 `extension/` → *开发者模式* → *加载已解压的扩展程序*(它会与您本地的 `verifact serve` 通信)。 或者在 Docker 中运行所有内容: ``` docker compose up # → http://127.0.0.1:8000 ``` ## 🖥️ 报告示例 ``` ╭─────────────────────────── VeriFact v0.1.0 ───────────────────────────╮ │ 🚨 Very low credibility 22.4/100 (confidence 71%) │ │ │ │ 3 red flag(s). Strongest signal — source reputation: │ │ newsbreaking-24.xyz is not a recognized outlet; registered 41 days │ │ ago; judge by corroboration, not brand. │ ╰───────────────────────────────────────────────────────────────────────╯ Signal Score Details Source reputation 15 Very new domain, cheap TLD, no reputation record Writing-style signals 31 Sensational phrasing (4 hits), no attribution, pressure to share Claim extraction 60 3 check-worthy claims extracted Independent corroboration 30 No independent coverage found Fact-check databases skip No API key configured (free key available) ``` ## ⚙️ 配置(均为可选) VeriFact 奉行**无密钥优先**原则:开箱即用。API 密钥用于解锁更深度的功能 —— 将 `.env.example` 复制为 `.env`: | 变量 | 解锁内容 | 成本 | |---|---|---| | `VERIFACT_ANTHROPIC_API_KEY` *或* `VERIFACT_OPENAI_API_KEY` | LLM 主张提取与推理 | 付费 | | `VERIFACT_GOOGLE_FACTCHECK_API_KEY` | 全局 ClaimReview 事实核查查询 | **免费** | | `VERIFACT_BRAVE_API_KEY` *或* `VERIFACT_TAVILY_API_KEY` | 实时印证搜索 | 免费额度 | 被跳过的分析器都会被透明地报告出来 —— 绝不会默默伪造。 ## 🧠 评分机制 对所有已产生评分的信号进行加权、置信度调节后的平均值计算,并内置了两条诚信规则: 1. **需要 ≥2 个评分信号**,否则判定结果为 `insufficient_evidence`。 2. **已知不良来源防护**:高置信度的“这是被标记的虚假信息机构 / 经事实核查为假”的信号,会将总分上限锁定在 30 —— 优美的文法救不了已知的骗子。 在 [`docs/architecture.md`](docs/architecture.md) 中阅读完整设计。 ## 🗺️ 路线图 - [x] ~~社交媒体帖子深链接(X/Twitter + OpenGraph 回退)~~ — 已在 v0.2.0 中发布 - [x] ~~公开演示网站~~ — [已在 GitHub Pages 上线](https://aravindb98.github.io/verifact/) - [ ] Telegram 公共频道与 YouTube 文本记录 - [ ] AI 图像检测集成 + C2PA 签名验证 UI - [ ] 多语言煽动性词汇包(印地语、泰米尔语、西班牙语、PT-BR…) - [ ] 传播分析 —— 是谁最先放大了这条信息? - [ ] 在 Chrome Web Store / Firefox Add-ons 上发布浏览器扩展 - [ ] 主张级别的印证矩阵(针对每个主张搜索,而非针对整篇文章) 想早日实现其中某项功能?**[Fork 仓库](https://github.com/AravindB98/verifact/fork)**,认领一个 issue,然后提交 PR —— 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## ⚖️ 诚实的局限性 - VeriFact 评估的是**可信度,而非真相**。一个粗制滥造的博客可能是对的; 一个老牌媒体也可能出错。 - 突发新闻往往暂时*还*没有印证信息 —— VeriFact 会回答 “当前无法验证”,这是正确的答案,而不是 bug。 - 如今 AI 生成的*文本*基本上是无法检测的;我们不会 假装并非如此。 - 来源列表经过精心整理且受引用限制,但本质上是不完整的 —— 提交附带证据的 PR 是解决之道。 ## 📄 许可证 [Apache-2.0](LICENSE) © 2026 Aravind Balaji
标签:Python, 事实核查, 信息可信度分析, 内核驱动漏洞利用, 无后门, 舆情分析, 虚假信息检测, 请求拦截, 逆向工具