https://www.bilibili.com/video/BV1CL6MYKEGd/?vd_source=c47fbb8166930edc486d8fdc405bf569
(项目作者:BannyLon)
文章目录
准备工作
下载node.js
Command 'node' not found, but can be installed with:
apt install nodejs
node -v
# 安装 Node.js 和 npm
sudo apt install nodejs npm
# 验证安装
node --version
npm --version
还是不行
https://go.lightnode.com/zh/tech/install-node-js-on-ubuntu
好啦
全局安装Marp-cli
npm install -g @marp-team/marp-cli
大致看了一眼,我目前用到dify不是自己部署的,所以好像那个工具我目前用不了,还是需要学习一下docker如何搞
未完待续!!!!!!!!
继续
问题1:MARP是啥
Marp是一个基于MarkDown快速编写幻灯片的工具,可以基于VScode环境,实现MarkDown幻灯的编写和预览。
问题2:Flask 中 request.get_data() 和 request.get_json()
https://zhuanlan.zhihu.com/p/436378878
PPT前面有一个❓是什么意思?
在返回的下载链接 http://127.0.0.1:5004/data/{pptx_filename}?pptx 中,问号 ? 是 URL 的查询参数起始符号,但在这个特定代码中,它并没有实际的参数传递作用,可能是出于以下原因:
send_from_directory 和send_file 有什么区别?
用于生成保存markdown的工作流
为什么没有发布工具选项
我重新创建了工作流就是这样子了
但为什么发布为工具还是点击不了?
版本的问题???
制作工具
你是一个顶尖的PPT制作专家,专注于根据用户的多样化需求打造专业且富有吸引力的PPT内容。你的工作流程严谨而高效,旨在确保每一步都精准满足用户的期望。具体流程如下:
一、需求理解与大纲生成
你擅长倾听并深入理解用户的具体PPT制作需求,无论是主题、风格还是内容要点,你都能准确把握。若用户未提出明确需求或需求不严谨,你将运用自身丰富的经验和专业知识,主动为其构思并生成一份结构清晰、逻辑连贯的大纲。这一步骤为后续PPT制作奠定了坚实基础,确保内容策划的方向正确无误。
二、大纲确认与内容搜索
在生成大纲后,你会与用户进行确认,确保其满足用户的期望。一旦用户对大纲无异议,你将立即进入内容搜索阶段。你精通使用searxng工具,能够高效搜索互联网上的最新、最相关信息,确保PPT内容既准确又具时效性。你擅长按照用户的需求或已确认的大纲进行内容的筛选、整合和优化,使其与PPT主题和用户需求完美契合。
三、PPT内容生成与确认
根据已确认的大纲和searxng工具检索出的内容,你将逐步生成PPT内容。每页内容都经过精心设计和编排,确保视觉效果和信息传递效果最佳。你注重内容的精炼和简洁,每页内容不超过5行,以提高观众的阅读体验和注意力集中度。完成所有PPT页内容的生成后,你会与用户进行确认,并根据其反馈进行必要的修改,直至用户完全满意。
四、格式调整与问答沟通
在与用户沟通的过程中,你始终使用普通PPT格式给出内容,避免使用Marp等特定格式,以确保沟通的顺畅性和用户的理解度。你擅长根据用户的反馈和意见,对PPT的排版、结构和显示内容进行合理调整,确保PPT整体风格统一、排版优美、结构清晰。
需要合理分页,合理控制每页的显示内容,避免内容超出边界,确保观众能够轻松阅读和理解。
五、最终生成与交付
当用户对PPT内容完全确认后,你会询问其是否需要生成PPT文件。若用户确认需要,你将按照Marp格式要求生成最终内容,并调用save_marp_content进行保存。随后,你会将生成的PPT文件链接及时提供给用户,确保其能够顺利获取和使用。同时,你也会提供必要的操作指南或建议,以帮助用户更好地理解和利用PPT内容。
六、专业能力与服务态度
你具备深厚的PPT制作经验和专业知识,能够应对各种复杂需求,确保PPT内容的专业性和准确性。你始终保持耐心和细心,关注用户的反馈和需求变化,及时调整和优化PPT内容。你注重与用户的沟通和合作,尊重其意见和建议,共同打造出真正符合用户需求的PPT作品。
直接导入这个DSL就有,可能就已经内置了把
就是不能导入
!!!
要运用这个SearXNG
启动不了docker
因为是用的别人部署的,不会!!!!!
啊啊啊啊
因为不是自己的所以不存在
那我自己重新制作一个流呢?
现在需要制作一个术语语义的PPT,要求描述什么是术语学,术语学研究的近况
因为他有确认沟通,所以不太行,但是我觉得可以稍微换一种方式
就是这个工具就是把最终的内容上传到后端,之后转化为ppt的格式就可以
它主要是生成Marp形式
代码
import subprocess
from flask import Flask, request, send_from_directory
import os
import time
import logging
app = Flask(__name__)
logging.basicConfig(level=logging.DEBUG)
DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data')
if not os.path.exists(DATA_DIR):# DATA_DIR是否存在
os.makedirs(DATA_DIR)# 创建路径
logging.info(f'DATA_DIR的路径:{DATA_DIR}')
# 获取marp的路径 获取Marp工具的路径: 首先尝试从环境变量MARP_PATH获取 如果不存在则使用默认路径/Users/habhy/.npm-global/bin/marp
marp_path = os.getenv('MARP_PATH', '/Users/habhy/.npm-global/bin/marp')
# 保存上传的Markdown内容,并转换成PPT
@app.route('/upload', methods=['POST'])
def upload_markdown():
content = request.get_data(as_text=True)
print(content)
timestamp = str(int(time.time()))
md_filename = f"{timestamp}.md"
pptx_filename = f"{timestamp}.pptx"
# 保存Markdown文件
md_filePath = os.path.join(DATA_DIR, md_filename)
pptx_filePath = os.path.join(DATA_DIR, pptx_filename)
with open(md_filePath, 'w', encoding='utf-8') as f:
f.write(content)
# 使用marp-cli将Markdown转换为PPT
"""
调用Marp转换PPT:
使用subprocess运行marp命令
将Markdown转换为PPTX
如果出错返回错误信息
-o:Marp 的输出选项(--output 的简写)。
作用:如果命令执行失败(返回非零退出码),会抛出 subprocess.CalledProcessError 异常。
"""
try:
subprocess.run([marp_path, md_filePath, '-o', pptx_filePath], check=True)
except subprocess.CalledProcessError as e:
return {
'message': 'Failed to convert Markdown to PPT',
'error': str(e)
}
# 返回文件链接
Pre_url = request.host_url + os.path.basename(md_filePath)
download_url = request.host_url + 'download/' + os.path.basename(pptx_filename)
print(Pre_url)
print(download_url)
# return {'download_url': download_url}
# f'Markdown 文件已保存\n预览链接: http://127.0.0.1:5004/data/{md_filename} \n下载链接: http://127.0.0.1:5004/data/{pptx_filename}?pptx'
return f'Markdown 文件已保存\n预览链接: {Pre_url} \n下载链接: {download_url}'
# 提供静态文件服务
@app.route('/data/<path:filename>')
def serve_file(filename):
return send_from_directory('data', filename)
if __name__ == '__main__':
app.run(host=,debug=True)