Files
beige/backend/alembic/versions/013_text_candidate_edited_field.py
yangqianqian e3fb6f2655 feat(D1): 改稿进飞轮 - 最强真实信号 text_edit +5
倩倩姐2026-06-16拍板:改稿=用户真改了字=最在乎这条方向=最强真实信号。
先激进入飞轮跑一周,北哥用后按真实数据校准是否加"过审才入"闸门。

改动:
- enums.py: SignalType.TEXT_EDIT + SIGNAL_WEIGHTS权重5(≥选择类)
- task.py: TextCandidate.edited 布尔字段
- 013迁移: text_candidates加edited列 + preference_events.signal_type
  ENUM补text_edit(端到端实测抓出:不补会Data truncated)
- task_actions.py: POST /{task_id}/text-candidates/{cid}/edit 端点
  回写content+edited=True+record_signal写text_edit,走task_actions不碰review.py

端到端实测:edited False→True,飞轮信号真落库type=text_edit weight=5。
顺手: tsconfig.tsbuildinfo 移出版本控制(构建产物)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 12:20:54 +08:00

47 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""013 text_candidates 表加 edited 字段(改稿进飞轮)
Revision ID: 013
Revises: 012
Create Date: 2026-06-16
改稿=用户真改了文案的字=最强真实飞轮信号倩倩姐2026-06-16拍板权重+5
edited 标记该候选是否被用户改过,配合 SignalType.TEXT_EDIT 写入飞轮偏好事件。
历史行默认 false避免 NULL。
"""
from alembic import op
import sqlalchemy as sa
revision = "013"
down_revision = "012"
branch_labels = None
depends_on = None
def upgrade():
op.add_column(
"text_candidates",
sa.Column(
"edited",
sa.Boolean(),
nullable=False,
server_default=sa.false(),
comment="是否被用户改稿过=最强飞轮信号(text_edit)",
),
)
# preference_events.signal_type 是 MySQL ENUM,必须把 text_edit 加进枚举值,
# 否则写 text_edit 信号会 Data truncated 报错(端到端实测抓出)。
op.execute(
"ALTER TABLE preference_events MODIFY COLUMN signal_type "
"ENUM('text_select','image_select','approve','reject_with_reason',"
"'regenerate','text_edit') NOT NULL"
)
def downgrade():
op.execute(
"ALTER TABLE preference_events MODIFY COLUMN signal_type "
"ENUM('text_select','image_select','approve','reject_with_reason',"
"'regenerate') NOT NULL"
)
op.drop_column("text_candidates", "edited")