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

大模型笔记03--快速体验dify

大模型笔记03--快速体验dify

  • 介绍
  • 部署&测试
    • 部署 dify
    • 测试dify
      • 对接本地ollama大模型
      • 对接阿里云千问大模型
      • 在个人网站中嵌入dify智能客服
  • 注意事项
  • 说明

介绍

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
dify平台用户体验好,配置简单,且内置了大量应用模板和工具,通过dify我们可以快速对接各种大模型,创建自己的知识库,按需选择工具构建形式多样的应用。除此之外,还能快速对接到第三方应用,将ai的能力赋能给其它场景和行业。
本文基于docker compose快速部署dify平台,对接ollama和阿里云千问大模型,并将生成的智能聊天机器人嵌入到业务网站中。

部署&测试

部署 dify

dify 官方提供了多种部署方式,我们直接用 docker compose的方式快速拉起服务

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env # 如果机器上有端口冲突,按需更改这个.env中的端口即可
docker compose up -d

部署成功后我们可以看到三个服务(api / worker / web) 和六个组件(weaviate / db / redis / nginx / ssrf_proxy / sandbox) 都正常运行,如下图:
在这里插入图片描述

初始界面,需要按需配置账号信息:
本地通过 http://localhost/install 配置,服务器直接通过 http://your_server_ip/install 配置即可.
在这里插入图片描述

登录界面主界面
在这里插入图片描述在这里插入图片描述

对比fastgpt,dify 已经内置了很多常见应用模板和通用工具:

通用模板常用工具
在这里插入图片描述在这里插入图片描述

测试dify

对接本地ollama大模型

需要在本地或者服务器上安装ollama,部署方式可以参考 大模型笔记01–基于ollama和open-webui快速部署chatgpt,并拉起相关模型,笔者已经提前下载好 qwen2:7b 和 nomic-embed-text:v1.5 两个模型。

对接ollama添加qwen2:7b模型
在这里插入图片描述在这里插入图片描述

添加成功后可以发现 Ollama下有2个可用模型,如下图
在这里插入图片描述
模型准备就绪后可以参考官方步骤按需创建应用了
创建应用:
通过 工作室->创建空白应用 来创建一个聊天助手
在这里插入图片描述
对聊天助手限制提示词、配置可用的模型,也可以按需加上下午、知识库等功能,配置完成后点发布即可
在这里插入图片描述
发布成功后就可以开始聊天之旅了:
在这里插入图片描述

对接阿里云千问大模型

dify可以通过多种方式对接本地大模型,也可以直接对接云厂商的大模型,例如 openai,阿里云,aws,azure 等厂商的大模型。
此处以阿里云的通义千问为例,我们需要在 阿里云百炼 -> apiKey -> 创建key, 然后在dify中设置该key即可
百炼创建key
在这里插入图片描述
dify 上配置通义千问的key
在这里插入图片描述
配置好后,我们基于模板创建一个旅游规划助手
在这里插入图片描述
创建后我们将默认的gpt-4更换为qwen-max模型,然后发布即可
在这里插入图片描述
注意: 这个agent应用了3个工具,大模型会理解我们的内容,然后调用api获取目标数据
在这里插入图片描述
进入应用初始界面, 输入基础信息,然后可以按需通过聊天获取目标旅游规划了
在这里插入图片描述
如下图, 当用户提出 "您好,我想去北京玩一周,帮我制定一份详细的攻略,需要推荐入住的酒店和知名景点,并给出交通路线"的需求后,机器人先搜索维基百科、然后搜索google,拿到目标数据后总结出5天的行程安排和攻略。
答案中包括酒店、景点和出行方式,比较符合预期。
在这里插入图片描述

在个人网站中嵌入dify智能客服

在 tooplate 模板网站下载一个 Gotto Job 的案例网站。
在聊天助手中选择发布->嵌入网站->选择嵌入网站的方式,选择后将脚本代码添加到html网页中,然后刷新网页即可在网页中使用dify提供的智能聊天助手了。

