mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-17 03:34:45 +08:00
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
|
|
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||
|
|
# SPDX-License-Identifier: MIT
|
||
|
|
|
||
|
|
import logging
|
||
|
|
import os
|
||
|
|
import uuid
|
||
|
|
|
||
|
|
from langchain.schema import HumanMessage, SystemMessage
|
||
|
|
|
||
|
|
from src.config.agents import AGENT_LLM_MAP
|
||
|
|
from src.llms.llm import get_llm_by_type
|
||
|
|
from src.prompts.template import get_prompt_template
|
||
|
|
|
||
|
|
from .state import PPTState
|
||
|
|
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
|
||
|
|
def ppt_composer_node(state: PPTState):
|
||
|
|
logger.info("Generating ppt content...")
|
||
|
|
model = get_llm_by_type(AGENT_LLM_MAP["ppt_composer"])
|
||
|
|
ppt_content = model.invoke(
|
||
|
|
[
|
||
|
|
SystemMessage(content=get_prompt_template("ppt_composer")),
|
||
|
|
HumanMessage(content=state["input"]),
|
||
|
|
],
|
||
|
|
)
|
||
|
|
logger.info(f"ppt_content: {ppt_content}")
|
||
|
|
# save the ppt content in a temp file
|
||
|
|
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}
|