-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy path.env.example
More file actions
79 lines (68 loc) · 3.99 KB
/
Copy path.env.example
File metadata and controls
79 lines (68 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# ========== OFFICE ZOO · 环境变量示例 ==========
# 复制此文件到 .env,然后填上自己的 key。
# 严格不要把 .env 提交到任何公开仓库。
# ========== LLM 推理 ==========
# OpenAI 兼容代理(推荐青云聚合 / VectorEngine / 任意 OpenAI 兼容上游)
OPENAI_API_KEY=your_openai_compatible_key_here
OPENAI_BASE_URL=https://api.qingyuntop.top/v1
OPENAI_MODEL=gpt-4o-mini
# v3.5.0 — squad director 专用 model(攒局编剧 5 幕剧的那一次 LLM 调用)。
# 这是产品里最高价值的 LLM call(一次出 1800 token,产出全部 5 幕剧
# 用户截图疯传),值得用最强 model。其他 LLM 路径仍按 OPENAI_MODEL 跑
# 便宜的 gpt-4o-mini。默认 claude-opus-4-7;不可用时通过 SCORING 失败
# fallback 自动降级到 MiniMax-M2 + 模板剧。可选值(看你的 API 上游
# 支持什么 — 用 GET /v1/models 查):claude-opus-4-7 /
# claude-sonnet-4-5-20250929 / claude-sonnet-4-6 / gpt-5 / gpt-5.5 /
# gpt-4.5-turbo / deepseek-r2 等。
SQUAD_DIRECTOR_MODEL=claude-opus-4-7
# v6.51 P2 — A/B 对照 model(仅 `npm -w @furball/server run squad:ab` 用)。
# 把同一桌 roster 同时跑 SQUAD_DIRECTOR_MODEL(control)和这个(variant),
# 两份 5 幕剧本并排打印 + 存 /tmp/squad-ab-{A,B}.json,人工评演出效果后再
# 决定要不要把 SQUAD_DIRECTOR_MODEL 换成更便宜的 sonnet。默认 sonnet。
SQUAD_DIRECTOR_MODEL_B=claude-sonnet-4-7
# v3.7.0 — fired-mode HR dialogue 专用 model(裁了么对话里 HR 的每一句话)。
# HR 回复是用户体验的核心:每局 ~10 个 round-trip,每个 ~400 token,
# 用 premium 模型让 HR 话更精准、archetype weak-spot PUA 更狠。
# 注意:这是高频调用(每个 user turn 都触发一次),premium 模型成本
# 显著高于 gpt-4o-mini。如果在意成本可以改回 gpt-4o-mini 或 deepseek-r2。
# scoring + suggestions 仍走 OPENAI_MODEL 的便宜路径。
FIRED_HR_MODEL=claude-opus-4-7
# 青云聚合(同时用作图像 + TTS 备路)
QINGYUN_API_KEY=your_qingyun_key_here
QINGYUN_BASE_URL=https://api.qingyuntop.top/v1
# ========== Minimax(主路 TTS + LLM 备路 + 图像备路)==========
# 文档:https://platform.minimaxi.com/docs
MINIMAX_API_KEY=your_minimax_key_here
# GroupId 是可选的;部分代理 key 不需要
MINIMAX_GROUP_ID=
# 可选:覆盖默认 model 选型
# MINIMAX_TTS_MODEL=speech-2.8-hd
# MINIMAX_LLM_MODEL=MiniMax-M2
# MINIMAX_IMAGE_URL=https://api.minimaxi.com/v1/image_generation
# ========== 支付 · Stripe (v6.51 P3) ==========
# 全部留空 = 关闭真实支付,前端自动回落到 v1.0 的 demo checkout(只翻
# localStorage 标记,清楚标注"非真实扣款")。要接真支付时:用 Stripe
# 控制台建 2 个订阅 Price(月付/年付),填下面。上线前一律先用 test key
# (sk_test_… / whsec_…)。本服务永远不接触卡号 —— 卡号在 Stripe 托管的
# Checkout 页输入。
# STRIPE_SECRET_KEY=sk_test_xxx
# STRIPE_WEBHOOK_SECRET=whsec_xxx # Stripe CLI / Dashboard webhook 签名密钥
# STRIPE_PRICE_MONTHLY=price_xxx # 月付订阅 Price id
# STRIPE_PRICE_ANNUAL=price_xxx # 年付订阅 Price id
# STRIPE_SUCCESS_URL=https://your-domain/premium?checkout=success
# STRIPE_CANCEL_URL=https://your-domain/premium?checkout=cancel
# ========== 邮件 · 班味 Wrapped 订阅 (v6.51 P4) ==========
# 留空 = 订阅照常入库,但发信走 console 兜底(只打日志,不真发)。要真发
# 数字年终回顾邮件:填 Resend key + 发件人。也可换任意 provider —— 只需改
# services/emailSender.ts 一个函数。
# RESEND_API_KEY=re_xxx
# WRAPPED_FROM_EMAIL=OFFICE ZOO <wrapped@your-domain.com>
# ========== 服务端口 ==========
PORT=3100
WS_PORT=3101
NODE_ENV=development
# ========== Maker / admin (v6.11) ==========
# Talkshow UGC 审核管理员 token. 任意长度 ≥ 16 的随机串. Maker 端 /maker
# 页 fetch /api/talkshow/maker/* 时通过 X-Maker-Token header 验证.
# 不设置 = 关闭 maker 路由 (所有 GET/POST 返回 503).
MAKER_TOKEN=please_set_a_random_string_here_at_least_16_chars