掘金 人工智能 7小时前
dify案例分享-解锁 AI 搜索新玩法:Dify 秘塔搜索工作流搭建教程与效果展示
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了如何利用dify构建一个集成秘塔AI搜索功能的自动化工作流。文章首先阐述了AI搜索的核心特点及其在信息检索领域的优势,并以秘塔搜索为例,讲解了如何获取秘塔API密钥。随后,作者分步演示了在dify平台上创建工作流的过程,包括设置起始节点接收用户输入、利用条件分支适配不同搜索类型、通过HTTP请求调用秘塔API,以及使用代码节点处理API响应并将其转换为Markdown格式输出。最后,文章展示了工作流的实际测试效果,并对dify在集成第三方API和数据处理方面的能力进行了总结,为用户提供了一个快速搭建个性化AI搜索工具的实践指南。

💡 AI搜索利用机器学习、自然语言处理等技术,提供比传统搜索更智能、个性化和精准的体验,其核心优势在于智能理解用户意图、个性化推荐、多模态信息处理和语义搜索。

🔑 要在dify中集成秘塔AI搜索,首先需要登录metaso.cn注册并获取API密钥,该密钥是调用秘塔搜索API进行数据检索的凭证,新用户通常会获得一定的免费调用额度。

⚙️ 在dify工作流中,首先通过“开始”节点接收用户输入的搜索参数,如查询词(q)、搜索范围(scope)、结果数量(size)等,这些参数对应秘塔API的输入要求。

⚖️ 利用dify的“条件分支”组件,可以根据用户选择的搜索范围(如网页、文档、学术等),智能地适配不同的搜索请求,确保搜索的准确性和效率。

🚀 通过dify的“HTTP请求”节点,可以配置POST请求调用秘塔AI搜索的API接口,关键在于正确设置请求地址、Headers(包含Authorization)和Body(传递搜索参数),并将API密钥设为环境变量以提高安全性。

📝 在HTTP请求后,使用“代码处理”节点解析API返回的JSON数据,提取所需的网页标题、链接、摘要等信息,并进行结构化处理,例如将其转换为一个包含搜索关键词、总数和网页列表的字典结构。

📄 接着,另一个“代码处理”节点将处理后的JSON数据进一步转换为Markdown格式,以便于在工作流的最终输出中清晰地展示搜索结果,如标题和链接,提升用户阅读体验。

✅ 工作流的最后一步是直接输出转换后的Markdown格式结果,完成从用户输入到API调用、数据处理再到最终展示的全流程自动化,整个过程展示了dify在集成第三方服务和数据格式转换方面的灵活性和便捷性。

1.前言

AI搜索是一种基于人工智能技术的搜索方式,它通过机器学习、自然语言处理、深度学习等技术,提供更智能、个性化和精准的搜索体验。与传统搜索引擎相比,AI搜索在理解用户意图、提供结构化答案、个性化推荐和上下文理解等方面具有显著优势。

AI搜索的核心特点包括:

AI搜索的应用场景广泛,包括信息检索、内容推荐、企业信息管理、医疗文献检索等。目前,市场上已有多个代表性AI搜索引擎,如Perplexity AI、Microsoft Bing AI、SCOUT SEARCH等。

秘塔搜索是我平时用的比较多的一块AI搜索工具,之前有小伙伴给我留言说你文章中的首页的页面是怎么制作的呢?哈哈今天给大家揭晓一下答案,我其实就是用的秘塔AI 搜索生成出来的。

目前秘塔搜索也支持API 调用了,今天就带大家一个看一下基于dify实现的一个秘塔搜索功能的工作流。那么工作流长啥样子呢?

效果如下:

呵呵 效果还不错吧。话不多下面带大家拆解这个工作流是如何制作的。

2.工作流的制作

秘塔API秘钥获取

既然用到秘塔AI搜索,肯定用到他们家的API。我们首选需要登录注册metaso.cn。访问 metaso.cn/search-api/…

默认会送5000次调用请求量

不熟悉API 调用的小伙伴也可以在网页端查看这个API 调用。

上面的接口查询条件大家稍微熟悉一下,后面的dify工作流输入参考就是根据上面的输入参数获取的。出来提供CURL 命令之外,它也提供多种开发语言客户端调用代码,方便大家集成。

同样它也支持MCP了。MCP 应用上架了魔搭社区。www.modelscope.cn/mcp/servers…

感兴趣的小伙伴可以去魔搭社区上体验。

创建工作流

我们在dify工作台上,新建空白应用

开始

这个开始节点主要是接受用户输入的参数,这些参数就是秘搭API 提供的输入参数,可以参考上面截图的请求参数。

目前有查询、搜索范围、结果数量、页码、返回精简的原文匹配信息、通过网页的摘要信息进行召回增强、抓取所有来源网页原文

这里参考较多我们就不一一举例。只介绍 1-2个

配置完成后我们可以看到开始节点配置后的请求参数

条件分支

