Explorar o código

fix: embedding price config (#918)

takatost hai 1 ano
pai
achega
920fb6d0e1

+ 4 - 6
api/core/model_providers/models/embedding/base.py

@@ -32,7 +32,6 @@ class BaseEmbedding(BaseProviderModel):
     def price_config(self) -> dict:
         def get_or_default():
             default_price_config = {
-                    'prompt': decimal.Decimal('0'),
                     'completion': decimal.Decimal('0'),
                     'unit': decimal.Decimal('0'),
                     'currency': 'USD'
@@ -40,7 +39,6 @@ class BaseEmbedding(BaseProviderModel):
             rules = self.model_provider.get_rules()
             price_config = rules['price_config'][self.base_model_name] if 'price_config' in rules else default_price_config
             price_config = {
-                'prompt': decimal.Decimal(price_config['prompt']),
                 'completion': decimal.Decimal(price_config['completion']),
                 'unit': decimal.Decimal(price_config['unit']),
                 'currency': price_config['currency']
@@ -59,8 +57,8 @@ class BaseEmbedding(BaseProviderModel):
         :param tokens:
         :return: decimal.Decimal('0.0000001')
         """
-        unit_price = self._price_config['completion']
-        unit = self._price_config['unit']
+        unit_price = self.price_config['completion']
+        unit = self.price_config['unit']
         total_price = tokens * unit_price * unit
         total_price = total_price.quantize(decimal.Decimal('0.0000001'), rounding=decimal.ROUND_HALF_UP)
         logging.debug(f"tokens={tokens}, unit_price={unit_price}, unit={unit}, total_price:{total_price}")
@@ -73,7 +71,7 @@ class BaseEmbedding(BaseProviderModel):
         :return: decimal.Decimal('0.0001')
         
         """
-        unit_price = self._price_config['completion']
+        unit_price = self.price_config['completion']
         unit_price = unit_price.quantize(decimal.Decimal('0.0001'), rounding=decimal.ROUND_HALF_UP)
         logger.debug(f'unit_price:{unit_price}')
         return unit_price
@@ -96,7 +94,7 @@ class BaseEmbedding(BaseProviderModel):
 
         :return: get from price config, default 'USD'
         """
-        currency = self._price_config['currency']
+        currency = self.price_config['currency']
         return currency
 
     @abstractmethod

+ 0 - 6
api/core/model_providers/models/embedding/minimax_embedding.py

@@ -1,6 +1,3 @@
-import decimal
-import logging
-
 from langchain.embeddings import MiniMaxEmbeddings
 
 from core.model_providers.error import LLMBadRequestError
@@ -22,9 +19,6 @@ class MinimaxEmbedding(BaseEmbedding):
 
         super().__init__(model_provider, client, name)
 
-    def get_currency(self):
-        return 'RMB'
-
     def handle_exceptions(self, ex: Exception) -> Exception:
         if isinstance(ex, ValueError):
             return LLMBadRequestError(f"Minimax: {str(ex)}")

+ 2 - 2
api/core/model_providers/rules/azure_openai.json

@@ -18,8 +18,8 @@
             "currency": "USD"
         },
         "gpt-35-turbo": {
-            "prompt": "0.0015",
-            "completion": "0.002",
+            "prompt": "0.002",
+            "completion": "0.0015",
             "unit": "0.001",
             "currency": "USD"
         },

+ 20 - 1
api/core/model_providers/rules/minimax.json

@@ -9,5 +9,24 @@
         ],
         "quota_unit": "tokens"
     },
-    "model_flexibility": "fixed"
+    "model_flexibility": "fixed",
+    "price_config": {
+        "abab5.5-chat": {
+            "prompt": "0.015",
+            "completion": "0.015",
+            "unit": "0.001",
+            "currency": "RMB"
+        },
+        "abab5-chat": {
+            "prompt": "0.015",
+            "completion": "0.015",
+            "unit": "0.001",
+            "currency": "RMB"
+        },
+        "embo-01": {
+            "completion": "0",
+            "unit": "0.0001",
+            "currency": "RMB"
+        }
+    }
 }

+ 15 - 1
api/core/model_providers/rules/spark.json

@@ -9,5 +9,19 @@
         ],
         "quota_unit": "tokens"
     },
-    "model_flexibility": "fixed"
+    "model_flexibility": "fixed",
+    "price_config": {
+        "spark": {
+            "prompt": "0.18",
+            "completion": "0.18",
+            "unit": "0.0001",
+            "currency": "RMB"
+        },
+        "spark-v2": {
+            "prompt": "0.36",
+            "completion": "0.36",
+            "unit": "0.0001",
+            "currency": "RMB"
+        }
+    }
 }