零成本——用Dify实现一句话生成PPT
用户仅需输入一个标题,随后通过搜索引擎查找与之相关的素材。接着,利用大模型对标题和素材进行深入分析与整理,并以 Marp 格式进行输出。通过自定义接口服务 md_pdf,将 Marp 格式的内容保存为 Markdown 文件。在该接口中调用 marp-cli 工具,将 Markdown 文件转换为 PPT 格式进行展示,同时返回预览链接和下载链接,大功告成!
环境:dify 14.2 docker版本;
模型:glm-4-flash
工具:marpteam/marp-cli,md_pdf
一、实现思路
用户仅需输入一个标题,随后通过搜索引擎查找与之相关的素材。接着,利用大模型对标题和素材进行深入分析与整理,并以 Marp 格式进行输出。通过自定义接口服务 md_pdf,将 Marp 格式的内容保存为 Markdown 文件。在该接口中调用 marp-cli 工具,将 Markdown 文件转换为 PPT 格式进行展示,同时返回预览链接和下载链接,大功告成!
二、准备工作
-
marp-cli工具,一个用于将 Marp 和 Marpit 框架的 Markdown 文件转换为静态 HTML/CSS、PDF、PowerPoint 文档以及图片等格式,通过docker安装,端口指定为8084。
docker run -d -v /home/output:/vda1/data/marp -e LANG=$LANG -e PORT=8084 -p 8084:8084 marpteam/marp-cli --server ./
-
自定义接口服务 md_pdf,端口为5001,用于接收marp格式内容,保存为markdown文件,并返回预览和下载链接。
from flask import Flask, request import time app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_markdown(): content=request.get_data(as_text=True) file_name=str(int(time.time()))+".md" with open(f"/vda1/data/marp/{file_name}",'w',encoding='utf-8') as f: f.write(content) return f'😄 PPT已生成成功!\n 预览链接:http:/192.168.3.86:8084/{file_name} \n 下载链接:http:/192.168.3.86:8084/{file_name}?pptx' if __name__=='__main__': app.run(host='0.0.0.0',port=5001)
三、配置工作流
-
开始增加文本输入,用于接收用户输入的标题;
-
通过免费的Bing搜索,搜索标题相关素材和内容;
-
通过大模型,对标题和bing搜索结果进行整合和分析,输出marp格式内容;
-
通过http工具,请求准备好的md_ppt接口;
-
返回生成的ppt的下载链接和预览链接;
四、效果展示
输入“大语言模型”,生成PPT后返回下载链接和预览链接:
点击预览:
关注公众号【红岸解码室】回复 “一句话生成ppt” 获取DSL工作流文件!
更多推荐
所有评论(0)