system.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: system.py
  6. @date:2025/6/4 16:01
  7. @desc:
  8. """
  9. import os
  10. from django.db import models
  11. from rest_framework import serializers
  12. from django.core.cache import cache
  13. from common.constants.cache_version import Cache_Version
  14. from common.database_model_manage.database_model_manage import DatabaseModelManage
  15. from common.utils.rsa_util import get_key_pair_by_sql
  16. from django.conf import settings as django_settings
  17. from maxkb import settings
  18. from maxkb.const import CONFIG
  19. from system_manage.models import SystemSetting
  20. class SettingType(models.CharField):
  21. # Community Edition
  22. CE = "CE", "社区"
  23. # Enterprise Edition
  24. PE = "PE", "专业版"
  25. # Professional Edition
  26. EE = "EE", '企业版'
  27. class SystemProfileResponseSerializer(serializers.Serializer):
  28. version = serializers.CharField(required=True, label="version")
  29. edition = serializers.CharField(required=True, label="edition")
  30. license_is_valid = serializers.BooleanField(required=True, label="License is valid")
  31. class SystemProfileSerializer(serializers.Serializer):
  32. @staticmethod
  33. def profile():
  34. version = os.environ.get('MAXKB_VERSION')
  35. license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
  36. return {'version': version, 'edition': settings.edition,
  37. 'license_is_valid': license_is_valid() if license_is_valid() is not None else False,
  38. 'rsa': get_key_pair_by_sql().get('key'),
  39. 'app_title': CONFIG.get('APP_TITLE') or '智能体平台',
  40. 'app_version': CONFIG.get('APP_VERSION') or 'v1.0'}