Dify API 调用实践:如何高效利用 RAGFlow 外部知识库

本文使用 Dify v0.10.0+ 和 RAGFlow v0.12.0+ 版本(源码运行)。Dify 中的 RAG 一直被诟病,现在 Dify 提供了外部知识库 API,这样就可以连接到 Dify 之外的知识库并从中检索知识。第一个问题是 API 规范,包括接口格式、输入和输出参数等。第二个问题是哪些外部知识库支持该 API 呢?理论上讲只要支持 API 规范都是可行的。目前,官网有介绍如何使用 AWS Bedrock 知识库的。本文重点介绍 Dify 连接 RAGFlow 外部知识库。

一.Dify 连接 RAGFlow 操作

1.添加外部知识库 API

输入 Name,API Endpoint 和 API Key,如下所示:

img

(1)Name:中英文均可。

(2)API Endpoint:http://127.0.0.1/api/v1/dify

(3)API Key:XXX

2.添加外部知识库接口

主要调用/datasets/external-knowledge-api 的 POST 接口,如下所示:

img

img

(1)Payload 内容

{
    "name": "外部知识库",
    "settings": {
        "endpoint": "http://127.0.0.1:9380/api/v1/dify/retrieval",
        "api_key": "ragflow-XXX"
    }
}

(2)Response 结果

{
    "id": "22ae908a-8f54-49dc-be77-4ff8991efbb6",
    "tenant_id": "7bdb51d6-f390-4b23-a59e-9cdbe2e93136",
    "name": "\u5916\u90e8\u77e5\u8bc6\u5e93",
    "description": "",
    "settings": {
        "endpoint": "http://127.0.0.1:9380/api/v1/dify/retrieval",
        "api_key": "ragflow-MwYmU3Zjg2OGY4YjExZWZiZGU1MDAxNT"
    },
    "dataset_bindings": [],
    "created_by": "ebbf25be-ec85-4d68-9dd2-5bc2ee2855e4",
    "created_at": "2024-10-22T01:41:04"
}

3.连接外部知识库

填写外部知识库名字、描述、API 和 ID 等信息,并且设置召回参数,如下所示:

img

(1)外部知识库名字:外部知识库

(2)外部知识库描述:外部知识库

(3)外部知识库 API:外部知识库

(4)外部知识库 ID:XXX

(5)召回设置 Top K:默认 2

(6)召回设置 Score 阈值:默认 0.5

没找到外部知识库 ID 在哪里看,直接看的 list 接口的 Response 的 id,如下所示:

img

4.知识库设置

在知识库页面可看到外部知识库,如下所示:

img

在知识库设置页面,可以对外部知识库进行信息修改,如下所示:

img

二.测试 RAGFlow 接口

1.使用 Postman 测试

设置 Headers,如下所示:

img

设置 Body(raw+JSON),如下所示:

img

{
    "knowledge_id": "0ed8508e8f7311ef801500155d1e64cf",
    "query": "如何克服恐惧?",
    "retrieval_setting":{
        "top_k": 1,
        "score_threshold": 0
    }
}

2.调试接口

通过 Debug 可看到 Request 的参数,如下所示:

img

三.Dify 使用外部知识库召回测试

1.召回测试

理想过程是输入、测试和输出,如下所示:

img

2.接口 403 原因

但在召回测试接口 /datasets//external-hit-testing 时候发现 403。看了下发现 Authorization 内容为 Bearer [__HIDDEN__],如下所示:

img

顺便看了下前端代码,如下所示:

img

external_knowledge_apis 数据库表的 settings 字段就是存储的 Bearer [__HIDDEN__]。推测 Bearer [__HIDDEN__] 的目的主要是为了 隐藏敏感信息,即 API 请求中的 身份验证令牌(API keyToken)。这是为了防止在公开或共享的场景下泄露机密的 API 密钥,确保安全性。[__HIDDEN__] 只是一个占位符,实际的 API 密钥会替换该部分。

img

为了明证推测,通过 [__HIDDEN__] 在 Dify 源码中进行了检索,如下所示:

img

这段代码的主要目的是 加密和解密凭据,并处理隐藏的凭据([__HIDDEN__])在输入时保持不变的情况。如下所示:

# encrypt credentials
for key, value in credentials.items():
    if key in provider_credential_secret_variables:
        # if send [__HIDDEN__] in secret input, it will be same as original value
        if value == HIDDEN_VALUE and key in original_credentials:
            credentials[key] = encrypter.decrypt_token(self.tenant_id, original_credentials[key])

因此,应该是在调用外部知识库检索的时候,这个部分还没完善。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值