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

This commit is contained in:
Alexander Piskun
2025-08-22 20:51:14 +03:00
committed by GitHub
parent 497d41fb50
commit 050c67323c

View File

@@ -5,7 +5,10 @@ See: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/infer
from __future__ import annotations from __future__ import annotations
import json
import time
import os import os
import uuid
from enum import Enum from enum import Enum
from typing import Optional, Literal from typing import Optional, Literal
@@ -350,7 +353,27 @@ class GeminiNode(ComfyNodeABC):
# Get result output # Get result output
output_text = self.get_text_from_response(response) output_text = self.get_text_from_response(response)
if unique_id and output_text: 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...",) return (output_text or "Empty response from Gemini model...",)