这个条件分支是dify自带的组件,这个其实很好理解秘搭提供多种类型搜索(网页、文档、学术、图片、视频、播客)我们根据开始节点scope下拉选项来进行条件分支判断。

这个条件分支如下:

HTTP请求

接下来我们使用哦dify自带的http请求调用秘搭AI搜索的API 请求接口。这里我们需要设置一下api KEY 的环境变量,方便后面接口请求使用

配置好环境变量后我们就可以设置http请求了

http节点请求设置如下,请求方式post.请求地址metaso.cn/api/v1/sear…

headers 设置中最关键是的设置Authorization ,数据格式类型是application/json

body部分主要是json格式数据

{  "q": "{{#1753787119287.q#}}",  "scope": "{{#1753787119287.scope#}}",  "includeSummary": {{#1753787119287.includeSummary#}},  "size": "{{#1753787119287.size#}}",  "includeRawContent":{{#1753787119287.includeRawContent#}},  "conciseSnippet": {{#1753787119287.conciseSnippet#}}}

这里的HTTP 配置都一样。

代码处理

http请求后我们需要通过代码来对结果进行简单的处理。

输入参数 body 输入值就是http请求的返回。

输出变量input_data 返回值是一个object

处理的代码如下:

import jsondef main(body: str) -> dict:    """解析API响应体,提取所需字段(包含链接)"""    # 解析JSON响应    parsed = json.loads(body)        # 构建内容字典    content = {        "q": parsed["searchParameters"]["q"],        "total": parsed["total"],        "webpages": []    }        # 处理每个网页    for item in parsed["webpages"]:        page = {            "title": item["title"],            "link": item["link"],  # 添加链接字段            "snippet": item["snippet"],            "position": item["position"],            "date": item["date"],            "authors": item.get("authors", [])  # 安全处理缺失的字段        }        content["webpages"].append(page)        # 将输出变量名改为 input_data    return {"input_data": content}

这里由于返回接口返回的信息有点差异,所以返回的代码也有一点差异,总体来说结构是一样的。详细代码大家可以看后面开源的DSL文件,这里就不做详细展开了。

json转MD

这里我们同样使用代码处理来把返回JSON数据转成MD格式的数据

输入参数input_data 输入值object

返回参数markdown 返回值string

json转MD代码如下:

import logging# 配置日志logging.basicConfig(level=logging.INFO)logger = logging.getLogger(__name__)def main(input_data):    # 1. 验证输入数据是否存在    if not input_data:        logger.error("输入数据为空!")        input_data = {"q": "默认搜索词", "documents": []}  # 提供默认数据        # 2. 提取必要字段(带默认值)    query = input_data.get("q", "")    documents = input_data.get("documents", [])        # 3. 处理逻辑(示例:生成 Markdown 结果)    markdown_output = f"## 搜索结果\n- **关键词**: {query}\n\n"    for doc in documents:        title = doc.get("title", "无标题")        link = doc.get("link", "#")        markdown_output += f"- [{title}]({link})\n"        return {"markdown": markdown_output}# 调用入口(Dify 自动传入 input_data)if 'input_data' in locals():    result = main(input_data)else:    result = {"error": "输入数据未定义"}

直接返回

最后工作流将转换后的MD文档输出,这个就比较简单的。输入参数result 返回是MD格式的string字符串

通过以上方式我们就完成了工作流的制作。

3.验证及测试

我们打开工作流运行,填写查询的条件(2025年8月9日最新科技新闻、 webpage、10、1、false 、false、true)

运行后的效果如下

这个搜索速度还是非常快的。

体验地址

工作流地址:dify.duckcloud.fun/workflow/kb…

4.感谢

这个dify工作流是小灰灰-技术交流群6 群友阿文提供制作的。这里再次感谢它的分享,工作流基本上是使用了它原始的DSL文件制作的。

5.总结

今天主要带大家制作了一个基于 Dify 的秘塔 AI 搜索功能工作流。此次实践不仅实现了从用户输入搜索参数、通过条件分支适配不同搜索类型,到调用秘塔 API 获取结果、解析处理并转换为 Markdown 格式输出的全流程自动化,还重点展示了 Dify 在集成第三方 API、处理条件分支逻辑以及通过代码节点进行数据解析与格式转换方面的灵活能力。

总的来说,通过此次实践,我们充分体验到了 Dify 在 AI 搜索类应用开发中的便捷性和高效性。它通过直观的节点配置简化了 API 调用流程,借助条件分支轻松适配多种搜索场景,利用代码处理节点实现了搜索结果的精准提取与格式转换,为快速搭建个性化的 AI 搜索工具提供了高效、灵活的解决方案。

感兴趣的小伙伴可以按照本文步骤去尝试制作自己的 AI 搜索工作流,并探索结合更多搜索参数与结果展示形式的可能性。今天的分享就到这里结束了,我们下一篇文章见。

关注「 wwzhouhui」公众号,点赞分享这篇文章,后台私信:“dsl” 领取 dsl 工作流文件。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

dify AI搜索 秘塔搜索 工作流 API集成
相关文章