fix: force text model for list mode to avoid image model rejection

This commit is contained in:
Codex
2026-09-19 14:46:26 +08:00
parent 937f2b7a3a
commit 944a220939
2 changed files with 24 additions and 1 deletions

17
fix_text_model.py Normal file
View File

@@ -0,0 +1,17 @@
path = r"D:\yingce\open-ai-canvas-main\web\src\pages\canvas\list-mode-generator.ts"
with open(path, "r", encoding="utf-8") as f:
content = f.read()
old = ''' const listConfig = buildGenerationConfig(config, sourceNode, "text");'''
new = ''' // Force text model: strip node.metadata.model so buildGenerationConfig uses config.textModel
const sourceNodeForConfig = { ...sourceNode, metadata: { ...(sourceNode.metadata || {}), model: undefined } };
let listConfig = buildGenerationConfig(config, sourceNodeForConfig, "text");
// Explicitly set model to the configured text model
if (config.textModel) {
listConfig = { ...listConfig, model: config.textModel };
}'''
content = content.replace(old, new, 1)
with open(path, "w", encoding="utf-8") as f:
f.write(content)
print("done")

View File

@@ -95,7 +95,13 @@ export async function handleListGenerate({
setRunningNodeId(sourceNodeId); setRunningNodeId(sourceNodeId);
try { try {
const listConfig = buildGenerationConfig(config, sourceNode, "text"); // Force text model: strip node.metadata.model so buildGenerationConfig uses config.textModel
const sourceNodeForConfig = { ...sourceNode, metadata: { ...(sourceNode.metadata || {}), model: undefined } };
let listConfig = buildGenerationConfig(config, sourceNodeForConfig, "text");
// Explicitly set model to the configured text model
if (config.textModel) {
listConfig = { ...listConfig, model: config.textModel };
}
const referenceImages = imageNodes.map((node) => ({ const referenceImages = imageNodes.map((node) => ({
id: node.id, id: node.id,