Spaces:
Runtime error
Runtime error
File size: 2,908 Bytes
b146c64 6b82347 db75ba3 b146c64 db75ba3 b146c64 559a6fa db75ba3 b146c64 db75ba3 b146c64 db75ba3 b146c64 db75ba3 b146c64 3d722fe b146c64 db75ba3 b146c64 3d722fe db75ba3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import uuid
from sqlalchemy import Column, DateTime, Integer, String, Boolean, ForeignKey ,DateTime,JSON,Uuid,String
from sqlalchemy.orm import Mapped, relationship, declarative_base
import uuid
from sqlalchemy.sql import func
Base = declarative_base()
class users(Base):
__tablename__ = 'users'
id:Mapped[uuid.UUID] = Column(Uuid(as_uuid=True), primary_key=True, index=True, default=uuid.uuid4)
username = Column(String, unique=True, index=True)
email = Column(String, unique=True, index=True)
hashed_password = Column(String)
is_active = Column(Boolean, default=True)
is_superuser = Column(Boolean, default=False)
is_verified = Column(Boolean, default=False)
created_at = Column(DateTime, default=func.now())
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())
last_login = Column(DateTime, default=func.now(), onupdate=func.now())
documents = relationship("documents", back_populates="user")
conversations = relationship("conversations", back_populates="user")
class documents(Base):
__tablename__ = 'documents'
id:Mapped[uuid.UUID] = Column(Uuid(as_uuid=True), primary_key=True, index=True, default=uuid.uuid4)
file_name = Column(String)
file_type = Column(String)
file_size = Column(Integer)
filebase_key = Column(String, nullable=True, unique=True)
filebase_url = Column(String, nullable=True)
bucket_name = Column(String, nullable=False, default="pdf-doc-docx")
chunks = Column(Integer)
primary_language = Column(String)
created_at = Column(DateTime, default=func.now())
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())
user_id = Column(Uuid(as_uuid=True), ForeignKey('users.id'))
user = relationship("users", back_populates="documents")
class conversations(Base):
__tablename__ = 'conversations'
id:Mapped[uuid.UUID] = Column(Uuid(as_uuid=True), primary_key=True, index=True, default=uuid.uuid4)
conversation_uuid = Column(String,unique=True,index=True,nullable=False)
user_id = Column(Uuid(as_uuid=True), ForeignKey('users.id'))
meta_data = Column(JSON, nullable=True)
user = relationship("users", back_populates="conversations")
messages = relationship("messages", back_populates="conversation")
class messages(Base):
__tablename__ = 'messages'
id:Mapped[uuid.UUID] = Column(Uuid(as_uuid=True), primary_key=True, index=True, default=uuid.uuid4)
conversation_id = Column(
String,
ForeignKey('conversations.conversation_uuid'),
index=True,
nullable=False
)
role = Column(String)
content = Column(String)
meta_data = Column(JSON, nullable=True)
created_at = Column(DateTime, default=func.now())
conversation = relationship("conversations", back_populates="messages") |