网站首页 > 教程文章 正文
上一篇文章:Dify工具使用全场景:输入标题生成文章的指南(功能篇·第3期)
我的场景
在上一个场景里,我通过标题生成了文章,但文章需要导出到word中,今天我主要记录一下文本生成word的过程。
第一步:制作dify工具
通过文本生成word的flask服务,用于把文本通过此工具转化成word下载链接。
首先创建flash服务类:
from flask import Flask, request, send_file
from docx import Document
import os
import time
import markdown
app = Flask(__name__)
@app.route('/convert', methods=['POST'])
def convert_md_to_docx():
app.logger.info('Received request for /convert')
if not request.data:
app.logger.error('No content part in the request')
return 'No content part', 400
content = request.data.decode('utf-8')
if content == '':
app.logger.error('No content provided')
return 'No content provided', 400
# 从请求中获取的Raw text内容保存为临时文件
mdfile_name = str(int(time.time())) + ".md"
with open(f"temp/{mdfile_name}", 'w', encoding='utf-8') as f:
f.write(content)
# 将Markdown转换为HTML
with open(f"temp/{mdfile_name}", 'r', encoding='utf-8') as f:
md_content = f.read()
html_content = markdown.markdown(md_content)
# 创建Word文档
doc = Document()
doc.add_paragraph(html_content)
# 将文档保存为Word文件格式
file_name = str(int(time.time())) + ".docx"
output_path = os.path.join('output', file_name)
doc.save(output_path)
# 返回文件的下载链接
download_url = request.host_url + 'download/' + os.path.basename(output_path)
print(download_url)
return {'download_url': download_url}
@app.route('/download/<filename>', methods=['GET'])
def download_file(filename):
file_path = os.path.join('output', filename)
return send_file(file_path, as_attachment=True)
if __name__ == '__main__':
os.makedirs('temp', exist_ok=True)
os.makedirs('output', exist_ok=True)
app.run(host='0.0.0.0', port=5000)
这样就创建了一个5000端口的web服务。
创建了这个web服务,我同时把它转化成了docker服务,部署在了和dify同一个服务器中。
怎么部署,可以参考
https://github.com/brightwang/dify-tool-service这个开源工程。要注意的是当前服务是5000,要确认是否会和容器的宿主机IP产生冲突,如果会则要修改成其它端口。
另外:对于不会编码的同学,可以采用trae工具来编写,让它参考dify-tool-service实现一个通过markdown文件生成docx的类似工程,AI就会给你打工了。
上面的步骤完成后,则在dify的docker-compose.yaml文件中修改启动服务,如下图:
启动dify 新服务:docker-compose up -d
这样就会开始安装了
成功启动,如下图验证:
创建工作流
根据图片配置,即可完成,发布、发布成工具。
这样工具就已经生成。
创建智能体agent
配置agent:
点击下载文档,如下图:
这样文本生图的过程就完成了,当然里面你可以增加一些其它操作并完善这个工具。
相关文章列表:
猜你喜欢
- 2025-05-28 21-Python-文件操作
- 2025-05-28 为你的python程序上锁:软件序列号生成器
- 2025-05-28 用Python做个“冰墩墩雪容融”桌面部件(好玩又有趣)
- 2025-05-28 Pytorch入门-Day9:数据加载(Dataset与DataLoader)
- 2025-05-28 2025年必学的Python自动化办公的15个实用脚本
- 2025-05-28 自学Python第二天
- 2025-05-28 ScalersTalk 成长会 Python 小组第 9 周学习笔记
- 2025-05-28 怎么做到的?用python制作九宫格图片,太棒了
- 2025-05-28 利用Dask构建端到端数据处理:从数据摄取到数据库加载的实战指南
- 2025-05-28 每日自动备份文件
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)