DeerFlow人机协作与内容创作功能详解
DeerFlow人机协作与内容创作功能详解【免费下载链接】deer-flowDeerFlow is a community-driven framework for deep research, combining language models with tools like web search, crawlin...
DeerFlow人机协作与内容创作功能详解
本文详细介绍了DeerFlow平台的四大核心功能:人在环中(Human-in-the-loop)交互机制、Notion风格块编辑与AI辅助优化、播客脚本生成与音频合成技术,以及自动化PPT演示文稿创建流程。这些功能通过先进的AI技术和人性化设计,实现了人类智能与人工智能的深度协同,大幅提升了内容创作效率和质量。
人在环中(Human-in-the-loop)交互机制
DeerFlow的人机协作系统采用了先进的"人在环中"(Human-in-the-loop)交互机制,这一机制通过精心设计的计划审核流程和自然语言交互界面,实现了人类智能与人工智能的深度协同。该系统不仅支持自动化的研究流程,更重要的是允许用户在关键决策点进行干预和指导,确保研究方向和结果符合用户期望。
计划生成与审核流程
DeerFlow的HITL机制核心在于计划生成后的审核环节。当规划器(Planner)生成研究计划后,系统会暂停执行并等待用户反馈。这一过程通过LangGraph的interrupt机制实现,具体流程如下:
中断反馈机制实现
在技术实现层面,DeerFlow通过human_feedback_node函数处理用户交互:
def human_feedback_node(state) -> Command[Literal["planner", "research_team", "reporter", "__end__"]]:
current_plan = state.get("current_plan", "")
auto_accepted_plan = state.get("auto_accepted_plan", False)
if not auto_accepted_plan:
feedback = interrupt("Please Review the Plan.")
if feedback and str(feedback).upper().startswith("[EDIT_PLAN]"):
return Command(update={"messages": [HumanMessage(content=feedback)]}, goto="planner")
elif feedback and str(feedback).upper().startswith("[ACCEPTED]"):
logger.info("Plan is accepted by user.")
else:
raise TypeError(f"Interrupt value of {feedback} is not supported.")
# 处理接受的计划并继续执行
return Command(update={"current_plan": parsed_plan}, goto="research_team")
前端交互界面设计
Web前端通过PlanCard组件为用户提供直观的计划审核界面:
function PlanCard({ message, interruptMessage, onFeedback, onSendMessage }) {
const plan = parseJSON(message.content ?? "", {});
const handleAccept = useCallback(() => {
onSendMessage("Let's get started!", { interruptFeedback: "accepted" });
}, [onSendMessage]);
return (
<Card>
<CardHeader>
<CardTitle>{plan.title || "深度研究计划"}</CardTitle>
</CardHeader>
<CardContent>
<Markdown>{plan.thought}</Markdown>
{plan.steps?.map((step, i) => (
<div key={i}>
<h3>{step.title}</h3>
<p>{step.description}</p>
</div>
))}
</CardContent>
<CardFooter>
{interruptMessage?.options?.map((option) => (
<Button
key={option.value}
onClick={() => option.value === "accepted" ? handleAccept() : onFeedback({option})}
>
{option.text}
</Button>
))}
</CardFooter>
</Card>
);
}
交互选项与状态管理
系统提供了两种主要的交互选项:
| 选项类型 | 触发动作 | 后端处理 | 前端表现 |
|---|---|---|---|
| 接受计划(ACCEPTED) | 继续执行研究 | 转到research_team节点 | 显示确认消息 |
| 编辑计划(EDIT_PLAN) | 重新生成计划 | 返回planner节点 | 提供文本输入框 |
状态管理通过Redux-like的store实现,关键状态包括:
interface ChatState {
messages: Map<string, Message>;
interruptFeedback?: string;
responding: boolean;
// 其他状态字段...
}
interface Message {
id: string;
role: "user" | "assistant";
agent?: string;
content?: string;
finishReason?: "stop" | "tool_calls" | "interrupt";
interruptFeedback?: string;
options?: Option[];
}
自然语言编辑支持
DeerFlow支持用户使用自然语言编辑研究计划。用户只需在编辑模式下输入修改意见,如:
[EDIT_PLAN]请将第三步的搜索范围扩大到包含最新的学术论文,并增加对相关技术趋势的分析。
系统会自动解析这些指令并重新生成符合要求的研究计划。这种设计降低了用户的学习成本,使非技术用户也能轻松指导AI进行研究。
自动化与手动的平衡
系统通过auto_accepted_plan配置项支持不同程度的自动化:
# 配置示例
config = Configuration(
auto_accepted_plan=False, # 需要人工审核
max_plan_iterations=3, # 最大计划迭代次数
max_step_num=5 # 每个计划最大步骤数
)
用户可以根据任务复杂度和信任程度调整自动化级别:
- 完全手动模式:每个计划都需要人工审核
- 条件自动模式:简单任务自动接受,复杂任务需要审核
- 完全自动模式:所有计划自动接受(适用于批处理任务)
错误处理与恢复机制
HITL机制内置了完善的错误处理:
try:
curr_plan = json.loads(repair_json_output(full_response))
except json.JSONDecodeError:
logger.warning("Planner response is not a valid JSON")
if plan_iterations > 0:
return Command(goto="reporter") # 尝试生成报告
else:
return Command(goto="__end__") # 终止流程
这种设计确保了即使在计划生成失败的情况下,系统也能优雅地处理并给出合理的后续操作选项。
多语言支持
交互机制支持多语言环境,系统会自动检测用户语言环境并提供相应语言的界面和提示信息:
def handoff_to_planner(research_topic: str, locale: str):
"""根据用户语言环境移交任务给规划器"""
# locale参数示例: "en-US", "zh-CN", "ja-JP"
return
这种国际化设计使得DeerFlow能够为全球用户提供一致的高质量交互体验。
通过这样的人在环中交互机制,DeerFlow成功实现了人类智慧与人工智能能力的有机结合,既发挥了AI在信息处理和模式识别方面的优势,又保留了人类在方向把控和质量控制方面的主导权。
Notion风格块编辑与AI辅助优化
DeerFlow的Notion风格块编辑系统代表了现代内容创作工具的前沿设计理念,它巧妙地将结构化编辑体验与AI智能辅助完美融合。这一功能不仅提升了用户的编辑效率,更重要的是为深度研究过程中的内容优化提供了强大的技术支撑。
核心架构设计
DeerFlow的编辑器基于Tiptap和Novel.js构建,采用了模块化的扩展架构,支持丰富的块类型和实时协作功能:
编辑器支持的主要块类型包括:
| 块类型 | 功能描述 | AI支持 |
|---|---|---|
| 段落块 | 基础文本内容 | 优化/扩写/缩写 |
| 代码块 | 语法高亮代码 | 代码解释/优化 |
| 表格块 | 结构化数据展示 | 数据分析/格式化 |
| 图片块 | 可视化内容嵌入 | 图片描述生成 |
| 数学块 | 公式编辑渲染 | 公式推导/简化 |
AI辅助优化功能矩阵
DeerFlow集成了多层次的AI优化能力,通过专门的Prose处理流水线实现智能内容增强:
1. 智能写作优化
系统提供了六种核心的AI优化指令:
// AI优化选项配置
const optimizationOptions = [
{
value: "improve",
label: "提升写作质量",
icon: RefreshCcwDot,
prompt: "优化文本表达,提升可读性和专业性"
},
{
value: "shorter",
label: "内容精简",
icon: ArrowDownWideNarrow,
prompt: "压缩文本长度,保持核心信息"
},
{
value: "longer",
label: "内容扩展",
icon: WrapText,
prompt: "扩展现有内容,增加细节和深度"
},
{
value: "continue",
label: "续写内容",
icon: StepForward,
prompt: "基于现有内容继续创作"
}
];
2. 实时流式处理
AI优化过程采用流式传输技术,确保用户体验的流畅性:
// 流式处理实现
async function complete(prompt: string, options?: { body?: Record<string, any> }) {
const response = await fetchStream(
resolveServiceURL("/api/prose/generate"),
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt, ...options?.body })
}
);
let fullText = "";
for await (const chunk of response) {
fullText += chunk.data;
setCompletion(fullText); // 实时更新UI
}
return fullText;
}
后端处理流水线
DeerFlow的后端采用LangGraph构建了专门的Prose处理图,每个优化指令对应一个独立的处理节点:
# Prose处理图构建
def build_graph():
builder = StateGraph(ProseState)
builder.add_node("prose_continue", prose_continue_node)
builder.add_node("prose_improve", prose_improve_node)
builder.add_node("prose_shorter", prose_shorter_node)
builder.add_node("prose_longer", prose_longer_node)
builder.add_node("prose_fix", prose_fix_node)
builder.add_node("prose_zap", prose_zap_node)
builder.add_conditional_edges(
START,
optional_node, # 根据option字段路由
{
"continue": "prose_continue",
"improve": "prose_improve",
"shorter": "prose_shorter",
"longer": "prose_longer",
"fix": "prose_fix",
"zap": "prose_zap"
},
END
)
return builder.compile()
每个处理节点都使用专门的Prompt模板来确保优化质量:
<!-- prose_improver.md -->
You are an AI writing assistant that improves existing text.
- Limit your response to no more than 200 characters, but make sure to construct complete sentences.
- Use Markdown formatting when appropriate.
用户体验特性
1. 直观的交互设计
编辑器提供了多种触发AI优化的方式:
- Slash命令:输入
/唤出命令面板,选择AI功能 - 文本选择:选中文本后弹出浮动工具栏
- 快捷键:支持自定义快捷键快速触发优化
2. 实时预览与确认
所有AI优化操作都提供实时预览功能,用户可以在应用前查看和调整结果:
// AI结果预览组件
<Command className="w-[350px]">
{hasCompletion && (
<ScrollArea>
<div className="prose prose-sm dark:prose-invert p-2 px-4">
<Markdown>{completion}</Markdown>
</div>
</ScrollArea>
)}
<AICompletionCommands
onDiscard={resetSelection}
completion={completion}
/>
</Command>
3. 上下文感知优化
系统能够根据当前编辑的文档类型和内容上下文,智能调整优化策略:
- 技术文档:侧重准确性和术语一致性
- 学术论文:强调引用规范和学术严谨性
- 创意写作:注重文采和表达丰富性
技术实现亮点
1. 模块化扩展架构
编辑器采用插件化设计,可以轻松扩展新的块类型和AI功能:
// 编辑器扩展配置
const extensions = [
...defaultExtensions, // 基础扩展
slashCommand, // 斜杠命令
markdownExtension, // Markdown支持
codeBlockExtension, // 代码块高亮
imageExtension // 图片上传处理
];
2. 性能优化策略
- 防抖处理:使用500ms防抖避免频繁的AI调用
- 缓存机制:对相似优化请求进行结果缓存
- 连接复用:保持与后端服务的持久连接
3. 错误处理与降级
系统具备完善的错误处理机制:
try {
const result = await complete(text, options);
return result;
} catch (error) {
toast.error("AI优化失败");
return text; // 优雅降级,返回原始文本
}
应用场景示例
科研报告优化
研究人员可以使用"内容扩展"功能对初步研究发现进行深入阐述,或者使用"精简表达"功能压缩冗长的实验描述。
技术文档编写
开发者通过"提升写作质量"优化API文档的表述清晰度,使用代码块优化改善示例代码的可读性。
多语言内容创作
结合DeerFlow的多语言支持,AI优化功能可以协助进行跨语言的内容适配和本地化优化。
这一Notion风格块编辑与AI辅助优化系统的设计,充分体现了DeerFlow"人机协作"的核心理念,为用户提供了既强大又易用的内容创作体验。
播客脚本生成与音频合成技术
DeerFlow的播客生成功能展现了人工智能在音频内容创作领域的强大能力。通过结合先进的自然语言处理和语音合成技术,系统能够将文本内容自动转换为专业级的播客节目。这一技术栈涵盖了从脚本创作到音频合成的完整流程,为内容创作者提供了全新的自动化工具。
智能脚本生成架构
播客脚本生成基于LangGraph状态机架构,采用多节点协作的工作流模式:
系统使用结构化的数据模型来管理播客内容:
class ScriptLine(BaseModel):
speaker: Literal["male", "female"] = Field(default="male")
paragraph: str = Field(default="")
class Script(BaseModel):
locale: Literal["en", "zh"] = Field(default="en")
lines: list[ScriptLine] = Field(default=[])
这种设计确保了脚本的标准化输出,支持中英文双语生成,并能够智能分配男女主播的对话轮次。
自然对话生成技术
脚本生成节点采用专业的提示工程技术,将原始内容转换为自然流畅的对话格式:
def script_writer_node(state: PodcastState):
model = get_llm_by_type(AGENT_LLM_MAP["podcast_script_writer"])
script = model.invoke([
SystemMessage(content=get_prompt_template("podcast/podcast_script_writer")),
HumanMessage(content=state["input"]),
])
return {"script": script, "audio_chunks": []}
提示词模板精心设计了对话生成规则:
- 保持自然对话风格,包含口语化表达和填充词
- 严格限制只有男女两个主播角色
- 频繁交替对话以保持互动性
- 避免数学公式和技术符号,全部转换为口语表达
- 确保10分钟左右的播放时长
高质量语音合成引擎
TTS节点采用火山引擎语音合成服务,提供专业级的音频生成能力:
def tts_node(state: PodcastState):
tts_client = VolcengineTTS(
appid=os.getenv("VOLCENGINE_TTS_APPID"),
access_token=os.getenv("VOLCENGINE_TTS_ACCESS_TOKEN"),
cluster="volcano_tts"
)
for line in state["script"].lines:
tts_client.voice_type = "BV002_streaming" if line.speaker == "male" else "BV001_streaming"
result = tts_client.text_to_speech(line.paragraph, speed_ratio=1.05)
audio_chunk = base64.b64decode(result["audio_data"])
state["audio_chunks"].append(audio_chunk)
语音合成配置参数:
| 参数 | 男声配置 | 女声配置 | 说明 |
|---|---|---|---|
| Voice Type | BV002_streaming | BV001_streaming | 流式语音模型 |
| Speed Ratio | 1.05 | 1.05 | 语速微调 |
| Audio Format | PCM | PCM | 原始音频格式 |
音频混合与输出处理
音频混合节点负责将所有语音片段合并为完整的播客文件:
def audio_mixer_node(state: PodcastState):
audio_chunks = state["audio_chunks"]
combined_audio = b"".join(audio_chunks)
return {"output": combined_audio}
整个工作流的执行过程可以通过状态图清晰展示:
技术特点与优势
DeerFlow的播客生成技术具备以下核心优势:
- 智能对话分配:自动识别内容结构,合理分配男女主播对话轮次
- 自然语言处理:将技术性内容转换为口语化表达,确保听觉友好性
- 高质量音频输出:采用专业TTS引擎,生成接近真人发音的音频
- 端到端自动化:从文本输入到播客输出的完整自动化流程
- 多语言支持:原生支持中英文内容生成,满足国际化需求
实际应用场景
该技术特别适用于:
- 新闻摘要的音频化转换
- 技术文档的口语化讲解
- 教育内容的播客化呈现
- 企业内训材料的多元分发
- 内容创作者的效率提升
通过DeerFlow的播客生成技术,传统的内容创作流程得到了革命性的改进,使得高质量音频内容的制作变得简单高效。这种技术不仅降低了播客制作的门槛,更为内容的多模态分发提供了强有力的技术支撑。
自动化PPT演示文稿创建流程
DeerFlow的自动化PPT生成功能是一个高度智能化的内容转换系统,它能够将研究报告中丰富的文本内容自动转换为专业的演示文稿。这一功能基于先进的Markdown到PPT转换技术,结合大语言模型的智能内容重组能力,为用户提供了一站式的演示文稿创建解决方案。
技术架构与核心组件
PPT生成模块采用模块化的LangGraph工作流设计,主要包含以下核心组件:
PPT状态管理类 (PPTState)
class PPTState(MessagesState):
"""PPT生成流程的状态管理类"""
input: str = "" # 用户输入的研究报告内容
generated_file_path: str = "" # 最终生成的PPT文件路径
ppt_content: str = "" # 中间生成的Markdown内容
ppt_file_path: str = "" # 临时Markdown文件路径
两阶段处理流程
第一阶段:智能内容重组 (PPT Composer Node)
PPT内容生成节点是整个流程的核心,它负责将原始研究报告转换为适合演示的Markdown格式:
def ppt_composer_node(state: PPTState):
"""PPT内容生成节点 - 将研究报告转换为Markdown格式"""
model = get_llm_by_type(AGENT_LLM_MAP["ppt_composer"])
ppt_content = model.invoke([
SystemMessage(content=get_prompt_template("ppt/ppt_composer")),
HumanMessage(content=state["input"]),
])
# 保存为临时Markdown文件
temp_ppt_file_path = os.path.join(os.getcwd(), f"ppt_content_{uuid.uuid4()}.md")
with open(temp_ppt_file_path, "w") as f:
f.write(ppt_content.content)
return {"ppt_content": ppt_content, "ppt_file_path": temp_ppt_file_path}
第二阶段:格式转换与生成 (PPT Generator Node)
PPT生成节点负责将Markdown内容转换为最终的PPTX文件:
def ppt_generator_node(state: PPTState):
"""PPT生成节点 - 将Markdown转换为PPTX格式"""
generated_file_path = os.path.join(os.getcwd(), f"generated_ppt_{uuid.uuid4()}.pptx")
# 使用Marp CLI进行格式转换
subprocess.run(["marp", state["ppt_file_path"], "-o", generated_file_path])
# 清理临时文件
os.remove(state["ppt_file_path"])
return {"generated_file_path": generated_file_path}
智能提示词工程
PPT生成模块采用了精心设计的提示词模板,确保生成内容的质量和专业性:
| 提示词要素 | 功能描述 | 示例 |
|---|---|---|
| 角色定义 | 明确AI的角色定位 | "专业PPT演示文稿创建助手" |
| 格式规范 | 定义Markdown到PPT的转换规则 | 使用#表示标题页,##表示幻灯片标题 |
| 内容提取 | 指导如何从研究报告中提取关键信息 | 识别核心观点、数据、图表等 |
| 结构组织 | 定义演示文稿的标准结构 | 标题页、议程、正文、总结、Q&A |
| 视觉规范 | 图片和多媒体内容的处理规则 | 仅使用源内容中的实际图片URL |
API接口设计
DeerFlow提供了简洁的RESTful API接口用于PPT生成:
@app.post("/api/ppt/generate")
async def generate_ppt(request: GeneratePPTRequest):
"""PPT生成API端点"""
try:
report_content = request.content
workflow = build_ppt_graph()
final_state = workflow.invoke({"input": report_content})
generated_file_path = final_state["generated_file_path"]
with open(generated_file_path, "rb") as f:
ppt_bytes = f.read()
return Response(
content=ppt_bytes,
media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation",
)
except Exception as e:
logger.exception(f"PPT生成过程中发生错误: {str(e)}")
raise HTTPException(status_code=500, detail="内部服务器错误")
支持的Markdown到PPT转换特性
DeerFlow的PPT生成功能支持丰富的Markdown语法转换:
| Markdown语法 | PPT转换效果 | 使用场景 |
|---|---|---|
# 标题 |
标题幻灯片 | 演示文稿开场 |
## 章节标题 |
新幻灯片标题 | 章节分隔 |
- 列表项 |
项目符号列表 | 关键要点展示 |
1. 步骤 |
编号列表 | 流程说明 |
 |
