DeerFlow人机协作与内容创作功能详解

【免费下载链接】deer-flow DeerFlow is a community-driven framework for deep research, combining language models with tools like web search, crawling, and Python execution, while contributing back to the open-source community. 【免费下载链接】deer-flow 项目地址: https://gitcode.com/gh_mirrors/de/deer-flow

本文详细介绍了DeerFlow平台的四大核心功能:人在环中(Human-in-the-loop)交互机制、Notion风格块编辑与AI辅助优化、播客脚本生成与音频合成技术,以及自动化PPT演示文稿创建流程。这些功能通过先进的AI技术和人性化设计,实现了人类智能与人工智能的深度协同,大幅提升了内容创作效率和质量。

人在环中(Human-in-the-loop)交互机制

DeerFlow的人机协作系统采用了先进的"人在环中"(Human-in-the-loop)交互机制,这一机制通过精心设计的计划审核流程和自然语言交互界面,实现了人类智能与人工智能的深度协同。该系统不仅支持自动化的研究流程,更重要的是允许用户在关键决策点进行干预和指导,确保研究方向和结果符合用户期望。

计划生成与审核流程

DeerFlow的HITL机制核心在于计划生成后的审核环节。当规划器(Planner)生成研究计划后,系统会暂停执行并等待用户反馈。这一过程通过LangGraph的interrupt机制实现,具体流程如下:

mermaid

中断反馈机制实现

在技术实现层面,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            # 每个计划最大步骤数
)

用户可以根据任务复杂度和信任程度调整自动化级别:

  1. 完全手动模式:每个计划都需要人工审核
  2. 条件自动模式:简单任务自动接受,复杂任务需要审核
  3. 完全自动模式:所有计划自动接受(适用于批处理任务)

错误处理与恢复机制

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构建,采用了模块化的扩展架构,支持丰富的块类型和实时协作功能:

mermaid

编辑器支持的主要块类型包括:

块类型 功能描述 AI支持
段落块 基础文本内容 优化/扩写/缩写
代码块 语法高亮代码 代码解释/优化
表格块 结构化数据展示 数据分析/格式化
图片块 可视化内容嵌入 图片描述生成
数学块 公式编辑渲染 公式推导/简化

AI辅助优化功能矩阵

DeerFlow集成了多层次的AI优化能力,通过专门的Prose处理流水线实现智能内容增强:

mermaid

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状态机架构,采用多节点协作的工作流模式:

mermaid

系统使用结构化的数据模型来管理播客内容:

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}

整个工作流的执行过程可以通过状态图清晰展示:

mermaid

技术特点与优势

DeerFlow的播客生成技术具备以下核心优势:

  1. 智能对话分配:自动识别内容结构,合理分配男女主播对话轮次
  2. 自然语言处理:将技术性内容转换为口语化表达,确保听觉友好性
  3. 高质量音频输出:采用专业TTS引擎,生成接近真人发音的音频
  4. 端到端自动化:从文本输入到播客输出的完整自动化流程
  5. 多语言支持:原生支持中英文内容生成,满足国际化需求

实际应用场景

该技术特别适用于:

  • 新闻摘要的音频化转换
  • 技术文档的口语化讲解
  • 教育内容的播客化呈现
  • 企业内训材料的多元分发
  • 内容创作者的效率提升

通过DeerFlow的播客生成技术,传统的内容创作流程得到了革命性的改进,使得高质量音频内容的制作变得简单高效。这种技术不仅降低了播客制作的门槛,更为内容的多模态分发提供了强有力的技术支撑。

自动化PPT演示文稿创建流程

DeerFlow的自动化PPT生成功能是一个高度智能化的内容转换系统,它能够将研究报告中丰富的文本内容自动转换为专业的演示文稿。这一功能基于先进的Markdown到PPT转换技术,结合大语言模型的智能内容重组能力,为用户提供了一站式的演示文稿创建解决方案。

技术架构与核心组件

PPT生成模块采用模块化的LangGraph工作流设计,主要包含以下核心组件:

mermaid

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. 步骤 编号列表 流程说明
![描述](URL) 嵌入图片 视觉辅助
--- 幻灯片分隔符 幻灯片切换
粗体 加粗文本 重点强调
斜体 斜体文本 次要强调

工作流执行序列

mermaid

错误处理与容错机制

系统实现了完善的错误处理机制:

  1. 输入验证:确保输入内容不为空且格式正确
  2. 文件操作安全:使用UUID确保临时文件名的唯一性
  3. 进程管理:安全的子进程调用和资源清理
  4. 异常捕获:全面的异常处理和日志记录
  5. 资源释放:确保临时文件被正确清理

性能优化策略

为了确保PPT生成的高效性,系统采用了多项优化措施:

  • 异步处理:支持高并发请求处理
  • 内存管理:流式文件处理避免内存溢出
  • 缓存机制:智能提示词模板缓存
  • 并行处理:多个生成任务并行执行
  • 资源复用:LLM连接池和模型实例复用

集成与扩展性

PPT生成模块具有良好的集成性和扩展性:

  • 标准化接口:遵循统一的API设计规范
  • 模块化设计:易于与其他功能模块集成
  • 配置灵活:支持多种LLM模型切换
  • 格式扩展:可轻松支持其他输出格式
  • 插件体系:支持自定义转换规则和模板

通过这一完整的自动化PPT生成流程,DeerFlow为用户提供了从研究报告到专业演示文稿的一键式转换体验,大大提升了内容创作的效率和质量。

总结

DeerFlow通过其创新的四大功能模块,构建了一个完整的人机协作内容创作生态系统。从智能研究计划的生成与审核,到Notion风格的块编辑与AI优化,再到播客的自动生成和PPT的一键转换,DeerFlow展现了AI在内容创作领域的强大潜力。这些功能不仅提高了创作效率,更重要的是保持了人类在创作过程中的主导权,实现了真正意义上的智能辅助创作。平台的技术架构先进而实用,为各类内容创作者提供了强有力的工具支持。

【免费下载链接】deer-flow DeerFlow is a community-driven framework for deep research, combining language models with tools like web search, crawling, and Python execution, while contributing back to the open-source community. 【免费下载链接】deer-flow 项目地址: https://gitcode.com/gh_mirrors/de/deer-flow

Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