@@ -6,7 +6,6 @@ from io import BytesIO from typing import Any, Iterator import filetype -from django.db.models.fields.files import FieldFile from PIL import Image from messages.models import Message @@ -31,7 +30,6 @@ class Claude(SimpleService): 'claude-3.7-sonnet:thinking': { 'input': Decimal('1200'), 'output': Decimal('4500'), - 'input_imgs': Decimal('1440'), }, 'claude-3.5-haiku': { 'input': Decimal('1200'), @@ -50,14 +48,12 @@ class Claude(SimpleService): TOOLS_TOKEN_COSTS = {'text-embedding-3-large': {'output': Decimal('0.000065')}} def calculate_price( - self, version: str, input_tokens: int, output_tokens: int, image: FieldFile, embedding_tokens: int + self, version: str, input_tokens: int, output_tokens: int, embedding_tokens: int ) -> Decimal: price_map = self.TOKENS_COST[version.split('/')[1]] price = ( input_tokens * price_map['input'] / 1_000_000 + output_tokens * price_map['output'] / 1_000_000 ) - if image: - price += price_map['input_imgs'] / 1_000 if embedding_tokens > 0: price += self.TOOLS_TOKEN_COSTS['text-embedding-3-large']['output'] * embedding_tokens return price.quantize(Decimal('0.1'), rounding='ROUND_UP') @@ -85,7 +81,6 @@ class Claude(SimpleService): {'role': 'user', 'content': input_message.content}, ] file = input_message.file - image = None embedding_tokens = 0 if file: file_service = FileProcessingService @@ -128,7 +123,6 @@ class Claude(SimpleService): {'type': 'text', 'text': input_message.content}, {'type': 'image_url', 'image_url': {'url': image_url}}, ] - image = file except Exception: raise FileExtensionNotSupported(['PDF', 'DOC', 'DOCX', 'XLSX', 'JPG', 'JPEG', 'PNG']) result = openrouter_run(version, messages, callback_data, 'Claude') @@ -138,7 +132,6 @@ class Claude(SimpleService): version=version, input_tokens=result[1], output_tokens=result[2], - image=image, embedding_tokens=embedding_tokens, ) msgs = self.save_results(result[0], process_time)