- AiSetting 模型新增 6 个提示词字段 + 3 个阶段温度字段 - main.py 迁移逻辑改为检测 ai_settings 表的新字段并填充默认值 - generate.py 从数据库读取生成提示词,去掉硬编码 - optimizer 从 API 读取各阶段提示词和温度,删除 prompts.py - crawler 从 API 读取提取/改写提示词和温度,删除 prompts.py - settings/active 端点去掉 token 认证(供爬虫/优化器使用) - 后台设置页新增提示词编辑区和温度调节控件 - 新增 _ensure_default_settings 自动创建默认配置
36 lines
1.9 KiB
Python
36 lines
1.9 KiB
Python
from sqlalchemy import Boolean, Column, DateTime, Float, Integer, String, Text, func
|
|
|
|
from app.database import Base
|
|
|
|
|
|
class AiSetting(Base):
|
|
__tablename__ = "ai_settings"
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
provider = Column(String(50), nullable=False, default="nvidia")
|
|
api_base = Column(String(500), nullable=False, default="https://integrate.api.nvidia.com/v1")
|
|
api_key = Column(String(500), nullable=False, default="")
|
|
model_name = Column(String(100), nullable=False, default="nvidia/llama-3.1-nemotron-70b-instruct")
|
|
temperature = Column(Float, nullable=False, default=0.7)
|
|
max_tokens = Column(Integer, nullable=False, default=2048)
|
|
|
|
# 提示词模板
|
|
generate_prompt = Column(Text, nullable=True, comment="AI 笑话生成提示词")
|
|
optimizer_quality_prompt = Column(Text, nullable=True, comment="优化器-质量检测提示词")
|
|
optimizer_polish_prompt = Column(Text, nullable=True, comment="优化器-润色提示词")
|
|
optimizer_evaluate_prompt = Column(Text, nullable=True, comment="优化器-评价分类提示词")
|
|
crawler_extract_prompt = Column(Text, nullable=True, comment="爬虫-笑话提取提示词")
|
|
crawler_rewrite_prompt = Column(Text, nullable=True, comment="爬虫-改写提示词")
|
|
|
|
# 优化器各阶段温度
|
|
optimizer_quality_temperature = Column(Float, nullable=False, default=0.3)
|
|
optimizer_polish_temperature = Column(Float, nullable=False, default=0.8)
|
|
optimizer_evaluate_temperature = Column(Float, nullable=False, default=0.3)
|
|
|
|
crawl_enabled = Column(Boolean, nullable=False, default=False)
|
|
crawl_keywords = Column(Text, nullable=True, default="")
|
|
max_pages_per_run = Column(Integer, nullable=False, default=3)
|
|
|
|
is_active = Column(Boolean, nullable=False, default=True)
|
|
created_at = Column(DateTime, default=func.now())
|
|
updated_at = Column(DateTime, default=func.now(), onupdate=func.now()) |