在这里插入图片描述
将脚本添加到代码中
在这里插入图片描述
打开网站主页,把上述代码粘贴到html中,重新刷新网页就多出了一个聊天的按钮,点击后即可正常聊天了,如下图我们已经把智能聊天助手对接到个人网站了。

在这里插入图片描述
在这里插入图片描述
至此,我们已经能把智能聊天机器人挂到自己的网站了。

注意事项

  1. dify工包含了很多工具,通过这种方式我们可以在自己的ai机器人具备很多种能力,实际使用的时候按需填写各个产品的key即可。
  2. dify可以对接很多种本地大模型,但良好的体验需要强大的机器资源来支持,因此如果没有足够的机器资源,推荐使用ai大模型厂商的服务即可(毕竟当前token已经相对比较便宜了).
  3. dify能快速将智能应用嵌入到网站中,从而快速实现网站智能客户。对于网站客服类机器人,我们可以对接各类表格,将用户的需求数据拆机出来存到各种表格中,方便内部人员基于收集的数据回访或者开展相关业务。

说明

  1. 系统
    ubuntu 24.04 Desktop
    dify 0.8.2
    ollama 0.3.9
  2. 参考文档
    dify 官方文档
    如何在几分钟内创建一个带有业务数据的官网 AI 智能客服
    从零开始之Dify部署篇
    主流ai知识库工具FastGPT、Dify、Coze横评

相关文章:

大模型笔记03--快速体验dify

大模型笔记03--快速体验dify 介绍部署&测试部署 dify测试dify对接本地ollama大模型对接阿里云千问大模型在个人网站中嵌入dify智能客服 注意事项说明 介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)…...

Linux常用命令以及操作技巧

🌏个人博客主页:意疏-CSDN博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 关注 收藏支持一下笔者吧~ 阅读指南: 开篇说明帮助命令常见的七个linux操作终端实用的技巧跟文件目录…...

C语言 | Leetcode C语言题解之题409题最长回文串

题目&#xff1a; 题解&#xff1a; int longestPalindrome(char * s) {int c[128]{0},ret0;for(int i0;i<strlen(s);i){c[s[i]];}for(int i0;i<128;i){retc[i]-c[i]%2;}return ret(ret!strlen(s)); }...

FreeSql 全面指南:从基础到高级实战,深入解析读写分离与导航属性

FreeSql 使用详解&#xff1a;从入门到高级 FreeSql 是一个开源的、轻量级的 ORM 框架&#xff0c;它为 .NET 开发人员提供了丰富的功能&#xff0c;包括 CRUD 操作、读写分离、多租户、导航属性支持等。相比于 Entity Framework Core&#xff0c;FreeSql 在性能和特性上有一些…...

深度学习之微积分预备知识点

极限&#xff08;Limit&#xff09; 定义&#xff1a;表示某一点处函数趋近于某一特定值的过程&#xff0c;一般记为 极限是一种变化状态的描述&#xff0c;核心思想是无限靠近而永远不能到达 公式&#xff1a; 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…...

动态内存

动态内存分配函数&#xff1a;在程序运行时为变量或数据结构开辟的内存空间的函数。 有三个重要的动态分配函数&#xff1a;malloc、calloc、realloc。 动态内存分配函数 malloc 这个函数是向内存中申请一块连续的空间&#xff0c;返回一个指向这个块空间的指针。 如果开辟成…...

C/C++实现植物大战僵尸(PVZ)(打地鼠版)

&#x1f680;欢迎互三&#x1f449;&#xff1a;程序猿方梓燚 &#x1f48e;&#x1f48e; &#x1f680;关注博主&#xff0c;后期持续更新系列文章 &#x1f680;如果有错误感谢请大家批评指出&#xff0c;及时修改 &#x1f680;感谢大家点赞&#x1f44d;收藏⭐评论✍ 游戏…...

C++ 科目二 智能指针 [weak_ptr] (解决shared_ptr的循环引用问题)

