云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Dify工具使用全场景:通过文本生成word的指南(功能篇·第4期)

jxf315 2025-05-28 18:08:32 教程文章 6 ℃

上一篇文章: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:


点击下载文档,如下图:


这样文本生图的过程就完成了,当然里面你可以增加一些其它操作并完善这个工具。

相关文章列表:

Dify图表工具全场景:流程图、甘特图生成指南(功能篇·第1期)

Dify图表工具全场景:思维导图生成指南(功能篇·第2期)

Dify工具使用全场景:输入标题生成文章的指南(功能篇·第3期)

Tags:

最近发表
标签列表