nex_basse/backend/app/models/ai_model.py

21 lines
1001 B
Python

from sqlalchemy import String, Integer, SmallInteger, JSON
from sqlalchemy.orm import Mapped, mapped_column
from .base import Base, TimestampMixin, MYSQL_TABLE_ARGS
class AIModel(Base, TimestampMixin):
__tablename__ = "biz_ai_model"
__table_args__ = MYSQL_TABLE_ARGS
model_id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
model_type: Mapped[str] = mapped_column(String(20), nullable=False) # asr / llm
provider: Mapped[str] = mapped_column(String(50), nullable=False)
model_name: Mapped[str] = mapped_column(String(100), nullable=False)
api_key: Mapped[str | None] = mapped_column(String(255))
base_url: Mapped[str | None] = mapped_column(String(255))
api_path: Mapped[str | None] = mapped_column(String(100))
config: Mapped[dict | None] = mapped_column(JSON)
# Changed Boolean to SmallInteger
is_default: Mapped[int] = mapped_column(SmallInteger, default=0)
status: Mapped[int] = mapped_column(Integer, default=1)