Oransim 是一个面向营销团队的开源因果仿真引擎,核心目标是在实际花钱之前,对营销活动进行预测、反事实推演与因果审计。
用途 Oransim 用于营销活动的因果数字孪生模拟。它让团队能够预测活动 ROI、运行反事实“假设”场景(更换 KOL、重新分配预算、切换平台),并通过透明的 64 节点因果图审计每一次预测。
主要能力
- 预投放 ROI 排名:覆盖创意 × KOL × 预算组合。
- 投放中 do() 算子推演:例如第 3 天更换 KOL,查看 14 天路径差异。
- 事后反事实分析:例如“如果当时投小红书而不是抖音会怎样”。
- 基于 LLM 的“灵魂人设”(soul personas),支持 100 万以上虚拟消费者智能体。
- 因果神经 Hawkes 过程(Causal Neural Hawkes Process)用于时间级联模拟。
- 每臂反事实头(TARNet / Dragonnet 架构)。
安装 代码仓库:https://github.com/OranAi-Ltd/oransim.git
git clone https://github.com/OranAi-Ltd/oransim.git cd oransim pip install -e '.[dev]'
启动后端(mock 模式,无需 API key) LLM_MODE=mock python -m uvicorn oransim.api:app --port 8001
启动后端(真实 LLM 管线)
LLM_MODE=api
LLM_API_KEY=$YOUR_LLM_API_KEY
LLM_MODEL=gpt-4o
python -m uvicorn oransim.api:app --port 8001
启动前端 python -m http.server 8090 --directory frontend
打开 http://localhost:8090
配置 所有配置通过环境变量完成(参见 .env.example):
- LLM_MODE:"mock"(确定性桩)或 "api"(真实 LLM)
- LLM_PROVIDER:openai(默认)、anthropic、gemini、qwen
- LLM_API_KEY:API 密钥(也接受 OPENAI_API_KEY、ANTHROPIC_API_KEY 等提供商专属变量)
- LLM_MODEL:模型名称
- LLM_BASE_URL:自定义基础 URL(DeepSeek、vLLM 等)
提供商快速参考:
- OpenAI:LLM_PROVIDER=openai,LLM_BASE_URL=https://api.openai.com/v1,示例模型 gpt-4o
- DeepSeek:LLM_PROVIDER=openai,LLM_BASE_URL=https://api.deepseek.com/v1,示例模型 deepseek-chat
- vLLM(本地):LLM_PROVIDER=openai,LLM_BASE_URL=http://localhost:8000/v1,任意模型
- Anthropic:LLM_PROVIDER=anthropic,默认 base URL,示例模型 claude-sonnet-4-6
- Gemini:LLM_PROVIDER=gemini,默认 base URL,示例模型 gemini-2.5-flash
- Qwen:LLM_PROVIDER=qwen,默认 base URL,示例模型 qwen-plus
主要 API 端点 所有端点位于 http://localhost:8001。
POST /api/predict — 运行活动模拟 payload 包含 campaign(name、platform、budget、duration_days、creatives、kols、budget_split)、mode("fast" 分位数基线或 "full" LLM 智能体模拟)、n_simulations。返回 roi 的 p50、p35、p65 以及 causal_path。
GET /api/graph/inspect — 审计因果图 返回节点数(64)与边数(117),可遍历从预算分配到购买意图的路径。
POST /api/sandbox/counterfactual — 投放中 KOL 更换 传入 base_campaign_id、intervention(do 中指定 remove/add KOL、day、budget_realloc)、rollout_days。返回 roi_diff、trajectory_diff、attribution。
POST /api/sandbox/postmortem — 平台反事实 传入 actuals(campaign_id、spend、observed_roi)与 counterfactual_alloc。返回 counterfactual_roi 与 delta。
GET /api/adapters — 列出可用平台适配器 返回如 ["xhs_v1", "tiktok_agent", "douyin", ...]。
Python SDK 直接使用引擎 可从 oransim.world_model 导入 AgentSociety,从 oransim.causal 导入 CausalGraph、do_operator,从 oransim.diffusion 导入 HawkesRollout。流程为:构建因果图、初始化虚拟消费者社会、定义活动、运行基线模拟、应用 do() 算子干预并对比反事实结果。
预投放 ROI 排名 使用 itertools.product 遍历创意、KOL 列表与预算组合,对每个组合运行 HawkesRollout,收集 roi_p35、roi_p50、roi_p65,并用 pandas 排序取前 5。
常见模式
- Mock 模式用于 CI / 测试:设置 LLM_MODE=mock,所有 LLM 调用返回确定性桩,快速、免费、可复现。
- 检查后端是否处于 mock 模式:请求 /health,若 llm_mode 为 mock 则提示警告。
- 检查预测的因果路径:遍历 result["causal_path"] 打印节点 id、weight、layer。
- 加载 LightGBM 分位数基线(fast 模式):从 models/lgbm_quantile_baseline.pkl 加载,特征向量为 [budget, n_kols, avg_fans, duration_days, platform_enc],预测 p35、p50、p65。
项目结构 oransim/ 下包含:api.py(FastAPI 应用)、api_routers/(predict、sandbox、graph、adapters 路由)、causal/(SCM、do() 算子、64 节点图、Pearl 三步)、world_model/(AgentSociety、IPF 人口合成、灵魂人设)、diffusion/(因果神经 Hawkes 过程 14 天推演)、adapters/(平台适配器);frontend/(index.html 与模块化 JS);configs/default_graph.yaml(64 节点 / 117 边因果图定义);models/lgbm_quantile_baseline.pkl;data/(21k 笔记开源演示语料);docs/en/quickstart.md;.env.example。
故障排查
- 即使设置了 API key 后端仍返回 mock 数据:检查前端黄色横幅,确认环境变量已导出(echo $LLM_MODE 应为 "api",echo $LLM_API_KEY 应非空),设置后需重启服务器。
- ModuleNotFoundError: oransim:在仓库根目录以可编辑模式安装 pip install -e '.[dev]'。
- 模拟超时(> 120s):减少智能体数量或使用 fast 模式,如 {"mode": "fast", "n_simulations": 30},或减小 AgentSociety 规模。
- 浏览器调用 API 出现 CORS 错误:FastAPI 应用已为 localhost:8090 配置 CORS 中间件;若使用其他端口,可更新 origins 列表或设置 CORS_ORIGINS。
- 反事实结果与基线相同:mock 模式下属预期,桩是确定性的;切换到 LLM_MODE=api 才能让基线与干预臂产生真实差异。
企业数据访问 开源语料为 21k 笔记。生产规模数据(430 万+ 小红书笔记、210 万+ 创作者)可通过 datacenter.oran.cn 浏览,或联系 cto@orannai.com。
关键概念
- do() 算子:Pearl 的干预算子——将变量设为某值,切断其入边。
- 灵魂人设(Soul persona):基于 LLM 的智能体人格,读取真实创意并决定互动。
- Hawkes 推演:自激点过程,模拟 14 天内社交分享的级联。
- P35/P50/P65:ROI 的置信区间,不是点估计,始终是分布。
- KOL 层级:Top(>100 万粉丝)、Mid(5 万–100 万)、KOC(1 千–5 万)、长尾(<1 千)。
- fast 模式:LightGBM 分位数基线,数秒完成,无 LLM 调用。
- full 模式:带 LLM 灵魂人设的完整智能体模拟,需数分钟,要求 LLM_MODE=api。
适用场景 适用于营销团队在投放前评估创意、KOL 与预算组合的 ROI,投放中评估更换 KOL 等干预的影响,以及投放后进行平台与预算分配的反事实复盘。
限制 开源语料规模为 21k 笔记,生产级数据需另行获取;mock 模式下反事实结果与基线一致;full 模式依赖 LLM API 且耗时较长;模拟可能超时,需降低智能体数量或使用 fast 模式。