yuvabe-dev / src /chatbot /models.py
shri-jai
chore: image_url to kb
cbbf969
import uuid
from datetime import datetime
from typing import List
from pgvector.sqlalchemy import Vector
from sqlalchemy import Column
from sqlmodel import Field, Relationship, SQLModel, ForeignKey
from sqlalchemy.dialects.postgresql import UUID
class KnowledgeBase(SQLModel, table=True):
__tablename__ = "knowledge_base"
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
name: str = Field(nullable=False)
description: str | None = None
created_at: datetime = Field(default_factory=datetime.now)
knowledge_chunk: List["KnowledgeChunk"] = Relationship(
back_populates="knowledge_base"
)
class KnowledgeChunk(SQLModel, table=True):
__tablename__ = "knowledge_chunk"
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
kb_id: uuid.UUID = Field(
sa_column=Column(UUID(as_uuid=True),
ForeignKey("knowledge_base.id", ondelete="CASCADE"),
nullable=False
)
)
chunk_index: int
chunk_text: str
image_url: str | None = Field(default=None)
embedding: List[float] = Field(sa_column=Column(Vector(768)))
knowledge_base: "KnowledgeBase" = Relationship(back_populates="knowledge_chunk")