@@ -712,13 +712,17 @@ async def chat_completion(request: ChatCompletionRequest):
712
712
713
713
if type (last_message .content ) == str :
714
714
async_interpreter .messages .append (
715
- {"role" : "user" , "type" : "message" , "content" : last_message .content }
715
+ {
716
+ "role" : "user" ,
717
+ "type" : "message" ,
718
+ "content" : str (last_message .content ),
719
+ }
716
720
)
717
721
if type (last_message .content ) == list :
718
722
for content in last_message .content :
719
723
if content ["type" ] == "text" :
720
724
async_interpreter .messages .append (
721
- {"role" : "user" , "type" : "message" , "content" : content }
725
+ {"role" : "user" , "type" : "message" , "content" : str ( content ) }
722
726
)
723
727
elif content ["type" ] == "image_url" :
724
728
if "url" not in content ["image_url" ]:
@@ -743,6 +747,13 @@ async def chat_completion(request: ChatCompletionRequest):
743
747
}
744
748
)
745
749
750
+ if os .getenv ("INTERPRETER_SERVER_REQUIRE_START" , False ):
751
+ if last_message .content != "{START}" :
752
+ return
753
+ if async_interpreter .messages [- 1 ]["content" ] == "{START}" :
754
+ # Remove that {START} message that would have just been added
755
+ async_interpreter .messages = async_interpreter .messages [:- 1 ]
756
+
746
757
if request .stream :
747
758
return StreamingResponse (
748
759
openai_compatible_generator (), media_type = "application/x-ndjson"
0 commit comments