@@ -10,6 +10,8 @@ from django_minio_backend import MinioBackend def message_file_upload(instance: 'Message', filename: str): + if instance.content_object.__class__.__name__ == 'APIStore': + return f'apistore_{instance.content_object.user.pk}_{time.time():.0f}.{filename.split(".")[-1]}' return f'{instance.content_object.model.slug}_{instance.content_object.user.pk}_{time.time():.0f}.{filename.split(".")[-1]}' @@ -207,6 +207,7 @@ class Chatgpt(SimpleService): if model_name not in self.TOKENS_COST.keys(): raise Exception(_('No matching version found')) chat_history = self.get_chat_history(model_name=model_name) + chat_history.add_message(HumanMessage(content=input_message.content)) if model_name in ('o1-preview', 'o1-mini'): chat_history.messages.pop(0) conversation = RunnableWithMessageHistory( @@ -238,8 +239,6 @@ class Chatgpt(SimpleService): messages.insert(0, {'role': 'system', 'content': system.content}) messages.insert(0, {'role': 'system', 'content': user_system_prompt}) if image: - if messages[-1]['role'] == 'assistant': - messages.append({'role': 'user', 'content': ''}) messages[-1]['content'] = [ {'type': 'input_text', 'text': input_message.content}, {'type': 'input_image', 'image_url': image_data['image_url']['url']} @@ -435,7 +434,7 @@ class Chatgpt(SimpleService): chats_chats_messages=self.store, is_deleted=False, is_sent=True, - ).order_by('-created_at') + ).order_by('-created_at')[1:] elif isinstance(self.store, APIStore): air_messages = Message.objects.none() elif isinstance(self.store, Copywrite): @@ -443,7 +442,7 @@ class Chatgpt(SimpleService): copywrite_copywrites_messages=self.store, is_deleted=False, is_sent=True, - ).order_by('-created_at') + ).order_by('-created_at')[1:] token_limits = { 'o3-mini': 100_000,