@@ -27,21 +27,13 @@ class Claude(SimpleService): """ TOKENS_COST = { - 'claude-3.7-sonnet:thinking': { - 'input': Decimal('1200'), - 'output': Decimal('4500'), - }, - 'claude-3.5-haiku': { - 'input': Decimal('1200'), - 'output': Decimal('1200'), - }, # 1M tokens - 'claude-sonnet-4.5': { + 'claude-sonnet-4.6': { 'input': Decimal('900'), 'output': Decimal('4500'), }, # 1M tokens - 'claude-haiku-4.5': { - 'input': Decimal('300'), - 'output': Decimal('1500'), + 'claude-opus-4.6': { + 'input': Decimal('1500'), + 'output': Decimal('7500'), }, # 1M tokens } @@ -56,6 +48,7 @@ class Claude(SimpleService): ) if embedding_tokens > 0: price += self.TOOLS_TOKEN_COSTS['text-embedding-3-small']['output'] * embedding_tokens + price += Decimal('2') return price.quantize(Decimal('0.1'), rounding='ROUND_UP') def save_results(self, content: Iterator[Any], t: timedelta, save: bool = True) -> list[Message]: @@ -72,7 +65,7 @@ class Claude(SimpleService): def make(self, input_message: Message, save: bool = True) -> list[Message]: start_time = time.time() - version = f'anthropic/{input_message.info.pop("version", "claude-3.7-sonnet:thinking")}' + version = f'anthropic/{input_message.info.pop("version", "claude-sonnet-4.6")}' system_prompt = input_message.info.pop('system_prompt', '') callback_data = {'provider': {'order': ['Anthropic']}, **input_message.info} messages = [ @@ -130,7 +123,7 @@ class Claude(SimpleService): ] except Exception: raise FileExtensionNotSupported(['PDF', 'DOC', 'DOCX', 'XLSX', 'JPG', 'JPEG', 'PNG']) - result = openrouter_run(version, messages, callback_data, 'Claude') + result = openrouter_run(f"{version}:online", messages, callback_data, 'Claude') process_time = timedelta(seconds=(time.time() - start_time)) self.handle_invoice( input_message.content_object.model,