dify案例分享-手把手教你用 Dify 搭建中药科普工作流,小白也能轻松上手!

技术
1.前言

中药信息的发展是一个跨越数千年的演进过程,它不仅反映了中医药学自身的理论体系构建,也体现了人类记录、传播和利用知识方式的变革。从原始社会的口耳相传,到甲骨金石的刻画,再到纸张印刷的普及,直至现代的数字化技术,每一种信息载体的革新都推动了中医药知识的积累与传播。

我这里也有一个中药信息发展时间

picture.image

picture.image

然而据广州调查显示,近90%小学生对中医药"一问三不知",仅知"针灸""凉茶"等概念,无法辨识决明子等常用药材。

北京中医药大学调查指出,青少年普遍缺乏中药基础知识。

为了提高中小学生对中药信息的了解和认识,今天就带大家制作一个关于中药信息识别和了解的工作流。那么工作流长什么样子呢?给大家看一下

picture.image

实现的效果如下:

picture.image

上图我们可以看出 工作流生成一个中药的图片(帮助中小学生感官的认识),图片的下方展示了这个中药 药性和药理信息。通过这样简单的图文并茂的展示帮助中小学生更好地认识中药。

那么这个工作流是如何制作的呢?下面我们手把手带大家制作这样的一个工作流。

如果大家懒的看文章,我们这里也提供的一个文章的播客,感兴趣小伙伴也可以先听一下这个播客。

2.工作流制作

这个工作流主要有哪些组成部分构成的呢?我们从上面的图中可以看出,这个工作流相对之前的工作流是比较简单的,非常适合小白的制作。大概分开始节点、agent、直接回复。就三个节点非常简单呵呵。不过这个工作流最核心的地方是agent调用的是一个MCP-Server.

而本次工作流的核心也就是这个MCP-Server.那么下面我们先重点先说一下这个MCP-Server是如何制作的。

关于MCP-Server 的制作,我之前也有几期文章介绍。《mcp-server案例分享-手搓一个MCP-server,手把手教你从本地开发到云部署全流程实战》和《mcp-server案例分享-用豆包大模型 1.6 手搓文生图视频 MCP-server》感兴趣小伙伴可以看之前的文章。

MCP-Server 代码

这个MCP-Server 代码提供2个工具方法。1个是输入指定药材的名称,返回当前药材的图片,1个是输入指定药材的名称,返回当前药材信息

核心的代码如下

zhongyao-mcp-server.py


 
 
 
 
   
import json  
import requests  
from typing importAny, List, Dict  
from mcp.server.fastmcp import FastMCP  
from openai import OpenAI  
#from zhipuai import ZhipuAI  
from volcenginesdkarkruntime import Ark  
import os  
  
# 初始化MCP服务器  
mcp = FastMCP("ZhongyiServer", port=8001)  
client = OpenAI(api\_key="阿里百炼平台APIkey", base\_url="https://dashscope.aliyuncs.com/compatible-mode/v1")  
  
# 初始化Ark客户端(建议将API Key存储在环境变量 ARK\_API\_KEY 中)  
clientArk = Ark(  
    base\_url="https://ark.cn-beijing.volces.com/api/v3",  
    api\_key=os.getenv("ARK\_API\_KEY", "火山引擎APIkey")  # 建议安全存储  
)  
@mcp.tool()  
asyncdefget\_yaocaiInfo(yaocai: str):  
    """  
    输入指定药材的名称,返回当前药材信息  
    :param yaocai: 药材名称  
    :return: json格式的药材信息  
    """  
    try:  
        # 构建提示词  
        prompt = f"""请以JSON格式返回关于"{yaocai}"的中药材信息,包含以下字段:  
        1. name: 药材名称  
        2. property: 药性(寒、热、温、凉)  
        3. taste: 药味(酸、苦、甘、辛、咸)  
        4. meridian: 归经  
        5. function: 功效主治  
        6. usage: 用法用量  
        请确保返回的是合法的JSON格式。  
        """  
          
        # 调用DeepSeek API  
        response = client.chat.completions.create(  
            model="qwen-plus-1220",  
            messages=[  
                {"role": "system", "content": "你是一个专业的中医药专家,请提供准确的中药材信息。"},  
                {"role": "user", "content": prompt}  
            ],  
            stream=False  
        )  
          
        # 获取回复并确保是JSON格式  
        result = response.choices[0].message.content  
        # 尝试解析JSON,如果失败则返回原始文本  
        try:  
            return json.loads(result)  
        except json.JSONDecodeError:  
            return {"error": "无法解析为JSON格式", "raw\_content": result}  
              
    except Exception as e:  
        return {"error": f"获取药材信息出错:{str(e)}"}  
  
# 添加一个工具,获取药材的图片  
@mcp.tool()  
asyncdefget\_yaocai\_image(yaocai: str):  
    """  
    输入指定药材的名称,返回当前药材的图片  
    :param yaocai: 药材名称  
    :return: 药材的图片URL  
    """  
    try:  
        # 构建提示词  
        prompt = f"高清晰度的{yaocai}中药材实物图片,清晰展示其外观特征,包括颜色、形状和质地,白色背景,专业医药参考图"  
          
        # 调用火山方舟 Doubao Seedream 图像生成API  
        imagesResponse = clientArk.images.generate(  
            model="doubao-seedream-3-0-t2i-250415",  
            prompt=prompt  
        )  
          
        # 返回生成的图片URL  
        return {  
            "success": True,  
            "image\_url": imagesResponse.data[0].url,  
            "yaocai": yaocai  
        }  
              
    except Exception as e:  
        return {  
            "success": False,  
            "error": f"获取药材图片出错:{str(e)}",  
            "yaocai": yaocai  
        }  
  
