合并最新master到画板抠图背景分支

更新本地 master 到 origin/master 后合入当前 feat/BGfilter 分支。

解决决策记录和图片画布 MVP 文档冲突,保留画布 Agent 与 BGFilter 背景色说明。

补齐画布 Agent 调用生图接口时的默认 screenColor=auto 和 segModel=birefnet。
This commit is contained in:
2026-07-06 12:31:36 +00:00
221 changed files with 19875 additions and 1223 deletions
@@ -18,6 +18,12 @@ const checks = [
includes: '--restart-service-after genarrative-external-generation-controller.service',
reason: '生产冷备份恢复 SpacetimeDB 后必须显式拉起外部生成 worker controller。',
},
{
file: 'deploy/systemd/genarrative-api.service',
includes: 'Wants=network-online.target genarrative-external-generation-controller.service',
reason:
'生产 API service 启动时必须弱依赖拉起外部生成 worker controller,避免只恢复 API 后队列无人消费。',
},
{
file: 'deploy/systemd/genarrative-database-backup.service',
includes: 'ExecStart=/usr/bin/node -- /opt/genarrative/current/scripts/database-backup-to-oss.mjs --env-file',
+2 -2
View File
@@ -464,9 +464,9 @@ GENARRATIVE_SPACETIME_POOL_SIZE=2
GENARRATIVE_SPACETIME_PROCEDURE_TIMEOUT_SECONDS=15
GENARRATIVE_LLM_PROVIDER=openai-compatible
GENARRATIVE_LLM_BASE_URL=
GENARRATIVE_LLM_BASE_URL=https://api.vectorengine.cn/v1
GENARRATIVE_LLM_API_KEY=
GENARRATIVE_LLM_MODEL=
GENARRATIVE_LLM_MODEL=gpt-5.4-mini
VECTOR_ENGINE_BASE_URL=
VECTOR_ENGINE_API_KEY=
ALIYUN_OSS_BUCKET=
+8 -8
View File
@@ -83,32 +83,32 @@ const tests = [
method: 'POST',
path: '/v1/chat/completions',
body: {
model: 'gpt-4o',
model: 'gpt-5.4-mini',
messages: [{ role: 'user', content: '回复 ok,不要解释' }],
max_tokens: 10,
},
},
// 3. Responses - Apimart 当前使用的协议
// 3. Responses - 仅作兼容探测,creative_agent 默认走 Chat Completions
{
name: 'POST /v1/responses (Responses)',
method: 'POST',
path: '/v1/responses',
body: {
model: 'gpt-4o',
model: 'gpt-5.4-mini',
input: [
{ role: 'user', content: [{ type: 'input_text', text: '回复 ok,不要解释' }] },
],
},
},
// 4. 测试 gpt-5 (creative_agent 模型)
// 4. 测试 gpt-5.4-mini (creative_agent 模型)
{
name: 'POST /v1/chat/completions (gpt-5, Chat)',
name: 'POST /v1/chat/completions (gpt-5.4-mini, Chat)',
method: 'POST',
path: '/v1/chat/completions',
body: {
model: 'gpt-5',
model: 'gpt-5.4-mini',
messages: [{ role: 'user', content: '回复 ok' }],
max_tokens: 10,
},
@@ -120,7 +120,7 @@ const tests = [
method: 'POST',
path: '/v1/chat/completions',
body: {
model: 'gpt-4o',
model: 'gpt-5.4-mini',
messages: [
{ role: 'system', content: '你是抓大鹅游戏编辑,只返回 JSON。' },
{ role: 'user', content: '题材:水果。请生成 JSON{"gameName":"水果切切乐","items":[{"name":"苹果","itemSize":"中"},{"name":"西瓜","itemSize":"大"}]}' },
@@ -155,7 +155,7 @@ console.log(`=== 结果: ${pass}/${tests.length} 通过, ${fail}/${tests.length}
// 结论
if (pass >= 3) {
console.log('\n✅ VectorEngine 支持 LLM 文本调用,可替代 Apimart。');
console.log(' 将 .env.secrets.local 中 APIMART_BASE_URL 改为 VectorEngine 地址即可。');
console.log(' 将 .env.secrets.local 中 VECTOR_ENGINE_BASE_URL / VECTOR_ENGINE_API_KEY 配好即可。');
} else if (pass <= 1) {
console.log('\n❌ VectorEngine 不支持 LLM 文本调用。');
} else {