@@ -432,15 +432,15 @@ class Chatgpt(SimpleService): encoding = tiktoken.get_encoding('o200k_base') total_tokens = 0 for message in messages: - total_tokens += len( - encoding.encode( - message.content - if isinstance(message.content, str) - else ''.join( - [input_data.get('text', '') for input_data in message.content] - ) + if isinstance(message.content, str): + total_tokens += len(encoding.encode(message.content)) + elif any(isinstance(item, dict) for item in message.content): + total_tokens += len(encoding.encode( + ''.join([input_data.get('text', '') for input_data in message.content])) ) - ) + else: + total_tokens += len(encoding.encode(''.join(message.content))) + return total_tokens def get_pdf_data(self, pdf_file: UploadedFile) -> str: