fix: 提示词链里的引导提问不算轮数,分类器固定结果、跳过过短输入
- 引导对话和 AI 对话存在同一个对话里,提示词链把它当成一轮“AI 对话”,显示“没有网页”。 现在标成“引导”,淡化显示,不计入轮数,也不能选中(↑↓ 跳过) - 分类器 temperature 设为 0:同一句提示词以前约两成会被打成不同层级 - 不到 4 个字的提问(“1”“,”等)不打层级,--force 重标时清掉旧标签 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bc9da688ba
commit
30630e8125
6 files changed
+73
-10
No files matched your search
@@ -9,7 +9,7 @@
|
||||
<template #header>
|
||||
<div class="head">
|
||||
<b>提示词</b>
|
||||
<span v-if="rounds.length" class="muted">{{ rounds.length }} 轮</span>
|
||||
<span v-if="steps" class="muted">{{ steps }} 轮</span>
|
||||
<span v-if="title" class="muted title">{{ title }}</span>
|
||||
</div>
|
||||
</template>
|
||||
@@ -41,16 +41,17 @@
|
||||
<li
|
||||
v-for="(r, i) in rounds"
|
||||
:key="i"
|
||||
:class="['round', { on: i === selected }]"
|
||||
@click="selected = i"
|
||||
:class="['round', { on: i === selected, guide: isGuide(r) }]"
|
||||
@click="isGuide(r) || (selected = i)"
|
||||
>
|
||||
<div class="round-head">
|
||||
<span class="num">{{ i + 1 }}</span>
|
||||
<span class="num">{{ nums[i] }}</span>
|
||||
<span :class="['src', `src-${r.source || 'conversation'}`]">
|
||||
{{ sourceLabel(r.source) }}
|
||||
</span>
|
||||
<span v-if="r.prompt_level" class="level">{{ levelLabel(r.prompt_level) }}</span>
|
||||
<span v-if="i === rounds.length - 1" class="final">交的这一版</span>
|
||||
<span v-else-if="isGuide(r)" class="muted no-code">问写提示词的建议,不生成网页</span>
|
||||
<span v-else-if="!r.html" class="muted no-code">没有网页</span>
|
||||
</div>
|
||||
<div
|
||||
@@ -65,7 +66,7 @@
|
||||
|
||||
<div class="stage">
|
||||
<div class="stage-head">
|
||||
<b>第 {{ selected + 1 }} 轮生成的网页</b>
|
||||
<b>第 {{ nums[selected] }} 轮生成的网页</b>
|
||||
<span class="muted">↑ ↓ 切换</span>
|
||||
</div>
|
||||
<div class="frame">
|
||||
@@ -110,6 +111,14 @@ const rounds = ref<PromptRound[]>([])
|
||||
const selected = ref(0)
|
||||
const expanded = ref(new Set<number>())
|
||||
|
||||
// 引导对话(问怎么写提示词)夹在 AI 对话中间,不算轮数,也不能选中
|
||||
const isGuide = (r: PromptRound) => r.source === "guidance"
|
||||
const steps = computed(() => rounds.value.filter((r) => !isGuide(r)).length)
|
||||
const nums = computed(() => {
|
||||
let n = 0
|
||||
return rounds.value.map((r) => (isGuide(r) ? "" : String(++n)))
|
||||
})
|
||||
|
||||
const doc = computed(() => {
|
||||
const r = rounds.value[selected.value]
|
||||
if (!r?.html) return ""
|
||||
@@ -165,7 +174,9 @@ function onKey(e: KeyboardEvent) {
|
||||
const step = e.key === "ArrowDown" ? 1 : e.key === "ArrowUp" ? -1 : 0
|
||||
if (!step || !rounds.value.length) return
|
||||
e.preventDefault()
|
||||
selected.value = Math.min(rounds.value.length - 1, Math.max(0, selected.value + step))
|
||||
let i = selected.value + step
|
||||
while (rounds.value[i] && isGuide(rounds.value[i]!)) i += step
|
||||
if (rounds.value[i]) selected.value = i
|
||||
nextTick(() =>
|
||||
document.querySelector(".rounds .round.on")?.scrollIntoView({ block: "nearest" }),
|
||||
)
|
||||
@@ -291,6 +302,25 @@ onUnmounted(() => window.removeEventListener("keydown", onKey, true))
|
||||
background: var(--wp-html-soft);
|
||||
}
|
||||
|
||||
.src-guidance {
|
||||
color: var(--wp-muted);
|
||||
background: var(--wp-paper);
|
||||
}
|
||||
|
||||
.round.guide {
|
||||
border-style: dashed;
|
||||
background: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.round.guide:hover {
|
||||
border-color: var(--wp-line);
|
||||
}
|
||||
|
||||
.round.guide .q {
|
||||
color: var(--wp-muted);
|
||||
}
|
||||
|
||||
.level {
|
||||
color: var(--wp-ink);
|
||||
background: var(--wp-paper);
|
||||
|
||||
Reference in new issue
Block a user