fix: send full extract_webpage content to model
This commit is contained in:
parent
e2ba632ac8
commit
f5cf2fb7e7
@ -95,6 +95,7 @@
|
||||
<TokenDrawer
|
||||
:visible="Boolean(currentConversationId)"
|
||||
:collapsed="tokenPanelCollapsed"
|
||||
@toggle="handleTokenPanelToggleClick"
|
||||
:current-conversation-tokens="currentConversationTokens"
|
||||
:current-context-tokens="currentContextTokens"
|
||||
:container-status="containerStatus"
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="token-drawer" v-if="visible" :class="{ collapsed }">
|
||||
<div class="token-display-panel">
|
||||
<button class="token-close-btn" type="button" @click="emit('toggle')">
|
||||
✕
|
||||
</button>
|
||||
<div class="token-panel-content">
|
||||
<div class="usage-dashboard">
|
||||
<div class="usage-cell usage-cell--left usage-cell--token panel-card">
|
||||
@ -95,6 +98,10 @@ defineOptions({ name: 'TokenDrawer' });
|
||||
|
||||
import { computed } from 'vue';
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'toggle'): void;
|
||||
}>();
|
||||
|
||||
const props = defineProps<{
|
||||
visible: boolean;
|
||||
collapsed: boolean;
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
/* 顶部 Token 抽屉 */
|
||||
.token-drawer {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
top: 56px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
@ -24,6 +24,7 @@
|
||||
box-shadow: 0 24px 42px rgba(61, 57, 41, 0.18);
|
||||
transition: transform 0.35s ease, opacity 0.35s ease;
|
||||
pointer-events: auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.token-drawer.collapsed .token-display-panel {
|
||||
@ -163,6 +164,33 @@
|
||||
color: var(--claude-text-secondary);
|
||||
}
|
||||
|
||||
.token-close-btn {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 12px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
color: var(--claude-text);
|
||||
font-size: 14px;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s ease, transform 0.2s ease;
|
||||
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.token-close-btn:hover {
|
||||
background: var(--claude-surface);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.token-close-btn:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.panel-row {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
|
||||
|
||||
@ -562,12 +562,16 @@ def _format_extract_webpage(result_data: Dict[str, Any]) -> str:
|
||||
url = result_data.get("url") or "目标网页"
|
||||
content = result_data.get("content") or ""
|
||||
length = len(content)
|
||||
preview, truncated = _preview_text(content, 800)
|
||||
truncated_flag = result_data.get("truncated") or False
|
||||
header = f"提取完成:{url},长度 {length} 字符。"
|
||||
if not content:
|
||||
return f"{header} 内容为空。"
|
||||
note = "(截断预览)" if truncated else "(未截断)"
|
||||
return "\n".join([f"{header}{note}", "```", preview, "```"])
|
||||
# 为模型保留完整正文,避免 800 字预览导致上下文缺失
|
||||
note_parts = []
|
||||
if truncated_flag:
|
||||
note_parts.append("原始内容已被上游截断")
|
||||
note = f"({';'.join(note_parts)})" if note_parts else ""
|
||||
return "\n".join([f"{header}{note}", "```", content, "```"])
|
||||
|
||||
|
||||
def _format_vlm_analyze(result_data: Dict[str, Any]) -> str:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user