diff --git a/main.py b/main.py
index 557be2f..d0d5b58 100644
--- a/main.py
+++ b/main.py
@@ -143,18 +143,19 @@ async def generate_openai_chat_completion(form_data: OpenAIChatCompletionForm):
                     yield f"data: {json.dumps(message)}\n\n"
 
                 if isinstance(res, Iterator):
-                    if isinstance(res, Generator):
-                        for message in res:
-                            print(f"stream_content:Generator:{message}")
-                            message = stream_message_template(form_data.model, message)
-                            yield f"data: {json.dumps(message)}\n\n"
-                    else:
-                        for line in res:
-                            if line:
-                                # Decode the JSON data
-                                decoded_line = line.decode("utf-8")
-                                print(f"stream_content:Iterator:{decoded_line}")
-                                yield f"{decoded_line}\n\n"
+                    for line in res:
+                        try:
+                            line = line.decode("utf-8")
+                        except:
+                            pass
+
+                        print(f"stream_content:Generator:{line}")
+
+                        if line.startswith("data:"):
+                            yield f"{line}\n\n"
+                        else:
+                            line = stream_message_template(form_data.model, line)
+                            yield f"data: {json.dumps(line)}\n\n"
 
                 if isinstance(res, str) or isinstance(res, Generator):
                     finish_message = {