feat(api-nodes): add copy button to Gemini Chat node

This commit is contained in:
bigcat88 2025-08-20 09:21:13 +03:00
parent 5a8f502db5
commit 793bcf858a
No known key found for this signature in database
GPG Key ID: 1F0BF0EC3CF22721

View File

@ -5,7 +5,10 @@ See: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/infer
from __future__ import annotations
import json
import time
import os
import uuid
from enum import Enum
from typing import Optional, Literal
@ -350,7 +353,27 @@ class GeminiNode(ComfyNodeABC):
# Get result output
output_text = self.get_text_from_response(response)
if unique_id and output_text:
PromptServer.instance.send_progress_text(output_text, node_id=unique_id)
# Not a true chat history like the OpenAI Chat node. It is emulated so the frontend can show a copy button.
render_spec = {
"node_id": unique_id,
"component": "ChatHistoryWidget",
"props": {
"history": json.dumps(
[
{
"prompt": prompt,
"response": output_text,
"response_id": str(uuid.uuid4()),
"timestamp": time.time(),
}
]
),
},
}
PromptServer.instance.send_sync(
"display_component",
render_spec,
)
return (output_text or "Empty response from Gemini model...",)