@@ -42,6 +42,9 @@ def run_function_calling_llm(llm, request_params):
4242 code = ""
4343 function_call_detected = False
4444
45+ accumulated_review = ""
46+ review_category = None
47+
4548 for chunk in llm .completions (** request_params ):
4649 if "choices" not in chunk or len (chunk ["choices" ]) == 0 :
4750 # This happens sometimes
@@ -55,22 +58,22 @@ def run_function_calling_llm(llm, request_params):
5558 if function_call_detected :
5659 # More content after a code block? This is a code review by a judge layer.
5760 # print("Code safety review:", delta["content"])
58- if delta ["content" ]. strip () == "<SAFE>" :
59- yield { "type" : "review" , "format" : "safe" , "content" : "" }
60- elif "<UNSAFE>" in delta [ "content" ] :
61- content = (
62- delta [ "content" ]
63- . replace ( "<UNSAFE>" , "" )
64- . replace ( "</UNSAFE>" , "" )
65- )
66- yield { "type" : "review" , "format" : "unsafe" , "content" : content }
67- else :
68- content = (
69- delta [ "content" ]
70- . replace ( "<WARNING>" , "" )
71- . replace ( "</WARNING>" , "" )
72- )
73- yield { "type" : "review" , "format" : "warning" , "content" : content }
61+ accumulated_review += delta ["content" ]
62+
63+ if review_category == None :
64+ if "<UNSAFE>" in accumulated_review :
65+ review_category = "unsafe"
66+ if "<WARNING>" in accumulated_review :
67+ review_category = "warning"
68+ if "<SAFE>" in accumulated_review :
69+ review_category = "safe"
70+
71+ if review_category != None :
72+ yield {
73+ "type" : "review" ,
74+ "format" : review_category ,
75+ "content" : delta [ "content" ],
76+ }
7477
7578 else :
7679 yield {"type" : "message" , "content" : delta ["content" ]}
0 commit comments