框架与工具链1212 字

Dify打造小红书爆改工作流

·全库 273 / 611

《Dify打造小红书爆改工作流》共 0.1 万字,通篇围绕 prompt、工作流、提示词、Docker 展开,归在「框架与工具链」这一层。

覆盖prompt工作流提示词Docker视觉Dify

适合要选技术栈、不想把别人踩过的坑重踩一遍的人

目录骨架(8 节)
  1. 示例代码
  2. 课程内容
  3. 笔记展示
  4. 工作流流程
  5. 获取小红书笔记详情
  6. 图生图的工具
  7. 百度AI开发平台
  8. 完整工作流
目录 · 6 节

示例代码

📎 附件:worflow-demo.zip(zip, 1KB)

原文链接:https://www.yuque.com/attachments/yuque/0/2025/zip/2424104/1749879893993-83908bcd-a6ef-4463-949a-e6cf25a2322e.zip

课程内容

  1. 基于笔记地址获取的笔记内容
  2. 提取出核心内容、图片链接、文案的标题、文案的内容
  3. 基于AI优化标题和内容
  4. 基于图片工具来重新生成图片内容
  5. 获取到了爆改后的小红书的文案信息

笔记展示

小红书笔记地址:https://www.xiaohongshu.com/explore/680ec7950000000021018503?xsec_token=ABHmt3T5TfO0T8yvWvaXU1D7HQfcoXG3Cq5IKLThWJ3sY=&xsec_source=pc_search

image.png

工作流流程

整体的工作流设计效果

image.png

获取的响应结果

image.png

image.png

获取小红书笔记详情

image.png

代码执行中的代码为:

import re
import json

def main(html: str) -> dict:
    # 提取og:title内容
    og_title_pattern = r'<meta[^>]*name="og:title"[^>]*content="([^"]*)"'
    og_title_match = re.search(og_title_pattern, html)
    og_title = og_title_match.group(1) if og_title_match else ""

    # 提取description内容
    desc_pattern = r'<meta[^>]*name="description"[^>]*content="([^"]*)"'
    desc_match = re.search(desc_pattern, html)
    description = desc_match.group(1) if desc_match else ""

    # 提取所有og:image内容
    og_image_pattern = r'<meta[^>]*name="og:image"[^>]*content="([^"]*)"'
    og_images = re.findall(og_image_pattern, html)

    # 构建结果字典
    result = {
        "og_title": og_title,
        "description": description,
        "og_images": og_images
    }

    return {"result": result}

输出的内容

image.png

图生图的工具

把小红书中的图片借助AI大模型来爆改,这块我们通过百度大模型来实现。流程图的效果为

image.png

节点接受两个参数,分别是 图片的地址和需要调整的提示词。对应的代码执行是调用 我们单独创建的 基于Flask 的web服务。

import json
import requests

def main(imgUrl: str, prompt: str):

    url = "http://host.docker.internal:5000/get_img_info"
    # 构造请求体
    payload = {
        "url": imgUrl,
        "prompt": prompt,
    }

    headers = {
        "Content-Type": "application/json"
    }

    try:
        response = requests.post(url, json=payload, headers=headers)
        if response.status_code == 200:
            try:
                return {"result":str(response.json()["result"])}
            except Exception as e:
                return {"result": f"解析响应 JSON 失败: {str(e)}"}
        else:
            return {"result": f"请求失败,状态码: {response}"}
    except Exception as e:
        return {"result": str(e)}

输出的结果

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求