Skip to content

🔍 Truth Lens: An AI-powered Chrome extension for instant fact-checking. Built with DeepSeek V3, Tavily Search, and Plasmo.

License

Notifications You must be signed in to change notification settings

NathanJCW/truth-lens

Repository files navigation

Truth Lens - AI 驱动的信息真伪校验插件

🎯 项目简介

Truth Lens 是一款基于 DeepSeek AI 的浏览器扩展,用户可通过划词触发实时分析,验证互联网信息的真实性。


🏗️ 技术栈

前端(Extension)

  • 框架: Plasmo + React + TypeScript
  • UI: Tailwind CSS + Framer Motion
  • 图标: lucide-react

后端(API Proxy)

  • 框架: Next.js 15 (App Router)
  • AI SDK: Vercel AI SDK
  • 大模型: DeepSeek-V3 (deepseek-chat)
  • 搜索引擎: Tavily AI Search

🚀 快速开始

1. 环境要求

  • Node.js: v20 (LTS) - 强制要求,不支持 v22+
  • 包管理器: pnpm

2. 安装依赖

# 使用 nvm 切换到 Node v20
nvm use 20

# 安装依赖
pnpm install

3. 配置环境变量

# 在 apps/web 目录下创建 .env.local
cd apps/web
cp .env.local.example .env.local

# 编辑 .env.local,填入你的 API Key
DEEPSEEK_API_KEY=your_deepseek_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here

获取 API Key

4. 启动开发环境

# 方式 1: 同时启动插件和服务端
pnpm dev

# 方式 2: 分别启动
pnpm dev:web   # 启动 Next.js 后端 (localhost:3000)
pnpm dev:ext   # 启动 Plasmo 插件开发环境

5. 加载浏览器插件

  1. 打开 Chrome,访问 chrome://extensions/
  2. 开启右上角的 "开发者模式"
  3. 点击 "加载已解压的扩展程序"
  4. 选择 apps/extension/build/chrome-mv3-dev 目录

📖 使用方式

  1. 在任意网页选中一段文字(至少 10 个字符)
  2. 等待 300ms 后自动弹出 Truth Lens 悬浮窗
  3. 点击 "🔍 立即验证" 按钮
  4. AI 将实时流式输出分析结果

🛠️ 故障排查

问题 1: pnpm dev 启动失败,报 Sharp 相关错误

原因: Node 版本不对或缓存残留

解决方案:

# 1. 确认 Node 版本
node -v  # 必须是 v20.x

# 2. 如果不是,切换版本
nvm use 20

# 3. 执行核打击清理
rm -rf node_modules apps/*/node_modules pnpm-lock.yaml

# 4. 重新安装
pnpm install

问题 2: 插件点击验证后报错

可能原因:

  1. 后端未启动
  2. API Key 未配置
  3. 网络问题

检查步骤:

# 1. 确认后端运行
curl http://localhost:3000/api/analyze

# 2. 检查环境变量
cat apps/web/.env.local

# 3. 查看后端日志
# 在终端查看 pnpm dev:web 的输出

问题 3: 分析结果为空或格式异常

原因: DeepSeek API 返回格式不符合预期

临时方案: 检查 Prompt 是否正确,或降低 temperature 参数


📁 项目结构

truth-lens-clean/
├── apps/
│   ├── extension/          # Plasmo 插件端
│   │   ├── content.tsx     # Content Script 主逻辑
│   │   ├── popup.tsx       # 插件弹窗页面
│   │   └── style.css       # 样式文件
│   └── web/                # Next.js 后端
│       ├── app/
│       │   └── api/
│       │       └── analyze/
│       │           └── route.ts  # 分析接口
│       └── lib/
│           ├── ai-config.ts      # DeepSeek 配置
│           ├── prompts.ts        # AI Prompt 模板
│           └── tavily.ts         # 搜索引擎集成
├── packages/
│   └── ts-config/          # 共享 TypeScript 配置
├── pnpm-workspace.yaml     # Monorepo 配置
└── README.md

🔐 安全说明

  • 所有 API Key 存储在后端 .env.local,前端无法访问
  • 插件仅能访问 localhost:3000 和必要的外部资源
  • 生产环境需要配置请求频率限制(防止滥用)

📝 开发计划

  • 基础架构搭建
  • DeepSeek V3 集成
  • Tavily 搜索引擎集成
  • 划词检测 + 流式展示
  • 信源可信度评级算法优化
  • 历史记录功能(Chrome Storage)
  • 用户反馈机制
  • 生产环境部署

💡 贡献指南

欢迎提交 Issue 和 Pull Request!


📄 开源协议

MIT License

About

🔍 Truth Lens: An AI-powered Chrome extension for instant fact-checking. Built with DeepSeek V3, Tavily Search, and Plasmo.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published