Source code for smarter.apps.vectorstore.serializers

# pylint: disable=C0115
"""
Serializer classes for the Vectorstore app.
"""

from smarter.apps.account.models import User, UserProfile
from smarter.apps.account.serializers import (
    AccountMiniSerializer,
    MetaDataWithOwnershipModelSerializer,
    UserMiniSerializer,
)
from smarter.apps.provider.serializers import (
    ProviderModelSerializer,
    ProviderSerializer,
)
from smarter.apps.secret.serializers import SecretSerializer

from .models import VectorestoreMeta


[docs] class VectorstoreSerializer(MetaDataWithOwnershipModelSerializer): """PluginMeta model serializer.""" owner = UserMiniSerializer(read_only=True) account = AccountMiniSerializer(read_only=True) password = SecretSerializer(read_only=True) provider = ProviderSerializer(read_only=True) provider_model = ProviderModelSerializer(read_only=True) class Meta: model = VectorestoreMeta fields = "__all__" read_only_fields = ["created_at", "updated_at", "owner", "account"]
[docs] def get_queryset(self): name = self.request.GET.get("name") # type: ignore backend = self.request.GET.get("backend") # type: ignore user = self.request.user if hasattr(self.request, "user") else None # type: ignore if name and isinstance(user, User) and user.is_authenticated: user_profile = UserProfile.get_cached_object(user=user) return VectorestoreMeta.get_cached_object(name=name, user_profile=user_profile, backend=backend) return VectorestoreMeta.objects.none()