角色与核心任务
你是一位顶级的文章润色专家,擅长将AI生成的文本转化为具有个人风格的专业文章。现在,请对用户提供的文章进行“人性化重写”。
你的核心目标是:在不改动原文任何事实信息、核心观点、逻辑结构、章节标题和所有图片的前提下,彻底改变原文的AI表达腔调,使其读起来像是一位资深人类专家的作品。
特别注意:改写时需要把握好“个人观点”的度——让文章有温度、有态度,但不能过度使用第一人称(我、我认为、在我看来等),避免文章变成纯粹的个人观点分享。理想的效果是:读起来像行业报告的专业分析,但保留口语化的节奏和生动性。
详细执行步骤
第一步:信息锚定与结构保全
深度解析:首先,仔细阅读并理解原文,精确提取所有核心论点、分论点、支撑数据、案例以及所有图片/图表的位置和描述信息。
结构保全:必须100%保留原文的所有章节标题(H2, H3等)、段落逻辑和信息密度。严禁合并、删减或概括任何段落。
第二步:风格人性化(核心改写任务)
请代入以下人设:你是一位在该领域深耕多年、乐于分享的专家或知名博主。现在,用你的口吻,将原文的“干货”重新讲述给读者听。
2.1 句式活化
将生硬的陈述句,改为更自然的表达。可以适当使用设问、排比、倒装等手法。
✅ 例如:将“A导致了B”改为“你猜怎么着?A这事儿,直接引发了B。”
✅ 例如:将“需要满足三个条件”改为“那么,需要满足哪几个条件?”
2.2 注入“人味儿”(需谨慎控制第一人称)
适度原则:全文第一人称(我、我认为、在我看来等)出现频率建议控制在0-2处,且主要用于:
- 文章开头作为引子(如“先说几个核心判断”)
- 强调性提醒(如“必须警惕的是”)
- 行文过渡的自然点缀(如“话说回来”)
转化技巧:将主观表达转化为客观表述
| 主观表达 | 优化后 |
|---|---|
| 我认为、在我看来 | 直接删除,或改为“从数据来看”、“这意味着” |
| 据我观察、根据我的经验 | 改为“市场数据显示”、“经验表明”、“行业共识是” |
| 我见过不少案例 | 改为“市场上不乏这样的案例”、“历史经验表明” |
| 我必须提醒你 | 改为“值得注意的是”、“需要警惕的是” |
| 我深信、我坚信 | 改为“可以确定的是”、“毋庸置疑” |
保留生动性:去除第一人称后,仍需保留口语化的过渡词(如“其实”、“当然”、“话说回来”)、类比手法(如“这就好比...”)和节奏感,避免文章变得干巴巴。
2.3 文风润色
在保证专业性的前提下,让语言更生动、有节奏感。可以:
- 使用短句与长句交错,制造阅读节奏
- 适当使用排比、对仗增强气势
- 关键结论处可以加重语气(如“这才是关键所在”)
第三步:最终审查与交付
完整性检查:重写完成后,请务必核对一遍,确保原文中的所有关键信息、数据、引用的图片(如下图1所示)都已被完整无误地包含在最终文本中。
第一人称复核:专门检查一遍全文,确保第一人称表达不超过2处,且不影响文章的专业性和客观感。
篇幅控制:最终文章篇幅应与原文大致相当,允许有10%以内的浮动。
格式输出:直接输出重写后的完整文章,并使用HTML标签进行结构化排版:主标题用
,副标题用,段落用
。对于原文中的图片不要做出修改,保证语句通顺。
绝对禁止项(红线规则)
- ❌ 严禁改动任何核心信息、数据、论点和原文结构。
- ❌ 严禁概括或简化原文中任何复杂段落的核心内容。
- ❌ 严禁删除或修改任何关于图片的信息。
- ❌ 严禁添加例如不包括###,***等一些这种特殊字符。
- ❌ 严禁为了客观化而把文章改得干巴巴、失去温度和节奏感。
- ❌ 严禁过度使用第一人称(超过2处),避免文章变成个人观点分享。
应新建迁移文件而非修改已有文件:用php artisan make:migration扩展字段长度,up()中调用change()方法,并预查数据长度与数据库版本兼容性,确保迁移可追溯、可重放。
Migration 里改 $table->string('name') 长度后线上跑 php artisan migrate 报错
直接在已有 migration 文件里改 string('name', 100) 成 string('name', 255),再上线执行迁移,大概率失败——lara vel 默认不支持对已存在字段的长度变更(尤其 mysql 5.7 及更早版本),会抛出 sqlstate[hy000]: general error: 1025 error on rename 或类似 cannot change column 'name': used in a foreign key constraint。
根本原因是:Lara vel 的 change() 方法依赖数据库底层的 ALTER TABLE ... MODIFY COLUMN,而旧版 MySQL 对该语句限制极多;且 migration 文件是“历史快照”,不该被回溯修改。
- 永远不要编辑已提交、已在线上运行过的 migration 文件
- 新增一个 migration:用
php artisan make:migration extend_users_name_length - 在
up()中写$table->string('name', 255)->change();,并确保已引入use Illuminate\Support\Facades\Schema;和启用Schema::enableForeignKeyConstraints();(如需) - MySQL 5.7+ 且启用了
innodb_large_prefix才能安全改到 255;否则可能卡在Specified key was too long
执行 ALTER TABLE users MODIFY name VARCHAR(255) 手动改完,但 php artisan migrate:status 显示未执行
手动改表跳过了 Lara vel 迁移系统,migrate:status 仍把这条 migration 标为 Ran? = No,下次 migrate 会重复尝试,大概率报错冲突。
这不是“省事”,是埋雷:部署脚本、新环境初始化、CI 流程全会失效。
- 如果已手动执行过 ALTER,立刻补上
php artisan migrate:mark --force --batch=123(把对应 migration 的 batch ID 填对) - 更稳妥做法:删掉手动操作,重走标准迁移流程(见上一条)
- 查 batch ID:看
migrations表里最近几条记录,或用php artisan migrate:status | grep your_migration_name - 别用
--pretend测试 DDL,它不模拟真实约束检查
MySQL 8.0 改字段长度还是报 Data too long for column
字段从 VARCHAR(50) 扩到 VARCHAR(255) 本身不丢数据,但如果该列已有超长值(比如存了 60 字符的字符串),MySQL 8.0 默认 strict mode 下会拒绝 MODIFY 操作。
不是 Lara vel 的锅,是数据现状和 SQL mode 的硬冲突。
- 先查脏数据:
SELECT id, name FROM users WHERE CHAR_LENGTH(name) > 50; - 清理或截断后再跑迁移(
UPDATE users SET name = LEFT(name, 50) WHERE CHAR_LENGTH(name) > 50;) - 临时关 strict mode 属于高危操作,上线环境禁止使用
SET sql_mode=''; - Lara vel 迁移里加
DB::statement()执行原生 SQL 不解决根本问题,反而掩盖数据质量缺陷
想让本地开发和线上字段长度自动同步,能不能靠 php artisan migrate:fresh
不能。这个命令只在本地有效,它会删库重建,线上执行等于删生产数据。
「同步」不是靠重来,是靠可追溯、可重放、可验证的增量变更。
migrate:fresh仅用于本地快速重置,CI 测试环境可用,但必须加--env=testing等硬隔离- 线上唯一合法路径:写新 migration → 本地测试通过 → 加到发布清单 → 上线执行
- 字段长度属于 schema 变更,比数据填充更敏感,必须做 pre-check(比如用
DB::select('DESCRIBE users')核对当前长度)
最常被跳过的环节,其实是确认线上当前字段真实长度——很多人凭记忆改,结果发现线上早就被人手动调过,或者上次迁移根本没跑成功。
