新增人味儿文案优化提示词
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import type {
|
||||
ArticleInput,
|
||||
CopyOptimizationRequest,
|
||||
OptimizationFactCard,
|
||||
OptimizedArticle,
|
||||
PublishPlatform,
|
||||
@@ -97,6 +98,44 @@ const QA_OUTPUT_CONTRACT = [
|
||||
),
|
||||
].join("\n");
|
||||
|
||||
const RENWEI_OUTPUT_CONTRACT = [
|
||||
"Output type contract:",
|
||||
"- optimized_text must be a string.",
|
||||
"- change_notes must be an array of { original, revised, reason, confidence, revertible }.",
|
||||
"- confidence must be confident or uncertain.",
|
||||
"- revertible must be boolean.",
|
||||
"- ai_taste_checks must be an array of { rule_id, status, evidence, suggestion }.",
|
||||
"- rule_id must be one of meaning_inflation, promotion_tone, formulaic_sentence, format_trace, chat_trace, filler_hedging.",
|
||||
"- status must be pass or warn.",
|
||||
"- warnings must be string[].",
|
||||
"Example:",
|
||||
JSON.stringify(
|
||||
{
|
||||
optimized_text: "我把句子顺了一下。",
|
||||
change_notes: [
|
||||
{
|
||||
original: "我把句子顺顺。",
|
||||
revised: "我把句子顺了一下。",
|
||||
reason: "修掉重复,让句子自然收住。",
|
||||
confidence: "confident",
|
||||
revertible: false,
|
||||
},
|
||||
],
|
||||
ai_taste_checks: [
|
||||
{
|
||||
rule_id: "promotion_tone",
|
||||
status: "pass",
|
||||
evidence: "没有新增宣传腔。",
|
||||
suggestion: "",
|
||||
},
|
||||
],
|
||||
warnings: [],
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
].join("\n");
|
||||
|
||||
function formatPlatformGuidance(selected: PublishPlatform) {
|
||||
return [
|
||||
"平台模板选项:",
|
||||
@@ -135,6 +174,29 @@ export const TARGETED_REWRITER_SYSTEM_PROMPT = [
|
||||
JSON_ONLY_PROMPT,
|
||||
].join(" ");
|
||||
|
||||
export const RENWEI_COPY_OPTIMIZER_SYSTEM_PROMPT = [
|
||||
"你是中文普通文案编辑,不是营销代笔工具。",
|
||||
"目标是让文字更顺,但改完后作者还在。",
|
||||
"硬性规则:少动,只改真正打绊的地方;保留作者的位置、语气、口头习惯和可识别手迹。",
|
||||
"不凭空新增时间、地点、数字、案例、情绪、场景、资质、效果承诺或没有来源的事实。",
|
||||
"不写过度金句,不要把普通句子改成宣传腔、排比、格言、万能展望或意义拔高。",
|
||||
"拿不准时白描,不拔高;拿不准的改动必须标记为 uncertain 且 revertible 为 true。",
|
||||
"改后只检查被改动句子是否引入 AI 味,并逐处说明改了什么、为什么改。",
|
||||
JSON_ONLY_PROMPT,
|
||||
].join(" ");
|
||||
|
||||
function describeRenweiIntensity(
|
||||
intensity: CopyOptimizationRequest["intensity"],
|
||||
) {
|
||||
const descriptions = {
|
||||
light: "light / 轻微整理:尽量只修顺病句、错别字、明显卡顿。",
|
||||
medium: "medium / 适度润色:允许调整句序和连接,但不改变作者表达的粗糙感。",
|
||||
conversational:
|
||||
"conversational / 更口语自然:让口吻更像真人说话,但不凭空增加表演性口语。",
|
||||
} satisfies Record<CopyOptimizationRequest["intensity"], string>;
|
||||
return descriptions[intensity];
|
||||
}
|
||||
|
||||
export function buildFactExtractorPrompt(input: ArticleInput) {
|
||||
return [
|
||||
"Return a CandidateFactCard JSON object with these exact keys:",
|
||||
@@ -247,3 +309,42 @@ export function buildTargetedRewritePrompt(input: {
|
||||
JSON.stringify(input.failedChecks, null, 2),
|
||||
].join("\n");
|
||||
}
|
||||
|
||||
export function buildRenweiCopyOptimizationPrompt(
|
||||
input: CopyOptimizationRequest,
|
||||
) {
|
||||
return [
|
||||
"Return a CopyOptimizationResult JSON object with these exact keys:",
|
||||
"optimized_text, change_notes, ai_taste_checks, warnings.",
|
||||
"",
|
||||
RENWEI_OUTPUT_CONTRACT,
|
||||
"",
|
||||
"强度选项:",
|
||||
"- light:轻微整理。",
|
||||
"- medium:适度润色。",
|
||||
"- conversational:更口语自然。",
|
||||
`当前修改强度:${describeRenweiIntensity(input.intensity)}`,
|
||||
"",
|
||||
"改稿要求:",
|
||||
"- 默认少动,不追求更漂亮,只清掉绊脚处。",
|
||||
"- 毛边先假设是作者手迹,不要机械删口语、停顿或重复。",
|
||||
"- 不写“不是X,而是Y”、排比三连、万能展望、宣传腔或假深刻句式。",
|
||||
"- 不使用破折号作为装饰性解释。",
|
||||
"- 必须逐处说明改动;未改动的句子不要编造改动说明。",
|
||||
"- AI 味检查只检查被改动句子。",
|
||||
"",
|
||||
"User request:",
|
||||
JSON.stringify(
|
||||
{
|
||||
goal: input.goal,
|
||||
intensity: input.intensity,
|
||||
user_instructions: input.user_instructions,
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
"",
|
||||
"source_text:",
|
||||
input.source_text,
|
||||
].join("\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user