NarcoLink-ai
Celestial317/NarcoLink-ai加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,当你刷到一条看似普通的社交媒体动态——配图是一张雪山风景,文案写着"刚到的新货,品质一流"。传统的关键词过滤会直接放过它,但 NarcoLinkAI 能读出更深层的信息:"snow"在这个语境里很可能不是雪山,而是一种毒品的暗语。这,就是 NarcoLinkAI 想要解决的问题。
NarcoLinkAI 诞生于 2024 年印度 CDTI Jaipur 组织的 Shield 1.0 Hackathon,由 Soumya Sourav Das、Sudhanshu Shekhar 和 Devyanshi Bansal 三位开发者共同完成。这是一个专门为印度 BPRD(印度警察研究与发展局)设计的执法辅助工具,目标是对抗社交媒体和暗网上的毒品交易活动。
传统执法部门依赖关键词匹配来发现涉毒内容,但毒贩早已学会用"暗号"——比如用" snow"指代可卡因、用"cookies"指代大麻。关键词系统对此束手无策。NarcoLinkAI 的核心创新,就是用 AI 来"解码"这些隐晦的语言,同时支持图文多模态分析,覆盖那些单靠文字无法判断的模糊场景。
项目团队提出了一个巧妙的思路:既然毒品暗语的本质是"普通词汇在非法语境下产生了特殊含义",那就用向量空间来捕捉这种转换。他们将词汇映射到高维向量空间,用公式 V_final = V_word - V_innocent + V_criminal 对词向量进行"炼金"——先剥离词汇的正常语义,再注入犯罪语境的特征,从而在向量空间中识别出那些偏离正常轨道的高风险词汇。
这套机制依赖 all-MiniLM-L6-v2 sentence-transformer 模型(384 维向量)进行语义编码,同时通过 LLM(Xiaomi Mimo,通过 OpenRouter 调用)动态提取文本中的潜在暗语候选词,再逐一送入炼金公式分析。
单独的文本分析容易被"纯文字"场景迷惑——比如一条带图的动态,图片本身可能才是真正的"证据"。NarcoLinkAI 的多模态模块使用 ResNet50 提取图片特征(2048 维向量),配合 nvidia/nemotron-nano-12b-v2-vl 多模态模型理解图文联合语义。例如:一张雪山风景照配"Fresh snow"的文字,文本分析可能无法确定,但多模态模型能识别出"雪白粉末"的视觉特征与"新货"文本的组合具有高风险。
对于大规模内容扫描,逐条调用 LLM 成本过高。项目在 bloom_filter.py 中实现了自定义布隆过滤器(Bloom Filter),利用多个哈希函数对输入文本进行快速初筛。布隆过滤器会先判断文本是否包含已知毒品相关词汇——若判断为"不存在",则直接放行;若判断为"可能存在",才会触发后续昂贵的 LLM 分析流程,从而大幅降低计算成本。
NarcoLinkAI 还包含一个独立的暗网情报提取工具 Zoro,它是一个基于 LangChain 的自主 Agent,专门用于在暗网(.onion 站点)进行开源情报(OSINT)收集。Zoro 的工作流程包括四个阶段:
Zoro 运行需要本机安装 Tor Browser,这是暗网访问的必备条件。
值得注意的是,项目在 noise.py 中实现了一个门控拉普拉斯噪声注入器(Gated Laplace Noise Injector):
Output = x + (Sigmoid(Tanh(x)) * LaplaceNoise)
这个噪声引擎与动态图构建器结合,用于在图数据结构中生成"干扰节点",模拟真实社交网络中信息传播的模糊性和不确定性——类似于差分隐私的思想,防止情报系统被对抗性输入轻易探测。
| 层级 | 技术选型 |
|---|---|
| 后端 API | FastAPI + Uvicorn |
| AI/ML 框架 | PyTorch, LangChain, sentence-transformers |
| 前端 | React + TypeScript + Vite + TailwindCSS |
| 多模态模型 | ResNet50(图像)+ nvidia/nemotron-nano-12b-v2-vl(图文) |
| 向量模型 | all-MiniLM-L6-v2 |
| LLM 调用 | OpenRouter API(Xiaomi Mimo, Gemma 等) |
| 暗网爬虫 | Tor (SOCKS5) + BeautifulSoup + Requests |
| 依赖管理 | pip(Python)+ npm(前端) |
项目包含完整的前后端代码,克隆仓库后需要:
后端:cd 进根目录,创建 .env 文件填入 OPENROUTER_API_KEY,然后 python main.py 启动 FastAPI 服务(默认 http://0.0.0.0:8000)。需要 GPU 环境来运行 PyTorch 模型。
前端:cd frontend && npm install && npm run dev,访问 http://localhost:5173 即可看到检测界面。界面提供三个模式:纯文本检测、图片检测、多模态联合检测。
暗网情报提取:单独运行 python zoro.py --help 查看命令行用法,需要 Tor Browser 正在运行。
NarcoLinkAI 是一个黑客松项目,存在一些明显的局限性。首先,它严重依赖 OpenRouter API Key——所有关键推理(炼金分析、风险评估、暗网内容过滤)都调用外部 LLM,这意味着项目并非真正的"本地化"部署。其次,Vector Alchemy 的炼金公式中的 V_innocent 和 V_criminal 向量是硬编码的概念描述字符串,而非从大规模语料中学习到的参数,实际上更接近"语义提示工程"而非真正的语义空间变换,精度有待验证。
此外,项目缺少标准的容器化部署(无 Dockerfile),前后端需要手动安装依赖;ResNet50 模型权重需要手动放置在特定路径(D 盘路径),跨平台移植存在障碍。
NarcoLinkAI 展示了一个有价值的探索方向:将 NLP 多模态能力与开源情报收集结合,用于对抗社交媒体上的新型犯罪。布隆过滤器 + LLM 的分层架构设计在工程上具有参考价值,先用轻量级初筛降低成本,再用强模型做精细判断,是当前 AI 安全应用的主流模式。
虽然项目目前仍处于黑客松原型阶段,但它提出的"向量炼金"思路和多模态联合检测框架,为执法 AI 工具的研发提供了可参考的技术原型。