shared_ptr引入的重复计数问题&#xff0c;导致内存泄漏 using namespace std; class CFather; class CSon;class CFather { public:CFather(){}void Set(shared_ptr<CSon> pson){Pson pson;}shared_ptr<CSon> Pson; };class CSon { public:CSon(){}void Set(sha…...

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一&#xff1a;只监听死信队列&#xff0c;在死信队列里面处理业务逻辑方法二&#xff1a;改为自动确认模式 问题发现 最近再学习RabbitMQ过程中&#xff0c;看到关于死信队列内容&#xff1a; 来自队列的消息可…...

【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】005 - Kernel 入口 C 函数 start_kernel() 源码分析

【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】005 - Kernel 入口 C 函数 start_kernel 源码分析 系列文章汇总:《鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分】000 - 文章链接汇总》 本文链接:《【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】005 - Kernel 入口 C 函数 start_ke…...

EndnoteX9安装及使用教程

EndnoteX9安装及使用教程 一、EndNote安装 1.1 下载 这里提供一个下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1RlGJksQ67YDIhz4tBmph6Q 提取码&#xff1a;5210 解压完成后&#xff0c;如下所示&#xff1a; 1.2 安装 双击右键进行安装 安装比较简单…...

SQL:子查询

子查询是SQL中强大的功能之一&#xff0c;它允许在一个查询内部嵌套另一个查询&#xff0c;以便处理更复杂的逻辑或数据检索需求。子查询可以用在SELECT、FROM、WHERE、HAVING、IN、ANY、ALL等子句中&#xff0c;根据使用场景和目的的不同&#xff0c;子查询可以分为多种类型。…...

C语言刷题日记(附详解)(5)

一、选填部分 第一题: 下面代码在64位系统下的输出为( ) void print_array(int arr[]) {int n sizeof(arr) / sizeof(arr[0]);for (int i 0; i < n; i)printf("%d", arr[i]); } int main() {int arr[] { 1,2,3,4,5 };print_array(arr);return 0; } A . 1…...

开源加密软件简介

开源加密软件是指源代码公开、可供任何人查看、修改和分发的加密软件。这类软件通常由社区维护&#xff0c;具有高度的透明性和安全性。 1. GnuPG (GNU Privacy Guard) 简介&#xff1a;GnuPG是一种基于OpenPGP标准的加密和签名工具&#xff0c;广泛应用于电子邮件加密和文件…...

【C++学习】 IO 流揭秘:高效数据读写的最佳实践

✨ 今朝有酒今朝醉&#xff0c;明日愁来明日愁 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3f…...

C#使用TCP-S7协议读写西门子PLC(五)-测试程序

上面四篇我们进行封装连接PLC以及读写PLC内存地址表 C#使用TCP-S7协议读写西门子PLC(一)-CSDN博客 C#使用TCP-S7协议读写西门子PLC(二)-CSDN博客 C#使用TCP-S7协议读写西门子PLC(三)-CSDN博客 C#使用TCP-S7协议读写西门子PLC(四)-CSDN博客 这里我们进行测试操作 西门子PLC-…...

经验——IMX6UL的uboot无法ping主机或Ubuntu

主要描述可能的方向&#xff0c;不涉具体过程&#xff0c;详细操作可以查阅网上相关教程 跟随正点原子教程测试以太网端口时&#xff0c;即便按照步骤多次尝试也无法ping通&#xff0c;后补充了些许网络工程基础知识解决了这个问题。 uboot无法ping主机或Ubuntu有多种可能&…...

AUTOSAR-规范文档版本

https://www.autosar.org/standards 2024年11月&#xff08;R24-11&#xff09; Foundation&#xff08;FO) // TODO Classic&#xff08;CP&#xff09; // TODO Adaptive&#xff08;AP&#xff09; // TODO 2023年11月&#xff08;R23-11&#xff09; Foundation&a…...

网络(四)——HTTP协议

文章目录 认识urlurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见Header 虽然应用层的协议是由人为规定的&#xff0c;但是已经有大佬们定义了一些现成的&#xff0c;又非常好用的应用层协议&#xff0c;供我们直接参考使用. HTTP(超文本传输协议)就是其中之一…...

comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决

&#x1f388;背景 comfyui今天在安装插件的过程中&#xff0c;发现有个插件第一次安装失败后&#xff0c;再次安装就开始报错了&#xff0c;提示&#xff1a; ComfyUI-Inpaint-CropAndStitch install failed: Bad Request 截图如下&#xff1a; 看下后台的报错&#xff1a; …...

