diff --git a/trustgraph-base/trustgraph/messaging/translators/prompt.py b/trustgraph-base/trustgraph/messaging/translators/prompt.py index 8916a77c..5ff99fdc 100644 --- a/trustgraph-base/trustgraph/messaging/translators/prompt.py +++ b/trustgraph-base/trustgraph/messaging/translators/prompt.py @@ -42,12 +42,17 @@ class PromptResponseTranslator(MessageTranslator): def from_pulsar(self, obj: PromptResponse) -> Dict[str, Any]: result = {} - - if obj.text: + + # Include text field if present (even if empty string) + if obj.text is not None: result["text"] = obj.text - if obj.object: + # Include object field if present + if obj.object is not None: result["object"] = obj.object - + + # Always include end_of_stream flag for streaming support + result["end_of_stream"] = getattr(obj, "end_of_stream", False) + return result def from_response_with_completion(self, obj: PromptResponse) -> Tuple[Dict[str, Any], bool]: diff --git a/trustgraph-base/trustgraph/messaging/translators/retrieval.py b/trustgraph-base/trustgraph/messaging/translators/retrieval.py index d2161cff..22166bd9 100644 --- a/trustgraph-base/trustgraph/messaging/translators/retrieval.py +++ b/trustgraph-base/trustgraph/messaging/translators/retrieval.py @@ -34,8 +34,8 @@ class DocumentRagResponseTranslator(MessageTranslator): def from_pulsar(self, obj: DocumentRagResponse) -> Dict[str, Any]: result = {} - # Include response content (chunk or complete) - if obj.response: + # Include response content (even if empty string) + if obj.response is not None: result["response"] = obj.response # Include end_of_stream flag @@ -90,8 +90,8 @@ class GraphRagResponseTranslator(MessageTranslator): def from_pulsar(self, obj: GraphRagResponse) -> Dict[str, Any]: result = {} - # Include response content (chunk or complete) - if obj.response: + # Include response content (even if empty string) + if obj.response is not None: result["response"] = obj.response # Include end_of_stream flag