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 fad55ff1..cbf26130 100644 --- a/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx +++ b/frontend-web/src/open-canvas/components/ai-writing/AIWritingForm.tsx @@ -3,6 +3,7 @@ import { PenLine, SlidersHorizontal } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Textarea } from '@/components/ui/textarea'; +import { cn } from '@/lib/utils'; import { Select, SelectContent, @@ -67,6 +68,7 @@ export function AIWritingForm({ strictMode, setStrictMode, addReferences, setAddReferences, materialSource, setMaterialSource, + skipResearch, setSkipResearch, // 笔记来源(search_space_id + document_id 列表)已上提到 WritingFormContext, // 以便左栏「笔记本」点击可直接设为素材来源(需求 0616 #5)。 selectedNotebookId, setSelectedNotebookId, @@ -164,13 +166,16 @@ export function AIWritingForm({ : audience.trim() || DEFAULT_AUDIENCE, wordCountTarget: wordCount, keywordCount: DEFAULT_KEYWORD_COUNT, - writingMode: hideAdvancedFields ? 'loose' : strictMode ? 'strict' : 'loose', + // 跳过素材收集时强制 loose(无素材可严格依据,后端也会强制) + writingMode: skipResearch ? 'loose' : hideAdvancedFields ? 'loose' : strictMode ? 'strict' : 'loose', addReferences, - materialSource: materialSource, + skipResearch, + // 跳过素材收集时检索类型无意义,归一为 general + materialSource: skipResearch ? 'general' : materialSource, modelName: selectedModel?.name || modelName || undefined, - // 只有选了"我的空间"才传笔记参数 - noteSearchSpaceId: materialSource === 'notebook' ? (selectedNotebookId ?? undefined) : undefined, - noteSourceIds: materialSource === 'notebook' && selectedNotebookId != null ? selectedDocumentIds : undefined, + // 只有选了"我的空间"且未跳过素材收集才传笔记参数 + noteSearchSpaceId: !skipResearch && materialSource === 'notebook' ? (selectedNotebookId ?? undefined) : undefined, + noteSourceIds: !skipResearch && materialSource === 'notebook' && selectedNotebookId != null ? selectedDocumentIds : undefined, }); } @@ -278,6 +283,25 @@ export function AIWritingForm({ + {/* 不收集素材,直接用通用知识写作 */} +
+ 勾选后跳过素材检索阶段(不弹素材确认),AI 直接用通用知识规划大纲并写作;检索类型与「严格依据素材」将被忽略。 +
- 勾选后作家只依据检索素材写作,素材不足以支撑某章节时会暂停询问你;不勾选则可结合通用知识补充论述。 + {skipResearch + ? '已选「不收集素材」,本项不适用:将直接用通用知识写作。' + : '勾选后作家只依据检索素材写作,素材不足以支撑某章节时会暂停询问你;不勾选则可结合通用知识补充论述。'}
+ {record.userInput} +