免费开源字体 Source Sans 3 完整配置使用教程

免费开源字体 Source Sans 3 完整配置使用教程 【免费下载链接】source-sans Sans serif font family for user interface environments 项目地址: https://gitcode.com/gh_mirrors/so/source-sans Source Sans 3 是由 Adobe 开发的开源无衬线字体家族&#xff0c;专为现…...

新手零失败指南:在快马平台跟做交互式openclaw安装教程

最近在折腾一个叫openclaw的工具&#xff0c;作为新手被各种依赖和报错折磨得够呛。后来发现用InsCode(快马)平台可以把这个过程变成交互式教程&#xff0c;特别适合像我这样刚入门的小白。这里把踩坑经验整理成笔记&#xff0c;手把手带你零失败完成安装。 为什么选择交互式安…...

openclaw 配置教程:本地安装、网关接入与模型 API 配置完整说明

如果你在折腾 openclaw 配置&#xff0c;通常会发现真正影响使用体验的&#xff0c;不是把程序装上去&#xff0c;而是后面的模型来源怎么接、网关怎么起、控制面板怎么进&#xff0c;以及默认模型如何切换。只要这些环节没有理顺&#xff0c;就算安装完成&#xff0c;后续也很…...

1 (带目录)鸿蒙系统底层接口快速接入指南 | 鸿蒙开发筑基实战

鸿蒙系统底层接口快速接入指南 | 鸿蒙开发筑基实战 作者&#xff1a;杨建宾&#xff08;华夏之光永存&#xff09; 系列完整目录&#xff08;鸿蒙生态开发实战进阶全集・轻量进阶版&#xff09; 第一章&#xff1a;鸿蒙基础适配篇&#xff08;本文&#xff09; 1 鸿蒙系统底层接…...

Elsevier Tracker终极指南:3分钟搞定学术论文审稿状态追踪

Elsevier Tracker终极指南&#xff1a;3分钟搞定学术论文审稿状态追踪 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在为Elsevier期刊审稿进度而焦虑吗&#xff1f;每天刷新页面、等待邮件通知的日子终于可以结…...

Jedi-Vim 终极自定义指南:如何集成其他Python分析工具提升开发效率

Jedi-Vim 终极自定义指南&#xff1a;如何集成其他Python分析工具提升开发效率 【免费下载链接】jedi-vim Using the jedi autocompletion library for VIM. 项目地址: https://gitcode.com/gh_mirrors/je/jedi-vim Jedi-Vim 是一款强大的 Vim 插件&#xff0c;它通过集…...

别再手动算Offset了!Vector DaVinci里这样配置AUTOSAR OS Alarm,让任务调度更丝滑

Vector DaVinci实战&#xff1a;AUTOSAR OS Alarm智能配置与任务调度优化 在汽车电子系统开发中&#xff0c;任务调度就像交响乐团的指挥&#xff0c;需要精确协调各个执行单元的时间节奏。传统手动计算Alarm Offset的方式&#xff0c;不仅效率低下&#xff0c;还容易引入人为错…...

如何组合seo关键词

如何组合SEO关键词 在当今的数字营销环境中&#xff0c;如何组合SEO关键词成为了每一个网站运营者的首要任务。这不仅决定了网站的可见度&#xff0c;还直接影响到流量和最终的转化率。本文将详细探讨如何组合SEO关键词&#xff0c;以实现最佳的搜索引擎优化效果。 什么是SEO…...

Linux下用tar.gz压缩含软连接的目录,为什么比zip更靠谱?

Linux下处理含软连接目录&#xff1a;为什么tar.gz比zip更可靠&#xff1f; 在Linux系统管理中&#xff0c;文件打包和压缩是日常操作中不可或缺的一部分。当目录结构中含有软连接&#xff08;symbolic link&#xff09;时&#xff0c;选择合适的压缩格式就显得尤为重要。许多管…...

《QGIS快速入门与应用基础》256:SVG格式:适合矢量图二次编辑

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...