from django.utils.translation import gettext_lazy as _ from orgs.models import Organization from .base import BaseType class GPTTypes(BaseType): CHATGPT = 'chatgpt', _('ChatGPT') @classmethod def _get_base_constrains(cls) -> dict: return { '*': { 'charset_enabled': False, 'gateway_enabled': False, 'su_enabled': False, } } @classmethod def _get_automation_constrains(cls) -> dict: constrains = { '*': { 'ansible_enabled': False, 'ping_enabled': False, 'gather_facts_enabled': False, 'verify_account_enabled': False, 'change_secret_enabled': False, 'push_account_enabled': False, 'gather_accounts_enabled': False, } } return constrains @classmethod def _get_protocol_constrains(cls) -> dict: return { '*': { 'choices': '__self__', } } @classmethod def internal_platforms(cls): return { cls.CHATGPT: [ {'name': 'ChatGPT'} ], } @classmethod def get_community_types(cls): return [ cls.CHATGPT, ] CHATX_NAME = 'ChatX' def create_or_update_chatx_resources(chatx_name=CHATX_NAME, org_id=Organization.SYSTEM_ID): from django.apps import apps platform_model = apps.get_model('assets', 'Platform') asset_model = apps.get_model('assets', 'Asset') account_model = apps.get_model('accounts', 'Account') platform, __ = platform_model.objects.get_or_create( name=chatx_name, defaults={ 'internal': True, 'type': chatx_name, 'category': 'ai', } ) asset, __ = asset_model.objects.get_or_create( address=chatx_name, defaults={ 'name': chatx_name, 'platform': platform, 'org_id': org_id } ) account, __ = account_model.objects.get_or_create( username=chatx_name, defaults={ 'name': chatx_name, 'asset': asset, 'org_id': org_id } ) return asset, account