44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
"""
|
||
AI 模型配置模型
|
||
"""
|
||
from sqlalchemy import Column, Integer, String, DateTime, Boolean, Text, Float
|
||
from sqlalchemy.sql import func
|
||
|
||
from .base import Base
|
||
|
||
|
||
class AIModelConfig(Base):
|
||
"""AI 模型配置表"""
|
||
__tablename__ = "ai_model_configs"
|
||
|
||
id = Column(Integer, primary_key=True, autoincrement=True, comment="配置 ID")
|
||
|
||
# 模型基本信息
|
||
model_name = Column(String(100), unique=True, nullable=False, index=True, comment="模型名称(如 gpt-3.5-turbo)")
|
||
provider = Column(String(50), nullable=False, comment="提供商(openai/zhipu/baidu/aliyun)")
|
||
display_name = Column(String(200), comment="显示名称")
|
||
|
||
# API 配置
|
||
api_url = Column(String(500), nullable=False, comment="API 地址")
|
||
api_key = Column(String(500), nullable=False, comment="API Key(加密存储)")
|
||
api_version = Column(String(50), comment="API 版本")
|
||
|
||
# 模型参数
|
||
temperature = Column(Float, default=0.7, comment="温度(0-1)")
|
||
max_tokens = Column(Integer, default=1000, comment="最大 Token 数")
|
||
top_p = Column(Float, default=1.0, comment="Top P 参数")
|
||
|
||
# 状态控制
|
||
is_default = Column(Boolean, default=False, comment="是否为默认模型")
|
||
is_active = Column(Boolean, default=True, comment="是否启用")
|
||
|
||
# 描述信息
|
||
description = Column(Text, comment="模型描述")
|
||
|
||
# 时间戳
|
||
created_at = Column(DateTime, server_default=func.now(), comment="创建时间")
|
||
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间")
|
||
|
||
def __repr__(self):
|
||
return f"<AIModelConfig(id={self.id}, name='{self.model_name}', provider='{self.provider}')>"
|