当前位置: 首页 > news >正文

动手学Dify:自定义工具与沙盒

工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:第一方工具自定义工具

可以直接使用 Dify 生态提供的第一方内置工具,或者轻松导入自定义的 API 工具(目前支持 OpenAPI / Swagger 和 OpenAI Plugin 规范)。

https://docs.dify.ai/zh-hans/guides/tools/readme

https://docs.dify.ai/zh-hans/plugins/introduction

工具的作用
  1. 工具使用户可以在 Dify 上创建更强大的 AI 应用,如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。

  2. 方便将你的应用与其他系统或服务连接,与外部环境交互,如代码执行、对专属信息源的访问等。工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:第一方工具自定义工具

配置第一方工具

若你需要直接使用 Dify 生态提供的第一方内置工具,你需要在使用前配置相应的凭据。

凭据校验成功后工具会显示“已授权”状态。配置凭据后,工作区中的所有成员都可以在编排应用程序时使用此工具。

工具

工具描述

谷歌搜索

用于执行 Google SERP 搜索并提取片段和网页的工具。输入应该是一个搜索查询

维基百科

用于执行维基百科搜索并提取片段和网页的工具。

DALL-E 绘画

用于通过自然语言输入生成高质量图片

网页抓取

用于爬取网页数据的工具

WolframAlpha

一个强大的计算知识引擎,能根据问题直接给出标准化答案,同时具有强大的数学计算功能

图表生成

用于生成可视化图表的工具,你可以通过它来生成柱状图、折线图、饼图等各类图表

当前时间

用于查询当前时间的工具

雅虎财经

获取并整理出最新的新闻、股票报价等一切你想要的财经信息。

Stable Diffusion

一个可以在本地部署的图片生成的工具,你可以使用 stable-diffusion-webui 来部署它

Vectorizer

一个将 PNG 和 JPG 图像快速轻松地转换为 SVG 矢量图的工具。

YouTube

一个用于获取油管频道视频统计数据的工具

如何创建自定义工具

可以在“工具-自定义工具”内导入自定义的 API 工具,目前支持 OpenAPI / Swagger 和 ChatGPT Plugin 规范。

可以将 OpenAPI schema 内容直接粘贴或从 URL 内导入。关于 OpenAPI / Swagger 规范你可以查看官方文档说明。

第三方模型与工具(插件)

插件是 Dify 平台的扩展模块,让你可以轻松地接入第三方模型与工具,显著提升应用能力。通过插件系统,你的 AI 应用能够更好地”看”、“听”、“说”、“画”、“计算”、“推理”,并连接外部 API,执行真实世界的操作。

新的插件系统突破了原有框架的限制,提供更丰富和强大的扩展能力。提供五种类型插件,每一种类型对应成熟的场景解决方案,赋予开发者用无限的创意改造 Dify 应用的空间。 同时,插件系统也为用户提供了便捷的功能扩展方式:

  • 即插即用:通过 Dify Marketplace 或本地文件安装,无需编程知识即可使用强大的功能扩展。

  • 丰富生态:访问由开发者社区贡献的各类插件,涵盖模型接入、工具集成、智能策略等多个方面。

  • 灵活分享:可以通过 Dify Marketplace、GitHub 或本地文件的形式获取和分享插件。

插件支持的类型

  • Models(模型)各类 AI 模型的接入插件,让你能够轻松使用不同的 AI 模型,无需复杂的配置过程。

  • Tools(工具)能够被 Chatflow / Workflow / Agent 类型应用所调用的第三方服务,用于增强 Dify 应用的能力。

  • Agent 策略为 Agent 节点提供不同的推理和决策逻辑,优化工具选择和结果处理。

  • Extensions(扩展)通过简单的 HTTP 服务调用即可使用的轻量级扩展功能。

  • Bundle(插件包)预先组合好的插件集合,可以一次性安装多个相关插件,简化配置流程。

Dify沙盒

DifySandbox 是一个轻量、快速、安全的代码运行环境,支持多种编程语言,包括 PythonNodejs 等,用户在 Dify Workflow 中使用到的如 Code 节点、Template Transform 节点、LLM 节点的 Jinja2 语法、Tool 节点的 Code Interpreter 等都基于 DifySandbox 运行,它确保了 Dify 可以运行用户代码的前提下整个系统的安全性。

https://docs.dify.ai/zh-hans/development/backend/sandbox/README

  • 多语言支持:DifySandbox 基于 Seccomp,这是一个系统层级的解决方案,从而确保了可以支持多种编程语言,目前支持了 Python 与 Nodejs

  • 系统安全:使用白名单策略,只允许运行特定的系统调用,从而确保不会出现意外的绕过。

  • 文件系统隔离:用户代码将运行在一个独立的隔离的文件系统中。

  • 网络隔离:

    • DockerCompose:独立网络 Sandbox 网络,并使用代理容器进行网络访问,确保内网系统的安全,同时提供了灵活的代理配置方案。

    • K8s:直接使用 Egress 配置网络隔离策略即可。

DifySandbox 已预先配置了以下 Python 依赖:

  • http - 基础网络请求库

  • jinja2 - 模板引擎,用于 LLM 提示词处理

  • requests - HTTP 客户端库

若需要额外的 Python 依赖,请遵循以下步骤

  1. 找到项目根目录下的 dependencies/python-requirements.txt 文件。

  2. 在文件中添加所需的依赖包名及版本。若涉及权限变更,请参考**常见问题。

  3. 重新构建 DifySandbox。

http://www.lryc.cn/news/579119.html

相关文章:

  • 澳鹏重磅发布MediGo医疗大模型数据开发平台 破解医疗AI数据瓶颈
  • 【docker部署】在服务器上使用docker
  • 【深度学习-Day 34】CNN实战:从零构建CIFAR-10图像分类器(PyTorch)
  • CISSP知识点汇总-安全与风险管理
  • 智能学号抽取系统 V3.7.5 —— 一个基于 Vue.js 的交互式网页应用
  • 小架构step系列02:搭建工程
  • 智能检测原理和架构
  • STM32WB55VGY6TR 蓝牙OTA升级
  • ZED相机与Foxglove集成:加速机器人视觉调试效率的实用方案
  • 观测云 × AWS SSO:权限治理可观测实践
  • 计算机组成笔记:缓存替换算法
  • [202106][凤凰架构][构建可靠的大型分布式系统][周志明][著]
  • 车载软件架构 -- SOA服务分层设计原则
  • MacOS 安装brew 国内源【超简洁步骤】
  • 线程同步【Linux操作系统】
  • Kafka 运维与调优篇:构建高可用生产环境的实战指南
  • Java学习第六部分——API部分(续)
  • 腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
  • 智慧城市的安全密码:商用密码如何守护万物互联?
  • 运用逆元优化组合计算#数论
  • Django服务开发镜像构建
  • C++主流编辑器特点比较
  • Java 并发编程的 CAS(Compare and Swap)是什么?
  • 讲解“/etc/ssh/sshd_config “的“HostKey /etc/ssh/ssh_host_ed25519_key“ 笔记250702
  • pdf删除一页 python实现(已验证)
  • 模板编译原理
  • 使用OpenCV识别图片相似度评分的应用
  • YOLOv11剪枝与量化(一)模型压缩的必要性
  • 深入理解C++11原子操作:从内存模型到无锁编程
  • SpringCloud系列(47)--SpringCloud Bus实现动态刷新定点通知