|
|
|
|
@ -1,8 +1,12 @@
|
|
|
|
|
import datetime
|
|
|
|
|
import json
|
|
|
|
|
import logging
|
|
|
|
|
import os
|
|
|
|
|
from collections import defaultdict
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
from core.model_providers.model_factory import ModelFactory
|
|
|
|
|
from extensions.ext_database import db
|
|
|
|
|
from core.model_providers.model_provider_factory import ModelProviderFactory
|
|
|
|
|
@ -509,3 +513,33 @@ class ProviderService:
|
|
|
|
|
# get model parameter rules
|
|
|
|
|
return model_provider.get_model_parameter_rules(model_name, ModelType.value_of(model_type))
|
|
|
|
|
|
|
|
|
|
def free_quota_submit(self, tenant_id: str, provider_name: str):
|
|
|
|
|
api_key = os.environ.get("FREE_QUOTA_APPLY_API_KEY")
|
|
|
|
|
api_url = os.environ.get("FREE_QUOTA_APPLY_URL")
|
|
|
|
|
|
|
|
|
|
headers = {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
'Authorization': f"Bearer {api_key}"
|
|
|
|
|
}
|
|
|
|
|
response = requests.post(api_url, headers=headers, json={'workspace_id': tenant_id, 'provider_name': provider_name})
|
|
|
|
|
if not response.ok:
|
|
|
|
|
logging.error(f"Request FREE QUOTA APPLY SERVER Error: {response.status_code} ")
|
|
|
|
|
raise ValueError(f"Error: {response.status_code} ")
|
|
|
|
|
|
|
|
|
|
if response.json()["code"] != 'success':
|
|
|
|
|
raise ValueError(
|
|
|
|
|
f"error: {response.json()['message']}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
rst = response.json()
|
|
|
|
|
|
|
|
|
|
if rst['type'] == 'redirect':
|
|
|
|
|
return {
|
|
|
|
|
'type': rst['type'],
|
|
|
|
|
'redirect_url': rst['redirect_url']
|
|
|
|
|
}
|
|
|
|
|
else:
|
|
|
|
|
return {
|
|
|
|
|
'type': rst['type'],
|
|
|
|
|
'result': 'success'
|
|
|
|
|
}
|
|
|
|
|
|