OSGE(Open Social Graph Explorer)是一个本地优先、源代码开放的非商业社交数据关系图谱研究工具,用于采集公开或已授权的账号数据、构建关系网络、分析节点重要性并生成可交互图谱。
- 多平台公开数据采集
- 平台账号关系图构建
- 评论、回复、转发、提及、关注等关系建模
- 边权重、置信度和证据保留
- PageRank、中心性、社区与加权度分析
- 本地 Web 图谱可视化
- 节点增量采集、隐藏和相邻孤立节点清理
- 账号层与身份容器层分离
Data Source
-> Platform Adapter
-> Storage
-> Graph Builder
-> Analysis Engine
-> Visualization
当前代码结构:
adapters/ 平台 registry、平台 adapter、请求签名、解析和共享 HTTP/session 工具
core/ 数据库、采集编排、归一化、边构建、分析、图谱渲染
web/ FastAPI 本地 Web 服务与图谱 API
scripts/ CLI、服务启动、数据库初始化、图谱构建与导出脚本
database/ 可发布的脱敏 sample database;真实本地数据库不入库
docs/ 架构、数据模型、伦理边界和开发说明
仓库当前未迁移到 backend/、frontend/、crawler/ 目录。文档按现有可运行结构描述,避免为目录命名破坏代码路径。
如果当前 Python 环境允许 pip 安装:
cd OSGE
python -m pip install -r requirements.txt在 Debian、Raspberry Pi OS 等启用 PEP 668 的系统上,系统 Python 可能禁止直接 pip 安装依赖。此时使用虚拟环境或其他已管理的 Python 环境:
python -m venv .venv
.venv/bin/python -m pip install -r requirements.txt运行命令默认使用当前 python。如果未激活虚拟环境但需要使用其中依赖,CLI 命令可用 .venv/bin/python ...,服务脚本可设置 OSGE_PYTHON=.venv/bin/python。
需要平台采集时,确保本机有可用 Chromium。抖音签名依赖 pyexecjs 和本机 JavaScript runtime;小红书签名当前依赖 xhshow。
python scripts/init_db.py默认数据库:
data/database/osge_overlay.db
真实运行数据库不进入 Git。仓库中的脱敏样例库位于:
database/osge_sample.db
scripts/osge_service.sh start打开:
http://127.0.0.1:8010/graph
常用服务命令:
scripts/osge_service.sh status
scripts/osge_service.sh restart
scripts/osge_service.sh stop使用 sample database 启动:
scripts/osge_sample_service.sh startsample 服务默认使用 8011 端口,避免占用正式服务的 8010:
http://127.0.0.1:8011/graph
常用 sample 服务命令:
scripts/osge_sample_service.sh status
scripts/osge_sample_service.sh restart
scripts/osge_sample_service.sh stopsample 启动脚本会优先使用 .venv/bin/python,也可以通过 OSGE_PYTHON=/path/to/python 指定解释器。sample database 保留脱敏后的小红书和抖音图谱数据,用于本地 UI 和图谱功能演示。
python scripts/build_edges.py --db data/database/osge_overlay.db
python scripts/analyze_graph.py --db data/database/osge_overlay.db
python scripts/render_graph.py \
--db data/database/osge_overlay.db \
--platform xiaohongshu \
--output data/processed/osge_graph.htmlWeb 图谱页面可以提交采集任务。CLI 使用统一入口:
python scripts/expand_account.py --platform xiaohongshu --account xiaohongshu:<profile_id>
python scripts/expand_account.py --platform douyin --account douyin:<sec_uid>采集任务复用本地 Chromium CDP profile。当前默认 profile 位于:
${XDG_CACHE_HOME:-$HOME/.cache}/osge-chromium
如果平台 profile 获取失败,先在该 Chromium 窗口中打开对应平台,完成登录或验证,再重试采集。
OSGE 当前处于早期研究原型阶段。
已实现:
- SQLite overlay 数据库
- Xiaohongshu 与 Douyin 最小采集 adapter,已完成本地 profile、post、comment 采集验证
- 平台 registry 与通用 expansion runner
- 账号、帖子、互动、边、证据和节点评分表
- 评论和回复关系的边权重计算
- NetworkX 图分析
- FastAPI 本地 Web 服务
- pyvis / vis-network 图谱渲染
- 基于 registry metadata 的动态图谱平台 UI
待完善:
- 更完整的自动化测试
- 平台 adapter 包结构拆分
- 上游代码和签名资产的再分发权限确认
- 数据删除和审计流程
OSGE 原创代码和文档使用 OSGE Non-Commercial Research License 1.0。
本项目仅允许非商业学习、研究、审计和个人实验用途。禁止用于商业采集、商业画像、监控、数据转售、获客、风控评分、广告营销或竞争情报等场景。
第三方依赖、平台签名资产和参考项目仍适用各自许可证。详见 第三方声明。
OSGE 仅处理公开可访问、已授权或用户自有的数据。
禁止使用本项目:
- 绕过平台权限、登录墙、验证码、限流或其他访问控制
- 采集私人数据、私信、非公开评论、非公开社群或受限资料
- 推断、曝光或追踪真实个人身份
- 进行人肉搜索、骚扰、监控或社工库建设
图谱节点默认表示平台账号,不表示真实世界中的个人。
