@@ -48,6 +48,7 @@ class Deepseek(SimpleService): **input_message.info, } messages = self.get_chat_history() + messages.append({'role': 'user', 'content': input_message.content}) start_time = time.time() result = openrouter_run(version, messages, callback_data, 'Deepseek') process_time = timedelta(seconds=(time.time() - start_time)) @@ -60,13 +61,13 @@ class Deepseek(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): @@ -90,5 +91,5 @@ class Deepseek(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 @@ -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 @@ -58,6 +58,7 @@ class Mistral(SimpleService): version = f'mistralai/{info.pop("version")}' callback_data = {'provider': {'order': ['Parasail']}, **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)) @@ -85,13 +86,13 @@ class Mistral(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): @@ -115,5 +116,5 @@ class Mistral(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