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

大模型应用编排工具Dify二开之工具和模型页面改造

1.前言

简要介绍下 dify:

​ 一款可以对接市面上主流大模型的任务编排工具,可以通过拖拽形式进行编排形成解决某些业务场景的大模型应用。

背景信息:

​ 环境:dify-0.8.3、docker-21

​ 最近笔者在做 dify的私有化部署和二次开发相关工作,本文总结界面改造的一些内容。

2.去除工具里面的内置第三方工具

dify工具里面内置了很多第三方工具,在私有化部署的场景下要求去除所有的内置第三方工具。

2.1原始页面

内置第三方工具,如下:
在这里插入图片描述

2.2改造后页面

仅通过修改后端代码,无需前端介入,效果如下:
在这里插入图片描述

2.3改造流程

通过阅读与调试dify源码,发现内置工具设计巧妙,满足优秀软件具备的高内聚、低耦合特点。工具通过 yaml文件进行定义,方便扩展和缩减内置工具。比如,选取其中一个 yaml文件如下:

identity:author: Difyname: yahoolabel:en_US: YahooFinancezh_Hans: 雅虎财经pt_BR: YahooFinancedescription:en_US: Finance, and Yahoo! get the latest news, stock quotes, and interactive chart with Yahoo!zh_Hans: 雅虎财经,获取并整理出最新的新闻、股票报价等一切你想要的财经信息。pt_BR: Finance, and Yahoo! get the latest news, stock quotes, and interactive chart with Yahoo!icon: icon.pngtags:- business- finance

看懂了工程结构和代码设计,改造方法就比较简单了。所有的内置第三方工具都放在:api/core/tools/provider/builtin 这个路径下,每一个第三方工具都在一个独立目录中,如下

drwxr-xr-x. 1 root root  38 Oct 18 08:32 websearch
drwxr-xr-x. 1 root root  38 Oct 18 08:32 wecom
drwxr-xr-x. 1 root root  38 Oct 18 08:32 wikipedia
drwxr-xr-x. 1 root root  38 Oct 18 08:32 wolframalpha
drwxr-xr-x. 1 root root  38 Oct 18 08:32 yahoo
drwxr-xr-x. 1 root root  38 Oct 18 08:32 youtube
...

比如要删除雅虎这个工具,直接在源码里面把 yahoo这个目录删除即可。

3.去除模型供应商里面的多余模型

dify在 设置》模型供应商里面可以添加需要对接的大模型,比如 国内有 阿里的千问、谷歌的 Gemini等。

3.1原始页面

市面上主流大模型提供商,如下:
在这里插入图片描述

3.2改造后页面

可以按需进行删减,如下:
在这里插入图片描述

3.3改造流程

模型供应商和内置第三方工具类似,这里就直接讲怎么改了。

供应模型路径是:api/core/model_runtime/model_providers

同样,删模型对应的目录即可,这里要注意不能删除 openai 这个模型,否则模型供应商界面会无法用。

4.从源码编译并部署 Dify

下载 dify源码包,预先准备好 docker环境。

本次修改涉及的是 api模块,使用下面的命令进行编译打包:

docker build -t langgenius/dify-api:0.8.3-20241107 ./api

然后修改配置文件中 api的版本号为改造后的版本 0.8.3-20241107,再使用 docker compose up -d命令启动 dify即可。

5.总结

dify源码架构设计极优,容易阅读、理解和修改,甚至部分界面可以由后端 yaml进行配置。


http://www.mrgr.cn/news/67886.html

相关文章:

  • SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
  • ip定位是什么,如何改变IP定位到其它城市
  • mysql数据库(三)表的完整性约束、表与表的关系
  • 国标GB28181视频平台EasyGBS国标GB28181公网直播的功能及实现过程
  • CocosCreator 构建透明背景应用(最新版!!!)
  • 5分钟利用SD+剪映制作爆款的山水画艺术体视频,快速涨粉(含完整的操作步骤)
  • 数据分析:宏基因组DESeq2差异分析筛选差异物种
  • Echarts实现柱状图和折线图等多种图形联动
  • [C语言]strstr函数的使用和模拟实现
  • Spark的yarn集群环境搭建
  • 用户信息管理系统烟草种植用户基于SpringBootSSM框架
  • 【ShuQiHere】️ ️ LC-3 指令集架构 (ISA) 全面解析
  • Mysql、Dm8达梦数据库通过脚本导出指定库所有表的结构详情信息到
  • 提交linux kernel patch流程
  • 第08章 排序ORDER BY
  • 大模型微调技术 --> LoRA 系列之 AdaLoRA
  • ABAP开发-内存管理
  • Flutter环境配置
  • 论文阅读《Structure-from-Motion Revisited》
  • Unet++改进3:添加NAMAttention注意力机制
  • 故障排查 之 单点登录跳转失败(Ingress 相关)
  • Linux系列-进程的状态
  • 【网易云插件】听首歌放松放松
  • 在数据抓取的时候,短效IP比长效IP有哪些优势?
  • 药品进销存表格制作 佳易王药店药品入库出库台账库存管理系统操作教程
  • 18-分页与遍历 - From, Size, Search_after Scroll API