|
@@ -8,20 +8,22 @@ import time
|
|
|
|
|
|
import oss2
|
|
|
import requests
|
|
|
+from obs import ObsClient
|
|
|
from django.core.paginator import Paginator
|
|
|
from django.db import transaction
|
|
|
from django.db.models import Q, F, Sum, OuterRef, Min, Subquery
|
|
|
from django.forms.models import model_to_dict
|
|
|
from django.views.generic.base import View
|
|
|
|
|
|
-from Ansjer.config import LOGGER, SERIAL_DOMAIN_NAME
|
|
|
+from Ansjer.config import LOGGER, SERIAL_DOMAIN_NAME, HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, \
|
|
|
+ HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET
|
|
|
from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, \
|
|
|
AWS_SES_ACCESS_REGION
|
|
|
from Ansjer.config import SERVER_DOMAIN_TEST, SERVER_DOMAIN_CN, SERVER_DOMAIN_US, SERVER_DOMAIN_EUR
|
|
|
from Model.models import Device_Info, UidSetModel, LogModel, UID_Bucket, Unused_Uid_Meal, StsCrdModel, \
|
|
|
VodHlsModel, ExperienceContextModel, DeviceTypeModel, UidUserModel, ExperienceAiModel, AiService, \
|
|
|
AppBundle, App_Info, AppDeviceType, DeviceNameLanguage, UIDCompanySerialModel, UidPushModel, \
|
|
|
- CustomCustomerOrderInfo, CustomCustomerDevice, DeviceVersionInfo, VoicePromptModel, DeviceAlgorithmExplain
|
|
|
+ CustomCustomerOrderInfo, CustomCustomerDevice, DeviceVersionInfo, VoicePromptModel, DeviceAlgorithmExplain, BaiduBigModelLicense
|
|
|
from Object.AWS.AmazonS3Util import AmazonS3Util
|
|
|
from Object.Enums.RedisKeyConstant import RedisKeyConstant
|
|
|
from Object.RedisObject import RedisObject
|
|
@@ -131,6 +133,16 @@ class DeviceManagement(View):
|
|
|
return self.del_device_voice(request_dict, response)
|
|
|
elif operation == 'deviceTypeList':
|
|
|
return self.device_type_list(response)
|
|
|
+
|
|
|
+ # 百度大模型
|
|
|
+ elif operation == 'getBaiduBigModelLicense': # 查询大模型许可证
|
|
|
+ return self.get_baidu_big_model_license(request_dict, response)
|
|
|
+ elif operation == 'addBaiduBigModelLicense': # 添加大模型许可证
|
|
|
+ return self.add_baidu_big_model_license(request_dict, response)
|
|
|
+ elif operation == 'editBaiduBigModelLicense': # 编辑大模型许可证
|
|
|
+ return self.edit_baidu_big_model_license(request, request_dict, response)
|
|
|
+ elif operation == 'delBaiduBigModelLicense': # 删除大模型许可证
|
|
|
+ return self.del_baidu_big_model_license(request_dict, response)
|
|
|
else:
|
|
|
return response.json(444, 'operation')
|
|
|
|
|
@@ -1923,4 +1935,113 @@ class DeviceManagement(View):
|
|
|
return response.json(0, list(device_type_qs))
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
- return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_baidu_big_model_license(request_dict, response):
|
|
|
+ """查询百度大模型许可证列表"""
|
|
|
+ page_no = request_dict.get('pageNo')
|
|
|
+ page_size = request_dict.get('pageSize')
|
|
|
+ serial = request_dict.get('serial', '')
|
|
|
+ license_name = request_dict.get('licenseName', '')
|
|
|
+ use_status = request_dict.get('useStatus')
|
|
|
+
|
|
|
+ if not all([page_no, page_size]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ query = BaiduBigModelLicense.objects.all()
|
|
|
+ if serial:
|
|
|
+ query = query.filter(serial__contains=serial)
|
|
|
+ if license_name:
|
|
|
+ query = query.filter(license_name__contains=license_name)
|
|
|
+ if use_status:
|
|
|
+ query = query.filter(use_status=use_status)
|
|
|
+
|
|
|
+ total = query.count()
|
|
|
+ licenses = query.order_by('-id')[
|
|
|
+ (int(page_no)-1)*int(page_size):int(page_no)*int(page_size)
|
|
|
+ ].values('id', 'serial', 'license_name', 'use_status', 'created_time', 'updated_time')
|
|
|
+
|
|
|
+ return response.json(0, {
|
|
|
+ 'list': list(licenses),
|
|
|
+ 'total': total
|
|
|
+ })
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def add_baidu_big_model_license(request_dict, response):
|
|
|
+ """添加百度大模型许可证"""
|
|
|
+ try:
|
|
|
+ serial = CommonService.createOrderID()[:9] # 生成9位序列号
|
|
|
+ license_name = f"许可证_{serial}"
|
|
|
+ now_time = int(time.time())
|
|
|
+
|
|
|
+ BaiduBigModelLicense.objects.create(
|
|
|
+ serial=serial,
|
|
|
+ license_name=license_name,
|
|
|
+ created_time=now_time,
|
|
|
+ updated_time=now_time
|
|
|
+ )
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ def edit_baidu_big_model_license(self, request, request_dict, response):
|
|
|
+ """编辑百度大模型许可证"""
|
|
|
+ license_id = request_dict.get('id')
|
|
|
+ license_name = request_dict.get('licenseName')
|
|
|
+ use_status = request_dict.get('useStatus')
|
|
|
+
|
|
|
+ if not license_id:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ update_data = {
|
|
|
+ 'updated_time': int(time.time())
|
|
|
+ }
|
|
|
+ if license_name:
|
|
|
+ update_data['license_name'] = license_name
|
|
|
+ if use_status is not None:
|
|
|
+ update_data['use_status'] = use_status
|
|
|
+
|
|
|
+ BaiduBigModelLicense.objects.filter(id=license_id).update(**update_data)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def del_baidu_big_model_license(request_dict, response):
|
|
|
+ """删除百度大模型许可证"""
|
|
|
+ license_id = request_dict.get('id')
|
|
|
+
|
|
|
+ if not license_id:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 先查询出license_name
|
|
|
+ baidu_license = BaiduBigModelLicense.objects.filter(id=license_id).first()
|
|
|
+ if not baidu_license:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ license_name = baidu_license.license_name
|
|
|
+
|
|
|
+ # 删除数据库记录
|
|
|
+ BaiduBigModelLicense.objects.filter(id=license_id).delete()
|
|
|
+
|
|
|
+ # 删除华为云上的文件
|
|
|
+ obs_client = ObsClient(
|
|
|
+ access_key_id=HUAWEICLOUD_AK,
|
|
|
+ secret_access_key=HUAWEICLOUD_SK,
|
|
|
+ server=HUAWEICLOUD_OBS_SERVER
|
|
|
+ )
|
|
|
+ obs_client.deleteObject(
|
|
|
+ bucketName=HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET,
|
|
|
+ objectKey=license_name
|
|
|
+ )
|
|
|
+
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|