@@ -109,46 +109,10 @@ def truncate_messages_by_size(messages, max_bytes=MAX_GEN_AI_MESSAGE_BYTES):
109109 while len (truncated_messages ) > 1 :
110110 serialized_json = json .dumps (truncated_messages , separators = ("," , ":" ))
111111 current_size = len (serialized_json .encode ("utf-8" ))
112-
113112 if current_size <= max_bytes :
114113 break
115-
116114 truncated_messages .pop (0 )
117115
118- serialized_json = json .dumps (truncated_messages , separators = ("," , ":" ))
119- current_size = len (serialized_json .encode ("utf-8" ))
120-
121- if current_size > max_bytes and len (truncated_messages ) == 1 :
122- message = truncated_messages [0 ].copy ()
123- content = message .get ("content" , "" )
124-
125- if isinstance (content , str ):
126- max_content_length = max_bytes // 2
127- while True :
128- message ["content" ] = content [:max_content_length ]
129- test_json = json .dumps ([message ], separators = ("," , ":" ))
130- if len (test_json .encode ("utf-8" )) <= max_bytes :
131- break
132- max_content_length = int (max_content_length * 0.9 )
133- if max_content_length < 100 :
134- message ["content" ] = ""
135- break
136-
137- truncated_messages = [message ]
138- elif isinstance (content , list ):
139- content_copy = list (content )
140- while len (content_copy ) > 0 :
141- message ["content" ] = content_copy
142- test_json = json .dumps ([message ], separators = ("," , ":" ))
143- if len (test_json .encode ("utf-8" )) <= max_bytes :
144- break
145- content_copy = content_copy [:- 1 ]
146-
147- if len (content_copy ) == 0 :
148- message ["content" ] = []
149-
150- truncated_messages = [message ]
151-
152116 return truncated_messages
153117
154118
0 commit comments