test(cluster): 支持固定成功候选执行文件验收

为跨节点真实文件验收增加可选平台模型筛选,避免同名模型的失效候选掩盖共享文件链路结果。\n\n验证:真实任务 7888708e-a870-4676-bdfc-4021853365a7 由香港 Worker 执行,输入与生成结果在两节点下载的长度和 SHA-256 一致;单 attempt、结算、扣费及回调去重断言通过。
This commit is contained in:
2026-07-29 17:43:34 +08:00
parent de1ce2274b
commit 4eb394bfbd
2 changed files with 5 additions and 1 deletions
+3 -1
View File
@@ -56,6 +56,7 @@ const account = Buffer.from(process.env.E2E_ACCOUNT_B64 || '', 'base64').toStrin
const password = Buffer.from(process.env.E2E_PASSWORD_B64 || '', 'base64').toString('utf8') const password = Buffer.from(process.env.E2E_PASSWORD_B64 || '', 'base64').toString('utf8')
const model = process.env.AI_GATEWAY_E2E_IMAGE_MODEL || 'openai:gpt-image-1' const model = process.env.AI_GATEWAY_E2E_IMAGE_MODEL || 'openai:gpt-image-1'
const imageSize = process.env.AI_GATEWAY_E2E_IMAGE_SIZE || '2048x2048' const imageSize = process.env.AI_GATEWAY_E2E_IMAGE_SIZE || '2048x2048'
const platformModelId = process.env.AI_GATEWAY_E2E_PLATFORM_MODEL_ID || ''
assert(account && password, 'E2E login credentials are unavailable') assert(account && password, 'E2E login credentials are unavailable')
assert(/^\d+x\d+$/.test(imageSize), 'E2E image size is invalid') assert(/^\d+x\d+$/.test(imageSize), 'E2E image size is invalid')
const [imageWidth, imageHeight] = imageSize.split('x').map(Number) const [imageWidth, imageHeight] = imageSize.split('x').map(Number)
@@ -137,7 +138,8 @@ try {
(item) => (item) =>
[item?.modelName, item?.modelAlias].includes(model) && [item?.modelName, item?.modelAlias].includes(model) &&
Array.isArray(item?.modelType) && Array.isArray(item?.modelType) &&
item.modelType.includes('image_edit'), item.modelType.includes('image_edit') &&
(!platformModelId || item.id === platformModelId),
) )
assert(targetModels.length > 0, `no assignable image_edit platform model found for ${model}`) assert(targetModels.length > 0, `no assignable image_edit platform model found for ${model}`)
const resourceMap = new Map() const resourceMap = new Map()
@@ -70,6 +70,8 @@ chmod 0600 "$credentials_file"
"${AI_GATEWAY_E2E_IMAGE_MODEL:-openai:gpt-image-1}" "${AI_GATEWAY_E2E_IMAGE_MODEL:-openai:gpt-image-1}"
printf 'AI_GATEWAY_E2E_IMAGE_SIZE=%s\n' \ printf 'AI_GATEWAY_E2E_IMAGE_SIZE=%s\n' \
"${AI_GATEWAY_E2E_IMAGE_SIZE:-2048x2048}" "${AI_GATEWAY_E2E_IMAGE_SIZE:-2048x2048}"
printf 'AI_GATEWAY_E2E_PLATFORM_MODEL_ID=%s\n' \
"${AI_GATEWAY_E2E_PLATFORM_MODEL_ID:-}"
} >"$credentials_file" } >"$credentials_file"
cluster_scp "$credentials_file" "$CLUSTER_NINGBO_HOST:/root/easyai-cross-node-e2e.env" cluster_scp "$credentials_file" "$CLUSTER_NINGBO_HOST:/root/easyai-cross-node-e2e.env"
cluster_scp "$script_dir/cross-node-file-e2e.mjs" \ cluster_scp "$script_dir/cross-node-file-e2e.mjs" \