AI创想
标题:
dify调用--mcp工具
[打印本页]
作者:
gnxhxbozd
时间:
2 小时前
标题:
dify调用--mcp工具
作者:CSDN博客
Mcp工具--agent策略函数区别
Function Calling
通过将用户指令映射到预定义函数或工具,LLM 先识别用户意图,再决定调用哪个函数并提取所需参数。它的核心是调用外部函数或工具,属于一种明确的工具调用机制。
优点:
精确:
对于明确的任务,可以直接调用相应的工具,无需复杂的推理过程。
易于集成外部功能:
可以将各种外部 API 或工具封装成函数供模型调用。
结构化输出:
模型输出的是结构化的函数调用信息,方便下游节点处理。
ReAct (Reason + Act)
ReAct 策略使 Agent 交替进行思考和行动:LLM 首先思考当前状态和目标,然后选择并调用合适的工具,
工具的输出结果又将引导 LLM 进行下一步的思考和行动,如此循环,直到问题解决
。
python构建虚拟环境--uv安装(适配mcp)
uv工具安装
pip install uv
#使用创建文件夹
uv init dify_mcp_tool
# 进入项目目录
cd dify_mcp_tool
# 创建虚拟环境(3.8-3.10)--python.exe不指向conda
uv venv dify_mcp_env --python 3.9
# 激活环境
dify_mcp_env\Scripts\activate.bat
初始化 pyproject.toml文件--uv add安装报错没有的话
uv init
# 查看 uv 可管理的 Python 版本
uv python list
# 安装依赖--镜像,python3.10对应
uv add "mcp[cli]" httpx --index-url https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
python代码
from fastmcp import FastMCP
from datetime import datetime
# 初始化 MCP 实例
mcp = FastMCP(name="查询服务器信息MCP")
# -------------------------- 核心 MCP 工具函数 --------------------------
@mcp.tool(
description="知识库更新。"
"从 Oracle 数据库查询设备和变电站信息,导出为 CSV 保存到本地,并自动上传到 Dify 知识库。"
"默认查询 T1211_DEVICE、T0015_VOLTAGELEVEL、T0003_STATION、T0016_BASEVOLTAGE 关联表,"
"包含设备ID、设备描述、设备类型、电压等级、变电站编号、变电站描述、基准电压等字段。"
"支持自定义查询SQL(需包含上述核心字段以确保知识库数据完整性)。"
)
async def get_system_time():
#xxxxxx
#示例
'''
@mcp.tool(
name="get_system_time",
description="获取当前系统的时间和日期"
)
async def get_system_time():
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(current_time)
return {
"status": "success",
"data": {"system_time": current_time},
"message": "当前系统时间获取成功"
}'''
mcp.run(transport="sse", host="0.0.0.0", port=8123)
复制代码
dify配置--agent策略
(, 下载次数: 0)
上传
点击文件名下载附件
调用结果
(, 下载次数: 0)
上传
点击文件名下载附件
输出
(, 下载次数: 0)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
原文地址:https://blog.csdn.net/moriatygirl/article/details/155094209
欢迎光临 AI创想 (http://llms-ai.com/)
Powered by Discuz! X3.4