@@ -55,7 +55,7 @@ from ml_model.services.prunaai import Prunaai from ml_model.services.pulid import Pulid from ml_model.services.qwen import Qwen from ml_model.services.qwen_235B import Qwen_235B -from ml_model.services.qwen_3_5 import Qwen_3_5 +from ml_model.services.qwen_3_6 import Qwen_3_6 from ml_model.services.qwen_3_max_thinking import Qwen_3_Max_Thinking from ml_model.services.raifgpt import Raifgpt from ml_model.services.ray import Ray @@ -19,25 +19,21 @@ from tools.copywrite.models import Copywrite from tools.public_api.models import APIStore -class Qwen_3_5(SimpleService): - TOKENS_COST = { - 'qwen3.5-9b': {'input': Decimal('30'), 'output': Decimal('45')}, - 'qwen3.5-flash-02-23': {'input': Decimal('30'), 'output': Decimal('120')}, - 'qwen3.5-35b-a3b': {'input': Decimal('48.75'), 'output': Decimal('390')}, - 'qwen3.5-27b': {'input': Decimal('58.5'), 'output': Decimal('468')}, - 'qwen3.5-122b-a10b': {'input': Decimal('78'), 'output': Decimal('624')}, - 'qwen3.5-397b-a17b': {'input': Decimal('117'), 'output': Decimal('702')}, +class Qwen_3_6(SimpleService): + MODELS_LINKS = { + 'qwen3.6-flash': 'qwen3.6-flash', + 'qwen3.6-max': 'qwen3.6-35b-a3b', + 'qwen3.6-plus': 'qwen3.6-plus', } - PROVIDERS = { - 'qwen3.5-9b': 'together', - 'qwen3.5-flash-02-23': 'alibaba', - 'qwen3.5-35b-a3b': 'alibaba', - 'qwen3.5-27b': 'alibaba', - 'qwen3.5-122b-a10b': 'alibaba', - 'qwen3.5-397b-a17b': 'alibaba', + TOKENS_COST = { + 'qwen3.6-flash': {'input': Decimal('125'), 'output': Decimal('500')}, + 'qwen3.6-35b-a3b': {'input': Decimal('175'), 'output': Decimal('1000')}, + 'qwen3.6-plus': {'input': Decimal('250'), 'output': Decimal('1500')}, } + MAX_OUTPUT_TOKENS = 30_000 + TOOLS_TOKEN_COSTS = {'text-embedding-3-small': {'output': Decimal('0.00001')}} def calculate_price( @@ -66,8 +62,8 @@ class Qwen_3_5(SimpleService): def make(self, input_message: Message, save: bool = True) -> list[Message]: start_time = time.time() - version = input_message.info.get('version', 'qwen3.5-9b') - callback_data = {'provider': {'order': [self.PROVIDERS[version]]}, **input_message.info} + version = self.MODELS_LINKS[input_message.info.get('version', 'qwen3.6-flash')] + callback_data = {'max_tokens': self.MAX_OUTPUT_TOKENS, **input_message.info} messages = self.get_chat_history() messages.append({'role': 'user', 'content': input_message.content}) embedding_tokens = 0 @@ -116,8 +112,8 @@ class Qwen_3_5(SimpleService): ] else: raise FileExtensionNotSupported(['PDF', 'DOC', 'DOCX', 'XLSX', 'JPG', 'JPEG', 'PNG', 'WEBP']) - model_slug = f'qwen/{version}:online' if self.PROVIDERS[version] == 'alibaba' else f'qwen/{version}' - result = openrouter_run(model_slug, messages, callback_data, 'Qwen 3.5') + model_slug = f'qwen/{version}:online' + result = openrouter_run(model_slug, messages, callback_data, 'Qwen 3.6') process_time = timedelta(seconds=(time.time() - start_time)) self.handle_invoice( input_message.content_object.model,