Update web_prompter_nodes.py

This commit is contained in:
Garyvug
2025-06-26 16:19:04 +08:00
committed by GitHub
parent ac02b94c7b
commit 56725459de
-42
View File
@@ -94,45 +94,3 @@ class LLMNewsScriptGenerator:
error_message = f"OpenAI API call failed: {e}"
print(f"[LLMNewsScriptGenerator] {error_message}")
return (error_message,)
# =================================================================================
# 節點 3: Prompt Finalizer
# =================================================================================
class PromptFinalizer:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
# 為了讓 UI 返回值能更新這個控件,它必須存在於 INPUT_TYPES 中
"prompt": ("STRING", {"multiline": True, "dynamicPrompts": False, "default": ""}),
},
"optional": {
# 我們用一個隱藏的輸入來接收上游數據,避免衝突
"text_input": ("STRING", {"forceInput": True, "widget": "hide"}),
}
}
# 注意:RETURN_TYPES 現在只包含給下游節點的數據
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("final_prompt",)
FUNCTION = "finalize"
CATEGORY = "WebPrompter"
def finalize(self, prompt, text_input=None):
# 決定最終的文本內容,優先使用來自上游連線的數據
# 如果沒有連線,則使用用戶在文本框中輸入的內容
final_text = text_input if text_input is not None else prompt
# ======================================================================
# V V V 這是解決問題的關鍵所在 V V V
# ======================================================================
# 我們返回一個元組,其中第二個元素是一個特殊的 "ui" 字典。
# 這個字典會告訴前端去更新名為 "prompt" 的控件(widget),
# 將其內容設置為我們處理好的 final_text。
return {
"ui": {
"prompt": [final_text] # 將 'prompt' 文本框的內容更新為 final_text
},
"result": (final_text,) # 'result' 鍵包含了要傳遞給下游節點的數據
}