Dify安装使用说明

dify功能简介

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。

相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。

这就为个人本地部署AI应用提供了便利。

dify安装部署

dify提供docker方式安装,不过不同于一般的项目只有一个docker容器,dify有多个容器需要部署切相互之间还有调用关系,因此这里用到了yaml文件。

首先打开dify的Github地址如下,看下dify基本功能介绍

dify Github 地址 langgenius/dify: An Open-Source Assistants API and GPTs alternative. Dify.AI is an LLM application development platform. It integrates the concepts of Backend as a Service and LLMOps, covering the core tech stack required for building generative AI-native applications, including a built-in RAG engine. (github.com)icon-default.png?t=N7T8https://github.com/langgenius/dify接下来要安装部署,就不要看readme写的了,对于小白来说,容易被误导(比如我就是。。),我们直接看dify官网详细的部署说,其实操作过一次,就基本清楚了

通过docker部署difyicon-default.png?t=N7T8https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/docker-compose基本过程:

1、通过git clone 下载dify代码

git clone https://github.com/langgenius/dify.git

2、切到dify下docker文件夹运行docker容器

cd dify/docker
docker compose up -d

这个时候docker compose会根据docker-compose.yaml文件的配置运行docker容器。

之前我天真以为运行docker都需要从dockerhub下载镜像然后运行,其实可以自己构建镜像然后运行,通过yaml文件实现更灵活更复杂的容器部署。

3、访问并初始化

docker容器列表中可以看到已经成功运行7个容器,但是只有nginx容易对外暴漏了端口,默认的80,点击即可打开dify系统。第一次需要先新建账号、密码,后续即可账号、密码登录开始使用dify。端口号也可以通过docker-compose.yaml自行修改,修改后再次执行docker compose up -d即可。

4、应用预览、API地址调整

如果修改了默认端口号,那么应用预览、API地址也需要响应做调整,相关配置也在yaml文件,不过在api容器下

SERVICE_API_URL: 'http://localhost:1080'

APP_WEB_URL: 'http://localhost:1080'

dify使用

模型设置

首先需要进行模型设置,应用要可以使用都是依赖于模型提供推理服务。dify支持的模型还算比较全,Openai、讯飞星火、智谱chatglm、零一万物、通义千问、文心一言、月之暗面,还支持Ollama、localai,还有一个选项是兼容Openai的模型,这样我就可以把本地部署的one-api也可以配置上。模型配置这块可以打个高分。

操作:

1、首页右上角,点击个人账户,下拉点击设置,即可打开设置页面

2、左侧点击模型供应商,配置需要的模型即可,目前智谱、通义千问、讯飞、零一都可以薅羊毛

3、这里一定要配置好系统模型,新建应用自动生成提示词、显示回答问题提示都用到了,配置就在当前页面的右上角“系统模型设置”

4、模型验证,首页随便新建一个应用,如果可以正常聊天有回复,说明模型配置成功

应用配置

AI应用核心就是提示词,大概操作:

1、首页,工作室,创建应用

2、弹出页面,选择应用类型,助手就是多轮对话聊天的,文本生成应用主要用于生成文章摘要翻译等

对于助手,还可以选择基础助手、智能助手,默认基础助手,智能助手的话可以自动调用各种工具

3、编排

1)主要就是提示词,可以由系统自动生成,也可以自己写,也可以专家模式(本质就是设置system prompt)

2)变量,可以设置变量。给我讲一个关于{{subject}}的笑话。实际用户输入印度,即可自动生成关于印度的笑话

注意,我个人发现,提示词自动生成,只能使用Openai的模型3.5也行,配置其他模型为系统模型进行自动生成就会各种报错

3)上下文

即引用知识库,这里就用到了RAG(增强检索生成),有些内容是私有知识,大模型不一定有,这个时候就可以先通过知识库查询,然后大模型整合之后,再输出给用户。

知识库,主要就是上传本地文档即可,一般用于QA问答、知识检索等

4)添加其他功能,如对话开场百、下一步对话建议、语音转文字、文字转语音、内容审查、标记回复,功能真心强大

4、WebApp部署

页面左侧,概览,第一块内容

在这里可以预览应用,在新的页面打开应用,可以直接进行对话

定制化,可以将应用部署到服务器

嵌入,可以将当前应用嵌入到其他页面

设置,可以设置WebApp名称、语言、版权等信息

5、API调用

页面左侧,概览,第二块内容

设置API密钥,参考API文档,即可以API方式进行对话功能

实现了API即应用

工具

类似插件,如网页搜索、天气查询等,也可以自定义,基本是对接webapi

整体评价

整体上dify在AI应用的构造上挺好的。

向上,在模型对接上,可以对接外部大模型,也可以对接本地大模型。

向内,在自定义应用上,可以可以结合RAG、插件(类Function call)、自动生成提示词等

向下,在应用发布上,可以预览、对外发布、内嵌,API访问。

功能还是挺全面的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/496934.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电源噪声的起因及危害

对造成电源不稳定的根源进行简单分析如下,主要在于两个方面:一是器件高速开关状态下,瞬态的交变电流过大;二是电流回路上存在的电感。从表现形式上来看又可以分为三类:同步开关噪声(SSN),有时被称为Δi噪声,地弹(Ground bounce)现象也可归于此类(图1-a);非理想电…

题目 2898: 二维数组回形遍历

