fix(grok): 修复媒体模型请求负载中缺少enable_nsfw和aspect_ratio字段的问题

移除图像模型toolOverrides中冗余的disableNsfwFilter设置,统一在构建请求负载时处理NSFW逻辑。对于非视频的媒体模型,现在会正确添加enable_nsfw字段,并支持从请求体传递aspect_ratio参数。
This commit is contained in:
hex2077 2026-03-08 20:47:34 +08:00
parent 3f3c9e1a45
commit 4715acf5db
2 changed files with 12 additions and 4 deletions

View file

@ -1 +1 @@
2.10.8
2.10.8.1

View file

@ -378,7 +378,7 @@ export class GrokApiService {
const isMediaModel = modelLower.includes('imagine') || modelLower.includes('video') || modelLower.includes('edit');
const isNsfw = isGrokNsfwModel(rawModelId) || requestBody.nsfw === true || requestBody.disableNsfwFilter === true;
return {
const payload = {
"deviceEnvInfo": { "darkModeEnabled": false, "devicePixelRatio": 2, "screenWidth": 2056, "screenHeight": 1329, "viewportWidth": 2056, "viewportHeight": 1083 },
"disableMemory": false, "disableNsfwFilter": isNsfw, "disableSearch": false, "disableSelfHarmShortCircuit": false, "disableTextFollowUps": false,
"enableImageGeneration": isMediaModel, "enableImageStreaming": isMediaModel, "enableSideBySide": true,
@ -387,6 +387,15 @@ export class GrokApiService {
"responseMetadata": { "requestModelDetails": { "modelId": mapping.name }, "modelConfigOverride": modelConfigOverride },
"returnImageBytes": false, "returnRawGrokInXaiRequest": false, "sendFinalMetadata": true, "temporary": true, "toolOverrides": toolOverrides,
};
if (isMediaModel && !modelLower.includes('video')) {
payload.enable_nsfw = isNsfw;
if (requestBody.aspect_ratio || requestBody.aspectRatio) {
payload.aspect_ratio = requestBody.aspect_ratio || requestBody.aspectRatio;
}
}
return payload;
}
async generateContent(model, requestBody) {
@ -545,8 +554,7 @@ export class GrokApiService {
requestBody.toolOverrides = { ...requestBody.toolOverrides, videoGen: true };
}
} else if (isImageModel || isImageEditModel) {
const isNsfw = isGrokNsfwModel(rawModel) || requestBody.nsfw === true || requestBody.disableNsfwFilter === true;
requestBody.toolOverrides = { ...requestBody.toolOverrides, imageGen: isNsfw ? { disableNsfwFilter: true } : true };
requestBody.toolOverrides = { ...requestBody.toolOverrides, imageGen: true };
}
let fileAttachments = requestBody.fileAttachments || [];