-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
162 lines (143 loc) · 6.32 KB
/
Copy path.env.example
File metadata and controls
162 lines (143 loc) · 6.32 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# tiny-bot-cloud-agent 全部配置(单一来源)
# ============================================================
# 复制为 .env 后填入真实值;.env 已在 .gitignore
#
# 加载顺序(高 → 低):
# 1) 进程 env vars (CI、systemd EnvironmentFile 走这条)
# 2) ./.env 文件 (docker-compose env_file 走这条)
# 3) 代码内 defaults (兜底)
#
# 注意:进程里已有的 env var 不会被 .env 覆盖(防被注入的 .env 劫持)
# ============================================================
# 部署配置(Mac 本地用,跑 `make deploy-*` 时读;必填)
# ============================================================
DEPLOY_SERVER=user@your.server.ip
DEPLOY_SERVER_DIR=/path/to/deploy/root
# ============================================================
# LLM(OpenAI 兼容协议,覆盖 MiniMax / OpenAI / DeepSeek 等)
# ============================================================
TB_OPENAI_COMPAT_BASE_URL=https://api.minimaxi.com
TB_OPENAI_COMPAT_API_KEY=
TB_OPENAI_COMPAT_MODEL=MiniMax-M3
# LLM 单次回复 token 上限(讲故事等长答场景)
TB_OPENAI_COMPAT_MAX_TOKENS=512
# ============================================================
# Provider 选择
# ============================================================
# 可选值:
# ASR: mock | aliyun
# LLM: mock | openai_compat
# TTS: mock | aliyun
# v1 默认全部 mock;v1.1 起可切到 aliyun 真接口
TB_PROVIDER_ASR=mock
TB_PROVIDER_LLM=mock
TB_PROVIDER_TTS=mock
# Mock ASR 返回的固定文本(用 fake-device 联调时方便)
# TB_FAKE_ASR_TEXT=今天天气怎么样
# ============================================================
# 阿里云智能语音交互(v1.1:ASR 仍走 aliyun;v1.1.1 起 TTS 可改 minimax)
# ============================================================
# 凭证获取:aliyun.com → 控制台 → 阿里云 → 智能语音交互
# 1) 开通服务
# 2) 创建项目(模型选 Paraformer-realtime-v2)
# 3) 在项目详情页拿到 AppKey
# 4) 在 RAM 访问控制 → 用户 → 创建 AccessKey(保存 AK 和 SK)
#
# REST 一句话识别鉴权(ASR):
# 1) AK/SK 调 CreateToken POP API → nls-meta.{region}.aliyuncs.com
# 2) POST /stream/v1/asr 时带 Header: X-NLS-Token: <token>
# 3) gateway 域名:nls-gateway-{region}.aliyuncs.com
#
# 本地调试 ASR(不依赖 WebSocket):
# TB_PROVIDER_ASR=aliyun # asr-test 会读下方 AK/SK/AppKey
# make asr-test
# # 或:go run ./cmd/asr-test -file testdata/nls-sample-16k.pcm
#
# v1.1 默认 region cn-shanghai;其他 region 改 TB_ALIYUN_REGION
# 阿里云凭证(AK/SK 必填,AppKey 必填)
TB_ALIYUN_KEY=
TB_ALIYUN_SECRET=
TB_ALIYUN_REGION=cn-shanghai
# AppKey(ASR 必填;与 TTS 分离,互不影响)
TB_ALIYUN_ASR_APP_KEY=
# 可选:仅当 TB_PROVIDER_TTS=aliyun 时使用,不会覆盖 ASR AppKey
# TB_ALIYUN_TTS_APP_KEY=
# ============================================================
# MiniMax TTS(v1.1.1:TTS provider 切到这个)
# ============================================================
# v1.1.1 起推荐用 MiniMax 替代 Aliyun CosyVoice(共享 LLM 的 API key,
# 走 tokenPlanPlus 套餐里的语音额度)
#
# 不设 TB_MINIMAX_API_KEY 时,自动 fallback 用 TB_OPENAI_COMPAT_API_KEY
# (v1.1.1 便捷:LLM 和 TTS 用同一个 key 即可)
# TB_MINIMAX_API_KEY=
# TTS 模型(默认 speech-2.8-turbo;其他可用 speech-2.8-hd / speech-2.6-hd 等)
# TB_MINIMAX_TTS_MODEL=speech-2.8-turbo
# TTS 音色(默认 male-qn-qingse 中文男-清澈色;也作为普通话 fallback)
# 完整列表 100+ 个:female-shaonv / male-qn-jingying / 等
# TB_MINIMAX_TTS_VOICE=male-qn-qingse
# 按语种切换音色(MiniMax 系统音色 ID)
# TB_MINIMAX_TTS_VOICE_ZH=Chinese (Mandarin)_Lyrical_Voice
# TB_MINIMAX_TTS_LANG_BOOST_ZH=Chinese
# TB_MINIMAX_TTS_VOICE_YUE=Cantonese_GentleLady
# TB_MINIMAX_TTS_LANG_BOOST_YUE=Chinese,Yue
# TB_MINIMAX_TTS_VOICE_EN=English_Graceful_Lady
# TB_MINIMAX_TTS_LANG_BOOST_EN=English
# TTS 输出(默认 pcm 16kHz;ws 协议契约就是 PCM 16k16 mono)
# TB_MINIMAX_TTS_FORMAT=pcm
# TB_MINIMAX_TTS_SAMPLE_RATE=16000
# ============================================================
# HTTP 服务
# ============================================================
TB_AGENT_ADDR=:5678
TB_WS_PATH=/ws
TB_HEALTHZ_ENABLED=true
TB_PPROF_ENABLED=false
TB_MAX_FRAME_BYTES=1048576 # 1 MiB
TB_WS_PING_INTERVAL=20s
TB_WS_IDLE_TIMEOUT=60s
# Demo 静态页(默认开启;目录自动探测 ./demo 或 /opt/tiny-bot/demo)
# TB_DEMO_ENABLED=true
# TB_DEMO_DIR=./demo
# Workspace 在线编辑 API(/demo/workspace.html);空=禁用 API
# TB_WORKSPACE_EDITOR_TOKEN=change-me
# 可选 HTTPS(手机 demo 麦克风必需,三选一):
#
# 部署 profile(make deploy 默认 https-selfsigned;none=仅 HTTP:5678;tunnel=Cloudflare 临时 HTTPS)
TB_COMPOSE_PROFILE=https-selfsigned
# 自签 HTTPS 证书 SAN(手机访问 https://此IP/demo/)
# TB_COMPOSE_PROFILE=https-selfsigned 时必填,无默认值
TB_PUBLIC_IP=
#
# 有域名 Let's Encrypt(TB_COMPOSE_PROFILE=https + 下面两项):
# TB_PUBLIC_DOMAIN=demo.example.com
# CADDY_EMAIL=you@example.com
# ============================================================
# 存储
# ============================================================
TB_DB_PATH=/opt/tiny-bot/data/tiny-bot.db
TB_WORKSPACE_ROOT=/opt/tiny-bot/workspace
# ============================================================
# Agent 行为
# ============================================================
TB_AGENT_MAX_RESPONSE_CHARS=600
TB_AGENT_HISTORY_TURNS=20
TB_AGENT_MEMORY_RECALL_K=5
TB_AGENT_MEMORY_LOOKBACK_DAYS=7
# 巩固事实条数上限(facts.md);超出删最旧
TB_AGENT_FACTS_MAX=80
# 单轮 turn 超时(含多步 tool);默认 120s
TB_AGENT_TURN_TIMEOUT=120s
# tool 循环最大轮数;默认 8
TB_AGENT_MAX_TOOL_ROUNDS=8
# code.run 超时;默认 15s
TB_CODE_RUN_TIMEOUT=15s
# Python 解释器路径;默认 python3(Alpine 镜像已装)
TB_CODE_PYTHON_BIN=python3
# 每设备每日 LLM token 上限(in+out 合计);0 = 不限制
TB_AGENT_DAILY_TOKEN_CAP=200000
# ============================================================
# 日志
# ============================================================
TB_LOG_LEVEL=info # debug | info | warn | error
TB_LOG_FORMAT=json # json | text