@@ -61,6 +61,7 @@ class Gemini(SimpleService): **input_message.info, } messages = self.get_chat_history() + messages.append({'role': 'user', 'content': input_message.content}) image = input_message.file if image: kind = filetype.guess(image.read(20)) @@ -88,13 +89,13 @@ class Gemini(SimpleService): msgs = self.save_results(result[0], process_time) return msgs - def get_chat_history(self, message_limit: int = 10, max_character_limit: int = 1500): + def get_chat_history(self, message_limit: int = 10, max_character_limit: int = 1500) -> list[dict[str, str | list]]: if isinstance(self.store, Chat): air_messages = list( reversed( Message.objects.filter( chats_chats_messages=self.store, is_deleted=False, is_sent=True - ).order_by('-created_at')[:message_limit] + ).order_by('-created_at')[1:message_limit + 1] ) ) elif isinstance(self.store, APIStore): @@ -118,5 +119,5 @@ class Gemini(SimpleService): memory.append({'role': 'user', 'content': content}) character_length = sum(len(content['content']) for content in memory) while character_length > max_character_limit: - character_length -= len(memory.pop(0)) + character_length -= len(memory.pop(0)['content']) return memory