ShiErFeng/shierfeng-fastapi-backend/module_ai/entity/do/ai_model_do.py
2026-07-24 09:43:10 +08:00

63 lines
2.5 KiB
Python

from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Float, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class AiModels(Base):
"""
AI模型表
"""
__tablename__ = 'ai_models'
__table_args__ = {'comment': 'AI模型表'}
model_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='模型主键')
model_code = Column(String(100), nullable=False, comment='模型编码')
model_name = Column(
String(100),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='模型名称',
)
provider = Column(String(50), nullable=False, comment='提供商')
model_sort = Column(Integer, nullable=False, comment='显示顺序')
api_key = Column(
String(255),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='API Key',
)
base_url = Column(
String(255),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='Base URL',
)
model_type = Column(
String(50),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='模型类型',
)
max_tokens = Column(Integer, nullable=True, comment='最大输出token')
temperature = Column(Float, nullable=True, comment='默认温度')
support_reasoning = Column(CHAR(1), server_default='N', comment='是否支持推理')
support_images = Column(CHAR(1), server_default='N', comment='是否支持图片')
status = Column(CHAR(1), server_default='0', comment='模型状态')
user_id = Column(BigInteger, nullable=True, comment='用户ID')
dept_id = Column(BigInteger, nullable=True, comment='部门ID')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)