if \_\_name\_\_ == "\_\_main\_\_":  
    mcp.settings.host  = "0.0.0.0"  
    mcp.settings.port = 8003  
    mcp.run(transport="sse")  

上面我们2个工具一个是用了阿里白炼平台提供的文本模型,1个是火山引擎提供的文生图模型。聪明的小伙伴也可以在上面的代码修改成其他厂商的模型API服务。MCP-Server 这里我们对外提供SSE方式调用。studio方式也给大家介绍过,这里就不做详细展开了。

MCP-Server 发布

编写好代码后我们就可以把这个MCP-Server发布到服务器中。

云服务器安装

我有一台基于Ubuntu的云服务器,下面介绍一下在上面部署MCP-Server。

登录云服务器

picture.image

UV 安装


 
 
 
 
   
 curl -LsSf https://astral.sh/uv/install.sh | sh

服务器上执行下面命令实现UV安装

安装完成后,我们使用 uv -V 检查确保安装完成

picture.image

接下来我们把代码复制到mcp-server-demo文件夹

picture.image

启动服务

接下来我们启动 SSE 服务,输入下面命令行启动服务


 
 
 
 
   
nohup  python3 zhongyao-mcp-server.py > zhongyao-mcp-server.txt&

启动完成后我们在浏览器输入如下地址确保地址可以访问

http://14.103.204.132:8003/sse

picture.image

Cherry Studio测试

接下来我们使用Cherry Studio工具来测试验证一下这个mcp-server 能否使用

picture.image

按照以上步骤配置好mcp-server ,我们点击工具也可以列出能使用的2个工具

picture.image

接下来我们在聊天对话中验证测试一下,模型这里我们使用魔搭社区提供的qwen3-235B-A22B模型

我的问题


 
 
 
 
   
请告诉我何首乌的是什么样子的,另外请详细描述一下何首乌药性

picture.image

picture.image

OK 没有问题一次性给我搞定图片+文字内容描述(药理信息)

dify工作流制作

我们回到dify工作台这里,首选创建一个chatflow 工作流

picture.image

开始

这个开始节点我这里什么都没有设置,就是默认的。这里我们只做了开场白的设置。

picture.image

picture.image

Agent

AI Agent 这里我们使用了一个MCP Agent 策略 ,我们需要在插件市场找到并安装

picture.image

关于安装这里就不做详细展开了。

另外我们还用到一个MCP-SSE工具。也在插件市场上搜索SSE

picture.image

我们需要把使用时配置的MCP工具安装上。

Agent 策略:MCP FunctionCalling

模型: 模型这里我们选择火山引擎的deepseek-r1模型

工具列表:模型使用到MCP工具(列出MCP工具、调用MCP工具)

MCP 服务器地址:http://14.103.204.132:8003/sse

指令: 请根据用户输入

调用get_yaocai_image生成对应的图片,并调用get_yaocaiInfo信息返回该中药详细信息

picture.image

直接回复

这个直接回复也比较简单,也就是ai Agent返回的信息都返回。

picture.image

picture.image

以上我们完成了这个工作流的制作了。

3.验证及测试

我们制作好的工作流可以在工作流平台上验证测试一下,点击左上角“预览”按钮。

picture.image

这里我们方便用户选择,列出5个系统内置的中药名称,可以点击上面的其中任何1个。

picture.image

picture.image

我们可以图文并茂的方式显示了这个中药的图片和药理信息了。

体验地址

工作流地址:https://dify.duckcloud.fun/chat/BStRPYuHXdlEnKD6备用地址(http://14.103.204.132/chat/BStRPYuHXdlEnKD6)

4.感谢

这个MCP-Server 我是参考社区网友-醒醒的飞书文档信息制作的。这里再次感谢它的分享,我基于它的 MCP-Server结合dify制作了这个工作流。

5.总结

今天主要带大家了解并实现了使用 Dify 搭建中药信息识别和了解工作流的方案。此工作流旨在提高中小学生对中药信息的了解和认识,通过图文并茂的方式,帮助他们更直观地认识中药。该方案不仅解决了中药信息展示的问题,通过图片和详细的药理信息,让中小学生能更好地认识中药,还提供了一种可复用的工作流搭建思路。经过在工作流平台上的验证和测试,我们可以看到该工作流能够正常运行,以图文并茂的方式显示中药的图片和药理信息,为中小学生提供了良好的学习体验。

感兴趣的小伙伴可以按照本文步骤去尝试搭建自己的中药信息识别和了解工作流。今天的分享就到这里结束了,我们下一篇文章见。

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

mcp-server案例分享-5 分钟搭建 AI 智能体!用 MCP Server 一键生成上市公司财报 HTML

mcp-server案例分享-用豆包大模型 1.6 手搓文生图视频 MCP-server发布到PyPI官网

dify案例分享-手把手教你用Dify实现文生视频自动化,集成支付功能超详细实战!

mcp-server案例分享-用豆包大模型 1.6 手搓文生图视频 MCP-server

dify案例分享-独家揭秘:N8N+Dify 打造新闻定时推送流

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
边缘计算在视频直播场景的应用与实践
视频直播作为当前视频行业的核心场景之一,对于高清化、实时性、交互性要求较高,需要强大算力保障用户流畅观看与互动体验。本次分享主要从视频直播场景需求切入,介绍基于边缘计算的视频直播场景方案及其架构、应用与实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论