feat(llm): 排版容器固定CSS + 插图用正文第一段 + 适中尺寸

- enrichment._enrich_format:把排版好的段落包到带固定 CSS 的 <div class=article-body> 里
  (font: system-ui / 17px / line-height 1.7 / color #3e3e3e / p margin-bottom 1.5em)
  CSS 同时内联到 style 属性,前端 .article-body 全局类做兑底
- enrichment._enrich_image:prompt 改用 body_zh_text 的第一段(原为 title);
  新增 {body} 占位符,image_prompt_template 默认模板同步改写
- 插图尺寸写死为 768x512(适中);image_size 字段保留供用户手改但默认行为不依赖它
- 分类明确多标签(2-5 个),提示词加 {body} 变量,容错读 categories/tags 两种 key
- AdminLlmSettings.vue:placeholder / 变量说明同步更新
This commit is contained in:
Mavis
2026-06-08 20:53:21 +08:00
parent 82a92032bb
commit 380e8b124e
5 changed files with 109 additions and 22 deletions

View File

@@ -14,7 +14,7 @@ const setting = ref<LlmSetting>({
classify_prompt: '',
commentary_prompt: '',
image_prompt_template: '',
image_size: '1024x768',
image_size: '768x512',
chat_model: 'agnes-2.0-flash',
image_model: 'agnes-image-2.1-flash',
interval_sec: 2.0,
@@ -115,8 +115,8 @@ onMounted(load)
</NSpace>
<NSpace>
<NText>插图尺寸:</NText>
<NInput v-model:value="setting.image_size" placeholder="1024x768" style="width: 160px" />
<NText depth="3" style="font-size: 12px">(格式: WIDTHxHEIGHT, 1024x768)</NText>
<NInput v-model:value="setting.image_size" placeholder="768x512" style="width: 160px" />
<NText depth="3" style="font-size: 12px">(格式: WIDTHxHEIGHT, 768x512;后端默认固定用 768x512)</NText>
</NSpace>
<NSpace>
<NText>LLM 调用间隔():</NText>
@@ -141,8 +141,8 @@ onMounted(load)
<NCard title="分类提示词" style="margin-top: 16px">
<NText depth="3" style="font-size: 12px">
模板变量: <NCode>{title}</NCode> = 译后标题, <NCode>{summary}</NCode> = 摘要<br />
期望返回 JSON,形如 <NCode>{`{"categories": ["时政", "国际"]}`}</NCode>
模板变量: <NCode>{title}</NCode> = 译后标题, <NCode>{summary}</NCode> = 摘要, <NCode>{body}</NCode> = 正文(节选)<br />
期望返回 JSON(多标签,2-5 ),形如 <NCode>{`{"categories": ["时政", "国际", "经济"]}`}</NCode>
</NText>
<NInput
v-model:value="setting.classify_prompt"
@@ -168,7 +168,8 @@ onMounted(load)
<NCard title="插图 prompt 模板" style="margin-top: 16px">
<NText depth="3" style="font-size: 12px">
模板变量: <NCode>{title}</NCode> = 标题(优先译后)最终 prompt 会拼成英文描述发给文生图模型
模板变量: <NCode>{body}</NCode> = 译文正文第一段(主要), <NCode>{title}</NCode> = 标题(fallback)<br />
最终 prompt 会拼成英文描述发给文生图模型
</NText>
<NInput
v-model:value="setting.image_prompt_template"