题目描述: 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示: 代码: package lanqiao;import java.math.BigInteger; import java.util.*;public class Main {public static …

Python+Django+Yolov5路面墙体桥梁裂缝特征检测识别html网页前后端

程序示例精选 PythonDjangoYolov5路面墙体桥梁裂缝特征检测识别html网页前后端 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjangoYolov5路面墙体桥梁裂缝特征检测识别html网页前…

java注解的实现原理

首先我们常用的注解是通过元注解去编写的, 比如: 元注解有Target 用来限定目标注解所能标注的java结构,比如标注方法,标注类; Retention则用来标注当前注解的生命周期;比如source,class&…

PaddleOCR环境搭建、模型训练、推理、部署全流程(Ubuntu系统)

OCR场景应用集合:包含数码管、液晶屏、车牌、高精度SVTR模型、手写体识别等9个垂类模型,覆盖通用,制造、金融、交通行业的主要OCR垂类应用。 ​ 一、PaddleOCR环境搭建 ​ conda create -n ppocr python3.8​conda activate ppocr 进入paddle…

Unity之Mirror如何实现多人同步游戏一

前言 Mirror是一个出色的开源游戏网络库,可以用来制作局域网多人游戏,最初Mirror诞生于Unity早起的Unet,后来Unity把Unet给弃用了,但是Mirror在官方团队的努力下,一直不停地优化框架,并且承诺永远不收费,并持续优化。 Mirror最大特点是,服务器和客户端是一个项目,从…

成都正信晟锦:欠债的人不接电话找不到人怎么办

在借贷活动中,遇到欠债人不接电话、消失无踪的情况确实棘手。这不仅考验债权人的耐心,更是一场智慧与策略的较量。面对这种情形,我们应如何应对? 保持冷静,避免情绪化的行为,如频繁拨打电话或言语威胁,这可…

污水处理迈入3D可视化新时代:智慧环保触手可及

在科技日新月异的今天,环保事业也迎来了前所未有的发展机遇。污水处理作为环保领域的重要组成部分,其技术的革新与进步,对于保护水资源、维护生态平衡具有重要意义。 传统的污水处理机组往往存在着操作复杂、监控困难等问题,使得污…

java日志技术——Logback日志框架安装及概述

前言: 整理下学习笔记,打好基础,daydayup!!! 日志 什么是日志 程序中的日志,通常就是一个文件,里面记录的是程序运行过程中的各种信息,通过日志可以进行操作分析,bug定位等 记录日志的方案 程…

【每日一题】盛水容器

问题描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容…

Java:接口应用(Comparable接口与比较器)

目录 1.引例2.Comparable接口使用3.Comparable接口的局限性4.使用comparaTo实现排序5.比较器(Comparator接口) 1.引例 class Student{private String name;private int age;public Student(String name, int age) {this.name name;this.age age;} } p…

SQL Server事务复制操作出现的错误 进程无法在“xxx”上执行sp_replcmds

SQL Server事务复制操作出现的错误 进程无法在“xxx”上执行“sp_replcmds” 无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限

YOLOv9 实战指南:打造个性化视觉识别利器,从零开始训练你的专属测试集

论文地址:YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information GitHub:WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information (github.com)…

Redis数据结构的基础插入操作

数据结构与内部编码 Redis常见的数据结构 数据结构和内部编码 数据结构的插入操作 在Redis中,数据结构的插入操作取决于你要插入的数据类型。以下是一些常见的数据结构和它们的插入操作: 字符串 (String):使用 SET 命令来插入字符串。例…

MySQL 日志:undo log、redo log、binlog 有什么用?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 从这篇「执行一条 SQL 查询语句,期间发生了什么? (opens new window)」中,我们知道了一条查询语句经历的过程,这属于「读」一条记录的过程,如下…

Qt/QML编程之路:QPainter与OpenGL的共用(49)

在Qt编程中,有时会有这样一种场景:用OpenGL显示了一个3维立体图,但是想在右下角画一个2D的表格,里面写上几个字。那么这个时候就会出现QPainter与OpenGL共用或者说2D、3D共用。但是问题是调用了QPainter,drawline之后呢,OPenGL的状态被清空了丢失了,3D不显示了。 在Ope…

【概率论与数理统计】Chapter2 随机变量及其分布

随机变量与分布函数 随机变量 随机变量:一个随机变量是对随机现象可能的结果的一种数学抽象 分布函数 分布函数: X为随机变量, F ( x ) F(x) F(x)定义为: F ( x ) P ( X ≤ x ) F(x) P(X \leq x) F(x)P(X≤x) 定义域&#…

【智能算法改进】混沌映射策略--一网打尽

目录 1.引言2.混沌映射3.分布特征4.混沌映射函数调用5.改进智能算法 1.引言 基本种群初始化是在整个空间内随机分布,具有较高的随机性和分布不均匀性,会导致种群多样性缺乏,搜索效率低等问题。 许多学者利用混沌映射机制来增加种群的多样性&…

初识C++之命名空间(namespace)

初识C之入门 命名空间(namespace) 文章目录 初识C之入门 命名空间(namespace)1.为什么要有命名空间2. 命名空间 namespace使用方法3. 作用域限定符(::)和 命名空间(namespace)4. 命名空间的定义5. 命名空间的嵌套6. 命名空间的使用7. 总结 1.为什么要有命名空间 在C…

FLStudio多少钱FL Studio中文版软件序列号-激活码购买

fl studio是一款编曲软件,接触这款软件的大多都是做音乐的小伙伴吧,对于初学者想了解这款软件在意的应该就是它的价格。很多打算入手正版FL Studio的新手朋友都会纠结一个问题:哪个版本的FL Studio更适合我,到底应该入手哪一款FL …