Dify工作流教程|以抓取网页并更新知识库为例详细讲解工作流编排过程(附DSL文件)

点击上方蓝字关注我们 | AI时代 你不是一个旁观者

1、系统背景

你不会还在用书签管理自己的文章吧。有没有很痛苦,明明添加书签的网页,当你想阅读的时候,总是找不到或者好不容易找到了,发现网页404了。如果有个小工具,直接能把你输入的链接内容抓取下来,并且加入到你的知识库中,你说他香不香。

2、需求分析

核心需求分析


网页抓取,通过蜘蛛抓取网页内容、解析出网页标题和内容、调用知识库接口存入个人知识库。

3、流程设计

picture.image

4、网页抓取

使用Firecrawl 工具,在工具中找到Firecrawl,点击单页面抓取,添加到画布。

picture.image

首次使用需要授权。点击获取按钮,按照帮助说明,获取API密钥。

picture.image

无法获取授权的,也可以使用网页抓取工具,这个是免费的,抓取效果也可以。

picture.image

5、参数提取

使用参数提取器,提取网页标题和内容,新增两个提取参数,分别为title、content

picture.image

6、构造http请求,更新知识库

使用http请求节点,请求知识库API。

6.1 创建API秘钥。创建成功后,我们把他保存下来。

picture.image

6.2 创建一个知识库,后续将文章存入到哪个知识库中,就可以创建这个知识库。

picture.image

6.3 获取知识库的id

方法1,使用浏览器抓包。具体方法为,点击进入到这个知识库,右键-检查,刷新页面,然后找到 documents?page=1&limit=10&keyword=,点击后如下图。红框中的即为当前知识库的id,把他保存下来,后面会用到。

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2b73d99ba013427c9228f77f64fdaeb8~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1775437557&x-signature=ObJy1mjCP3DUtr2YDWBRv14IdJ4%3D)

方法2,构造请求,使用知识库API接口获取知识库id

get http://host.docker.internal/v1/datasets?page=1&limit=20,配置好识库的APIkey。点击运行此步骤。获得知识库id,有多个知识库时,请根据name来判断。

picture.image

6.4构造请求, 更新知识库内容

API:

post http://host.docker.internal/v1/datasets/{你的知识库id}/document/create-by-text

HEADERS:

Content-Type : application/json

BODY-raw:

{"name": "{新建的title变量}","text": "新建的content变量","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}

7、http请求节点常见报错处理

a、 报错内容为:

 Reached maximum retries (0) for URL http://localhost/v1/datasets/2bf8fe54-cc73-4864-8e9f-215a33851a65/document/create-by-text


     解决方案:将localhost替换为 host.docker.internal


 原因 当 Dify 需要访问宿主机上运行的服务(如数据库、API 或其他依赖服务)时,必须通过宿主机的真实 IP 进行通信。host.docker.internal 是 Docker 提供的特殊 DNS 名称,自动映射到宿主机的内部 IP。

b、Request failed with status code 400

     解决方案:检查请求方式、构造的参数是否正确,往往是构造参数错误导致的。

c、"status_code": 400,

"body": "{"code": "bad_request", "message": "The browser (or proxy) sent a request that this server could not understand.", "status": 400}\n"

  解决方案:检查输入的文本中是否包含/n  /p / 等特殊字符,需要将特殊字符去掉,或者转义。

8、改进余地

这个工作流还可以继续改进,例如加入 问题分类器 节点,判断网页知识的内容类型,以存入到不同的知识库中。

获取DSL文件

DSL文件分享公众号回复 DSL ,获取工作流DSL文件。目前我建立了一个dify学习交流群。可以在微信公众号回复 入群,我拉你进群。

往期文章

dify工作流教程|以电费单分析为例详细讲解工作流编排过程(附DSL文件)

Dify本地化部署教程:电脑小白也能轻松上手!

0
0
0
0
评论
未登录
暂无评论