From 5d0bafd651dd2ab6908ac4b27cbe491c8791a492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=87=AF?= Date: Mon, 1 Jun 2026 12:58:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?AI=E5=86=99=E4=BD=9C=EF=BC=9A=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=B4=A0=E6=9D=90=E6=9D=A5=E6=BA=90=E9=80=89=E9=A1=B9?= =?UTF-8?q?=EF=BC=88=E7=9F=A5=E8=AF=86=E5=BA=93/=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 写作表单新增「素材来源」下拉:知识库(默认 web/intranet 检索)/ 技能检索(用已启用技能编排检索)。用户选择后素材收集专家首次检索 据此决定检索方式。 - state 新增 material_source 通道(缺省 knowledge_base,兼容老 session) - researcher 首次检索(无干预)时按来源决定 is_skill_search; PAUSE-1「启用技能检索」按钮仍独立有效 - 前端 AIWritingRequest.materialSource + 表单下拉 + hook 提交 material_source Co-Authored-By: Claude Opus 4.8 (1M context) --- .../components/ai-writing/AIWritingForm.tsx | 33 +++++++++++++++++++ .../open-canvas/hooks/useAIWritingStream.ts | 1 + .../src/open-canvas/types/ai-writing.ts | 2 ++ .../agents/ai_writing/nodes/researcher.py | 12 +++++-- .../deerflow/agents/ai_writing/state.py | 3 ++ 5 files changed, 49 insertions(+), 2 deletions(-) diff --git a/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx b/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx index 7f9db889..9d5eb192 100644 --- a/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx +++ b/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx @@ -29,8 +29,15 @@ const INPUT_CLASS = const DEFAULT_KEYWORD_COUNT = 1; const DEFAULT_AUDIENCE = '普通读者'; +const DEFAULT_MATERIAL_SOURCE: 'knowledge_base' | 'skill' = 'knowledge_base'; const MAX_INTENT_LENGTH = 500; +// 素材来源选项:知识库=素材专家默认 web/intranet 检索;技能检索=用技能编排去检索 +const MATERIAL_SOURCE_OPTIONS: Array<{ value: 'knowledge_base' | 'skill'; label: string }> = [ + { value: 'knowledge_base', label: '知识库' }, + { value: 'skill', label: '技能检索' }, +]; + const FIELD_LABEL_CLASS = 'text-[16px] font-semibold leading-none text-[#222]'; const FIELD_TRIGGER_CLASS = 'h-12 w-full rounded-xl border-[#e8dedd] bg-white text-sm shadow-sm'; @@ -45,6 +52,8 @@ export function AIWritingForm({ const [audience, setAudience] = useState('普通读者'); const [wordCountInput, setWordCountInput] = useState('800'); const [strictMode, setStrictMode] = useState(false); + const [materialSource, setMaterialSource] = + useState<'knowledge_base' | 'skill'>(DEFAULT_MATERIAL_SOURCE); const [modelName, setModelName] = useState(''); const { models, isLoading: modelsLoading } = useModels(); @@ -111,6 +120,7 @@ export function AIWritingForm({ wordCountTarget: wordCount, keywordCount: DEFAULT_KEYWORD_COUNT, writingMode: hideAdvancedFields ? 'loose' : strictMode ? 'strict' : 'loose', + materialSource, modelName: selectedModel?.name || modelName || undefined, }); } @@ -178,6 +188,29 @@ export function AIWritingForm({ +
+ + +

+ 知识库:素材专家默认检索方式;技能检索:用已启用的技能去编排检索。 +

+
+