@@ -13,6 +13,8 @@ from backend.public import urlpatterns as public_urlpatterns api = NinjaAPI(title='AIR API', version='1.0.0') api.add_router('copywrite/', 'tools.copywrite.routes.v1.router') api.add_router('users/', 'authentication.routes.v1.router') +api.add_router('chats/', 'tools.chats.routes.v1.router') +api.add_router('media/', 'tools.media.routes.v1.router') @api.exception_handler(ObjectDoesNotExist) @@ -5,6 +5,7 @@ from ninja import ModelSchema from ml_model.models import ( ConfigurationParameter, ModelConfiguration, + NeuronModel, ) @@ -25,3 +26,9 @@ class ModelConfigurationSchema(ModelSchema): class Config: protected_namespaces = () + + +class NeuronModelLink(ModelSchema): + class Meta: + model = NeuronModel + fields = ('title', 'slug') @@ -0,0 +1,19 @@ +from typing import List + +from django.db.models import Count +from ninja import Router + +from authentication.security import SyncAuthBearer +from ml_model.models import NeuronModel +from ml_model.schemas import NeuronModelLink + +router = Router(auth=SyncAuthBearer(), tags=['chats']) + + +@router.get('links/', tags=['chats/links'], response=List[NeuronModelLink]) +def get_links(request): + return ( + NeuronModel.objects.filter(category__slug='chat-bots') + .annotate(inputs_count=Count('model_modelinputs')) + .filter(inputs_count__gt=0) + ) @@ -0,0 +1,19 @@ +from typing import List + +from django.db.models import Count +from ninja import Router + +from authentication.security import SyncAuthBearer +from ml_model.models import NeuronModel +from ml_model.schemas import NeuronModelLink + +router = Router(auth=SyncAuthBearer(), tags=['media']) + + +@router.get('images/links/', tags=['media/images/links'], response=List[NeuronModelLink]) +def get_links(request): + return ( + NeuronModel.objects.filter(category__slug='images') + .annotate(inputs_count=Count('model_modelinputs')) + .filter(inputs_count__gt=0) + )