AI之Agent(Dify + SpringAi)

https://www.bilibili.com/video/BV1FH76zGEba


上一篇SpringAI入门搭建MCP,学习了一些AI相关的知识,今天在这些知识的基础之上,来做一个小小的应用:搭建一个套餐推荐的Agent。


一、Agent介绍


产品形态

先要知道最终的产品形态,才好进行下面的学习

  1. 用户输入需求
  2. Agent提取出相关的关键词
  3. 基于关键词去匹配知识库的分类
  4. 调用MCP获取分类,及其下属的子类
  5. 基于分类集合,调用套餐MCP,获取套餐数据
  6. 整理数据返回给用户

准备事项

搭建这个Agent所需要准备的事项

  1. 查询分类子集和套餐的MCP
  2. 知识库(全量的套餐分类数据)
  3. 一份提示词
  4. Dify平台

二、效果演示


在这里插入图片描述


注:提示词什么的都是简单生成的,效果还有很大的提升空间,这里只是做功能的演示


三、Agent搭建


3-1、MCP提供


参考 SpringAI入门搭建MCP,完成MCP的提供,本质就是提供两个查询接口

注:如果Dify不是本地搭建的,则还需要解决网络问题 免费简单好用的内网穿透工具(ngrok、natapp),微信回调地址配置


3-2、知识库


直接把数据库里面的分类列表全部平铺导出,然后再导入到Dify的知识库里面去


3-3、提示词


直接让AI帮我写了一份提示词(不是特别的好,勉强够用)

# 医疗套餐推荐Agent

## 角色定义
你是一个专业的医疗套餐推荐助手,能够根据用户的健康需求和描述,为其推荐最适合的医疗套餐。

## 工作流程
请严格按照以下步骤执行:

### 步骤1:关键词提取
- 仔细分析用户输入的内容
- 提取所有与医疗、健康、疾病、症状、检查项目相关的关键词
- 关键词应包括但不限于:疾病名称、症状描述、身体部位、检查类型、年龄段、性别等
- 将提取的关键词整理成列表格式

### 步骤2:知识库匹配
- 使用提取的关键词在知识库中进行匹配
- 找到与关键词最相关的医疗类别
- 确保匹配的类别准确对应用户的需求

### 步骤3:调用类别MCP查询 getAllCategoryIdsWithChildren
- 获取到主类别后,调用类别MCP工具
- 查询该类别下的所有子类别
- 收集完整的类别层级结构

### 步骤4:套餐查询
- 使用获取到的所有类别(主类别+子类别)
- 在套餐数据库中查询相关的医疗套餐
- 确保查询结果覆盖用户需求的所有相关方面

### 步骤5:数据格式化与返回
- 对查询到的套餐数据进行筛选和排序
- 只保留以下信息:
  - 套餐名称
  - 有效天数
- 按照推荐优先级排序(最相关的排在前面)
- 以清晰、简洁的格式返回给用户

## 输出格式
根据您的需求,为您推荐以下医疗套餐:

1. 【套餐名称】- 有效期:X天
2. 【套餐名称】- 有效期:X天
3. 【套餐名称】- 有效期:X天
...

## 注意事项
1. 确保每个步骤都完整执行,不要跳过任何环节
2. 关键词提取要全面,避免遗漏重要信息
3. 类别匹配要准确,确保推荐的套餐与用户需求高度相关
4. 最终输出只包含套餐名称和有效天数,不要包含其他信息
5. 如果没有找到相关套餐,请礼貌地告知用户并建议其提供更多信息
6. 保持专业、友好的语调

## 开始工作
现在请根据用户的输入开始执行上述工作流程。


3-4、Dify平台


Dify的安装自行研究

1、创建知识库

导入之前准备的好的Excel,为知识库命名和描述

在这里插入图片描述


2、配置MCP

在工具市场找到「发现和调用MCP工具」点击 「已授权」把下面的JSON格式地址复制进去,可以配置多个

在这里插入图片描述
在这里插入图片描述


3、创建Agent

按照下面的提示,把对应的内容补充上去就完成了

在这里插入图片描述

### 使用 DifyAI Agent 集成开发 #### 构建基础环境 为了使用 DifyAI Agent 组合进行开发,需先搭建好运行环境。确保已安装 Python 并设置虚拟环境。接着克隆官方 GitHub 仓库并按照说明完成本地部署[^1]。 ```bash git clone https://github.com/langgenius/dify.git cd dify pip install -r requirements.txt ``` #### 创建自定义 Agent 创建一个新的文件用于编写定制化的 AI Agent 脚本,在此脚本中定义特定的任务逻辑以及交互方式。通过继承框架提供的基类来扩展功能,从而满足具体应用场景的需求[^2]。 ```python from dify.agent import BaseAgent class CustomDingTalkBot(BaseAgent): def __init__(self, webhook_url): super().__init__() self.webhook_url = webhook_url def send_message(self, message_content): # 实现发送消息至钉钉机器人的方法 pass def process_command(self, command_string): # 解析命令字符串并调用相应处理函数 pass ``` #### 对接钉钉机器人 利用 WebHook URL 将上述自定义的 Agent 接入到实际使用的即时通讯平台——钉钉群里去。每当收到新消息时触发 `process_command` 方法解析指令内容,并依据预设规则作出回应或采取行动。 ```json { "msgtype": "text", "text": { "content": "@所有人 \n\n来自AI助手的通知..." } } ``` #### 测试与优化 启动应用程序之后可以在目标群聊内测试效果,观察是否能正常接收外部输入并给出预期的回答;同时注意收集反馈以便进一步调整参数配置提高性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值