- Node 渲染器(three r162 + headless-gl + pngjs):gen-templates 程序化生成简化人体 GLB(6 脸 × 6 体 × 5 肤色),render.js 绕 Y 轴 36 帧 256x512 白底渲染 - agent/render.go:RenderAvatarFrames 帧目录缓存复用 + GLB 缺失自动生成 + 15 分钟超时;render.enabled/node_bin 配置,node_bin 路径缺失回退 PATH - Build 异步化:写库 processing → goroutine 渲染 → done+frames_url / failed+error(客户端降级静态占位);修 BodyMeasurement 无记录时 Build 报错 - avatar_model 容错 ALTER 加 frames_url 列;AvatarGetRes 透传 frames_url - TDD:renderJob 状态机测试(成功 done / 失败 failed 降级) - 客户端 avatar_viewer 帧轮播(120ms × 36 帧,errorBuilder 降级占位),avatar_provider 解析 frames_url - Dockerfile 双阶段:node:20-alpine 编译 gl 原生模块 + 运行时带 nodejs/libglvnd
59 lines
1.3 KiB
YAML
59 lines
1.3 KiB
YAML
database:
|
||
default:
|
||
name: slogan.db
|
||
type: sqlite
|
||
debug: false
|
||
cache:
|
||
ttl: 60
|
||
server:
|
||
address: :3007
|
||
name: slogan
|
||
workerId: 1
|
||
clientMaxBodySize: 209715200
|
||
requestTimeout: 3000
|
||
chat:
|
||
timeout: 300
|
||
max_retries: 3
|
||
|
||
# 和风天气 API Key(v7,免费版)
|
||
weather:
|
||
qweather_key: ""
|
||
qweather_base: "https://devapi.qweather.com"
|
||
|
||
# 高德地理编码 Key
|
||
geo:
|
||
amap_key: ""
|
||
amap_base: "https://restapi.amap.com"
|
||
|
||
# 图像生成供应商配置(空则使用 mock)
|
||
imagegen:
|
||
supplier: "mock" # mock | wanx
|
||
wanx_api_key: ""
|
||
wanx_model: "wanx-v2"
|
||
|
||
# 大模型配置(OpenAI 兼容,如通义/DeepSeek/Kimi)
|
||
llm:
|
||
base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
|
||
api_key: ""
|
||
model_name: "qwen-plus"
|
||
max_tokens: 4096
|
||
temperature: 0.8
|
||
|
||
# 支付(虎皮棋聚合支付,key 为空则支付功能降级关闭)
|
||
payment:
|
||
xunhu_appid: ""
|
||
xunhu_appsecret: ""
|
||
notify_url: "http://localhost:3007/member/order/notify" # 生产需公网可达
|
||
channel: "alipay,wechat"
|
||
api_base: "https://api.xunhupay.com"
|
||
|
||
# 广告激励限频(自然日)
|
||
ad:
|
||
limit_effect_extra: 2
|
||
limit_vip_trial: 1
|
||
|
||
# 3D 化身预渲染(Node + headless-gl,node_bin 需指向 gl 有预编译二进制的 Node 版本)
|
||
render:
|
||
enabled: true
|
||
node_bin: "/Users/zhangbin/.nvm/versions/node/v18.20.4/bin/node"
|