嵌入图片 | 视觉辅助 |
--- |
幻灯片分隔符 | 幻灯片切换 |
| 粗体 | 加粗文本 | 重点强调 |
| 斜体 | 斜体文本 | 次要强调 |
工作流执行序列
错误处理与容错机制
系统实现了完善的错误处理机制:
- 输入验证:确保输入内容不为空且格式正确
- 文件操作安全:使用UUID确保临时文件名的唯一性
- 进程管理:安全的子进程调用和资源清理
- 异常捕获:全面的异常处理和日志记录
- 资源释放:确保临时文件被正确清理
性能优化策略
为了确保PPT生成的高效性,系统采用了多项优化措施:
- 异步处理:支持高并发请求处理
- 内存管理:流式文件处理避免内存溢出
- 缓存机制:智能提示词模板缓存
- 并行处理:多个生成任务并行执行
- 资源复用:LLM连接池和模型实例复用
集成与扩展性
PPT生成模块具有良好的集成性和扩展性:
- 标准化接口:遵循统一的API设计规范
- 模块化设计:易于与其他功能模块集成
- 配置灵活:支持多种LLM模型切换
- 格式扩展:可轻松支持其他输出格式
- 插件体系:支持自定义转换规则和模板
通过这一完整的自动化PPT生成流程,DeerFlow为用户提供了从研究报告到专业演示文稿的一键式转换体验,大大提升了内容创作的效率和质量。
总结
DeerFlow通过其创新的四大功能模块,构建了一个完整的人机协作内容创作生态系统。从智能研究计划的生成与审核,到Notion风格的块编辑与AI优化,再到播客的自动生成和PPT的一键转换,DeerFlow展现了AI在内容创作领域的强大潜力。这些功能不仅提高了创作效率,更重要的是保持了人类在创作过程中的主导权,实现了真正意义上的智能辅助创作。平台的技术架构先进而实用,为各类内容创作者提供了强有力的工具支持。
更多推荐


所有评论(0)