Fixed imports to pep 8 conventions
This commit is contained in:
parent
348ee6734a
commit
c802952765
20 changed files with 41 additions and 45 deletions
|
|
@ -1,9 +1,9 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin import ModelAdmin, TabularInline
|
from django.contrib.admin import ModelAdmin
|
||||||
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
|
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
|
|
||||||
from apps.accounts.models import User, Role, Organization, Invite
|
from apps.accounts.models import Invite, Organization, Role, User
|
||||||
|
|
||||||
admin.site.unregister(Group)
|
admin.site.unregister(Group)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
from django.contrib.auth.models import BaseUserManager
|
from django.contrib.auth.models import BaseUserManager
|
||||||
from typing import TYPE_CHECKING
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from apps.accounts.models import User
|
from apps.accounts.models import User
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
from typing import ClassVar
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from typing import ClassVar
|
||||||
|
|
||||||
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
|
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import BooleanField, CASCADE, CharField, DateField, DateTimeField, EmailField, ForeignKey, IntegerField, ManyToManyField, Model, TextField
|
from django.db.models import CASCADE, BooleanField, CharField, DateField, DateTimeField, EmailField, ForeignKey, IntegerField, ManyToManyField, Model, TextField
|
||||||
from django.db.models.signals import m2m_changed, post_delete, post_save
|
from django.db.models.signals import m2m_changed, post_delete, post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils.translation import gettext_lazy as _
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from apps.accounts.managers import UserManager
|
from apps.accounts.managers import UserManager
|
||||||
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
||||||
|
|
@ -111,7 +111,7 @@ class Role(IdentifierMixin, TimeStampMixin, Model):
|
||||||
@receiver(post_save, sender=Role)
|
@receiver(post_save, sender=Role)
|
||||||
def create_default_agents_for_role(sender, instance: Role, created: bool, **kwargs):
|
def create_default_agents_for_role(sender, instance: Role, created: bool, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
from apps.onboarding.models import AgentConfig # L: circular import :(
|
from apps.onboarding.models import AgentConfig # L: circular import :(
|
||||||
|
|
||||||
default_agents = [
|
default_agents = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from rest_framework.serializers import ModelSerializer, SerializerMethodField
|
from rest_framework.serializers import ModelSerializer, SerializerMethodField
|
||||||
from apps.accounts.models import Role, User, Organization, Invite
|
|
||||||
|
from apps.accounts.models import Invite, Organization, Role, User
|
||||||
|
|
||||||
class UserSerializer(ModelSerializer):
|
class UserSerializer(ModelSerializer):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,11 @@ from django.contrib.auth import authenticate, login, logout
|
||||||
from django.core.exceptions import ValidationError as DjangoValidationError
|
from django.core.exceptions import ValidationError as DjangoValidationError
|
||||||
from django.db import IntegrityError, transaction
|
from django.db import IntegrityError, transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
||||||
from rest_framework.permissions import AllowAny, IsAuthenticated, IsAuthenticatedOrReadOnly
|
from rest_framework.permissions import AllowAny, IsAuthenticated, IsAuthenticatedOrReadOnly
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.status import HTTP_204_NO_CONTENT, HTTP_400_BAD_REQUEST, HTTP_401_UNAUTHORIZED, HTTP_403_FORBIDDEN, HTTP_404_NOT_FOUND, HTTP_200_OK, HTTP_201_CREATED
|
from rest_framework.status import HTTP_200_OK, HTTP_201_CREATED, HTTP_204_NO_CONTENT, HTTP_400_BAD_REQUEST, HTTP_401_UNAUTHORIZED, HTTP_403_FORBIDDEN, HTTP_404_NOT_FOUND
|
||||||
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
||||||
|
|
||||||
from apps.accounts.models import Invite, Organization, Role, User
|
from apps.accounts.models import Invite, Organization, Role, User
|
||||||
|
|
@ -273,7 +272,6 @@ class InviteViewSet(ModelViewSet):
|
||||||
'organization': OrganizationSerializer(organization).data,
|
'organization': OrganizationSerializer(organization).data,
|
||||||
}, status=HTTP_200_OK)
|
}, status=HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class RoleViewSet(ModelViewSet):
|
class RoleViewSet(ModelViewSet):
|
||||||
queryset = Role.objects.all()
|
queryset = Role.objects.all()
|
||||||
serializer_class = RoleSerializer
|
serializer_class = RoleSerializer
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from apps.knowledge.models import TrainingFile, RoleRagDocument
|
|
||||||
|
from apps.knowledge.models import RoleRagDocument, TrainingFile
|
||||||
|
|
||||||
@admin.register(TrainingFile)
|
@admin.register(TrainingFile)
|
||||||
class TrainingFileAdmin(admin.ModelAdmin):
|
class TrainingFileAdmin(admin.ModelAdmin):
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import pgvector.django.vector
|
import pgvector.django.vector
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from django.db.models import CASCADE, CharField, ForeignKey, IntegerField, TextField, BooleanField, FileField, JSONField, Model
|
from django.db import transaction
|
||||||
|
from django.db.models import CASCADE, BooleanField, CharField, FileField, ForeignKey, IntegerField, JSONField, Model, TextField
|
||||||
from django.db.models.signals import post_delete, post_save
|
from django.db.models.signals import post_delete, post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.db import transaction
|
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from pgvector.django import VectorField
|
from pgvector.django import VectorField
|
||||||
|
|
||||||
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
||||||
from apps.accounts.models import User, Role
|
from apps.accounts.models import Role, User
|
||||||
|
|
||||||
class TrainingFile(IdentifierMixin, TimeStampMixin, Model):
|
class TrainingFile(IdentifierMixin, TimeStampMixin, Model):
|
||||||
STATUS_CHOICES = [
|
STATUS_CHOICES = [
|
||||||
|
|
@ -38,7 +38,6 @@ class TrainingFile(IdentifierMixin, TimeStampMixin, Model):
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return f"{self.file_name} ({self.role.name})"
|
return f"{self.file_name} ({self.role.name})"
|
||||||
|
|
||||||
|
|
||||||
class RoleRagDocument(IdentifierMixin, TimeStampMixin, Model):
|
class RoleRagDocument(IdentifierMixin, TimeStampMixin, Model):
|
||||||
|
|
||||||
role = ForeignKey(Role, on_delete=CASCADE, related_name='rag_documents')
|
role = ForeignKey(Role, on_delete=CASCADE, related_name='rag_documents')
|
||||||
|
|
@ -70,6 +69,6 @@ def delete_physical_file(sender, instance, **kwargs):
|
||||||
def trigger_ingestion(sender, instance, created, **kwargs):
|
def trigger_ingestion(sender, instance, created, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
def _enqueue():
|
def _enqueue():
|
||||||
from apps.knowledge.tasks import ingest_training_file_task # L: circular import :(
|
from apps.knowledge.tasks import ingest_training_file_task # L: circular import :(
|
||||||
ingest_training_file_task.delay(str(instance.uuid))
|
ingest_training_file_task.delay(str(instance.uuid))
|
||||||
transaction.on_commit(_enqueue)
|
transaction.on_commit(_enqueue)
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from rest_framework.serializers import ModelSerializer, SerializerMethodField
|
from rest_framework.serializers import ModelSerializer, SerializerMethodField
|
||||||
|
|
||||||
from apps.accounts.serializers import RoleSerializer, UserSerializer
|
from apps.accounts.serializers import RoleSerializer, UserSerializer
|
||||||
from apps.knowledge.models import TrainingFile, RoleRagDocument
|
from apps.knowledge.models import RoleRagDocument, TrainingFile
|
||||||
|
|
||||||
class TrainingFileSerializer(ModelSerializer):
|
class TrainingFileSerializer(ModelSerializer):
|
||||||
uploaded_by = UserSerializer(read_only=True)
|
uploaded_by = UserSerializer(read_only=True)
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
import httpx
|
|
||||||
import hashlib
|
import hashlib
|
||||||
from pypdf import PdfReader
|
|
||||||
from docx import Document
|
|
||||||
|
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
from django.db import transaction
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.db import transaction
|
||||||
|
from docx import Document
|
||||||
|
from httpx import Client, Timeout
|
||||||
|
from pypdf import PdfReader
|
||||||
|
|
||||||
from .models import TrainingFile, RoleRagDocument
|
from apps.knowledge.models import RoleRagDocument, TrainingFile
|
||||||
|
|
||||||
|
|
||||||
def _decode_text_bytes(raw_bytes: bytes) -> str:
|
def _decode_text_bytes(raw_bytes: bytes) -> str:
|
||||||
try:
|
try:
|
||||||
|
|
@ -16,7 +15,6 @@ def _decode_text_bytes(raw_bytes: bytes) -> str:
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
return raw_bytes.decode('latin-1', errors='ignore')
|
return raw_bytes.decode('latin-1', errors='ignore')
|
||||||
|
|
||||||
|
|
||||||
def _extract_text_from_training_file(file_obj: TrainingFile) -> str:
|
def _extract_text_from_training_file(file_obj: TrainingFile) -> str:
|
||||||
file_name = (file_obj.file_name or '').lower()
|
file_name = (file_obj.file_name or '').lower()
|
||||||
|
|
||||||
|
|
@ -58,11 +56,10 @@ def ingest_training_file_task(self, file_uuid):
|
||||||
|
|
||||||
all_documents = []
|
all_documents = []
|
||||||
chunk_counter = 0
|
chunk_counter = 0
|
||||||
|
|
||||||
|
timeout = Timeout(60.0)
|
||||||
|
|
||||||
|
with Client(timeout=timeout) as client:
|
||||||
timeout = httpx.Timeout(60.0)
|
|
||||||
|
|
||||||
with httpx.Client(timeout=timeout) as client:
|
|
||||||
|
|
||||||
for text_segment in _get_text_chunks(raw_text):
|
for text_segment in _get_text_chunks(raw_text):
|
||||||
response = client.post(
|
response = client.post(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from rest_framework.parsers import FormParser, MultiPartParser
|
|
||||||
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
||||||
|
from rest_framework.parsers import FormParser, MultiPartParser
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
||||||
|
|
||||||
|
|
@ -9,7 +9,6 @@ from apps.accounts.permissions import can_manage_organization
|
||||||
from apps.knowledge.models import RoleRagDocument, TrainingFile
|
from apps.knowledge.models import RoleRagDocument, TrainingFile
|
||||||
from apps.knowledge.serializers import RoleRagDocumentSerializer, TrainingFileSerializer
|
from apps.knowledge.serializers import RoleRagDocumentSerializer, TrainingFileSerializer
|
||||||
|
|
||||||
|
|
||||||
class TrainingFileViewSet(ModelViewSet):
|
class TrainingFileViewSet(ModelViewSet):
|
||||||
queryset = TrainingFile.objects.all()
|
queryset = TrainingFile.objects.all()
|
||||||
serializer_class = TrainingFileSerializer
|
serializer_class = TrainingFileSerializer
|
||||||
|
|
@ -75,7 +74,6 @@ class TrainingFileViewSet(ModelViewSet):
|
||||||
|
|
||||||
return super().destroy(request, *args, **kwargs)
|
return super().destroy(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class RoleRagDocumentViewSet(ReadOnlyModelViewSet):
|
class RoleRagDocumentViewSet(ReadOnlyModelViewSet):
|
||||||
queryset = RoleRagDocument.objects.all()
|
queryset = RoleRagDocument.objects.all()
|
||||||
serializer_class = RoleRagDocumentSerializer
|
serializer_class = RoleRagDocumentSerializer
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from apps.onboarding.models import AgentConfig, OnboardingSession, AgentInteractionLog, OnboardingFlow
|
from apps.onboarding.models import AgentConfig, AgentInteractionLog, OnboardingFlow, OnboardingSession
|
||||||
|
|
||||||
class AgentInteractionLogInline(admin.TabularInline):
|
class AgentInteractionLogInline(admin.TabularInline):
|
||||||
model = AgentInteractionLog
|
model = AgentInteractionLog
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ class MCPRouter:
|
||||||
return {"error": f"Tool {name} not found"}
|
return {"error": f"Tool {name} not found"}
|
||||||
|
|
||||||
async def _get_embedding(self, text):
|
async def _get_embedding(self, text):
|
||||||
"""Fetch embedding from the GPU node."""
|
|
||||||
async with httpx.AsyncClient() as client:
|
async with httpx.AsyncClient() as client:
|
||||||
response = await client.post(
|
response = await client.post(
|
||||||
f"{settings.INFERENCE_URL}/v1/embeddings",
|
f"{settings.INFERENCE_URL}/v1/embeddings",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import django.db.models.deletion
|
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
from django.db.models import CASCADE, CharField, ForeignKey, JSONField, TextField, Model, DateTimeField, BooleanField
|
from django.db.models import CASCADE, BooleanField, CharField, DateTimeField, ForeignKey, JSONField, Model, TextField
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
from apps.accounts.mixins import IdentifierMixin, TimeStampMixin
|
||||||
from apps.accounts.models import User, Role, Organization
|
from apps.accounts.models import Organization, Role, User
|
||||||
|
|
||||||
class AgentConfig(IdentifierMixin, TimeStampMixin, Model):
|
class AgentConfig(IdentifierMixin, TimeStampMixin, Model):
|
||||||
AGENT_TYPES = [
|
AGENT_TYPES = [
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
from .consumers import OnboardingConsumer
|
from .consumers import OnboardingConsumer
|
||||||
|
|
||||||
websocket_urlpatterns = [
|
websocket_urlpatterns = [
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from rest_framework.serializers import CharField, ModelSerializer, SerializerMethodField
|
from rest_framework.serializers import CharField, ModelSerializer, SerializerMethodField
|
||||||
|
|
||||||
from apps.accounts.serializers import UserSerializer, RoleSerializer, OrganizationSerializer
|
from apps.accounts.serializers import OrganizationSerializer, RoleSerializer, UserSerializer
|
||||||
from apps.onboarding.models import AgentConfig, OnboardingSession, AgentInteractionLog, OnboardingFlow
|
from apps.onboarding.models import AgentConfig, AgentInteractionLog, OnboardingFlow, OnboardingSession
|
||||||
|
|
||||||
class AgentConfigSerializer(ModelSerializer):
|
class AgentConfigSerializer(ModelSerializer):
|
||||||
organization = OrganizationSerializer(read_only=True)
|
organization = OrganizationSerializer(read_only=True)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ from apps.onboarding.models import AgentConfig
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
class OnboardingConsumerConfigSelectionTests(TestCase):
|
class OnboardingConsumerConfigSelectionTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.user = User.objects.create_user(
|
self.user = User.objects.create_user(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue