Dify安装使用说明

news/2024/7/3 8:38:50 标签: dify, LLMOps, AI

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

整体评价

整体上difyAI应用的构造上挺好的。

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

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

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

功能还是挺全面的。


http://www.niftyadmin.cn/n/5456314.html

相关文章

Javascript作用域—Javascript基础篇

作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。 作用域可以分为以下几种类型: 全局作用域(Global Scope):全局作用域是整个…

O2OA(翱途)开发平台-快速入门开发一个门户实例

O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]拥有门户页面定制与集成的能力,平台通过门户定制,可以根据企业的文化,业务需要设计符合企业需要的统一信息门户,系统首页等UI界面。本篇主要介绍通过门户管理系统如何快速的进行一个…

Ubuntu20.04安装OpenCV并在vsCode中配置

1. 安装OpenCV 1.1 安装准备: 1.1.1 安装cmake sudo apt-get install cmake 1.1.2 依赖环境 sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-d…

Python爬虫之pyquery和parsel的使用

三、pyquery的使用 1、准备工作 pip3 install pyquery2、初始化 2.1、字符串初始化 把HTML的内容当做参数&#xff0c;来初始化PyQuery对象。 html <div><ul><li class"item-0">first item</li><li class"item-1">&l…

初入C++

C 编译时的查找&#xff1a; 先到函数局部域里查找到全局域找 局部域和全局域会改变生命周期。 命名空间域不会影响变量的生命周期。 默认情况下不会到命名空间域去找。(命名空间域内的变量的生命周期是全局的&#xff0c;及不会出命名空间就销毁) 在不同的作用域可以定义同…

护眼台灯哪个牌子最好?2024护眼台灯品牌排行榜分享

护眼台灯哪个牌子最好&#xff1f;在当今各大平台上&#xff0c;琳琅满目的护眼台灯选择令人眼花缭乱&#xff0c;特别是对于为孩子挑选台灯的家长们&#xff0c;面对如此众多的选项往往感到十分困扰。儿童和青少年的眼睛保护显然是一个至关重要的问题&#xff0c;不容忽视。身…

Vue列表渲染,深入解析,彻底弄懂

1、v-for 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; const items ref([{ message: Foo }, { message: Bar }]) <li…

ICP Hacker House 邀你共赴 IC 生态项目开发新风口

为了更好地探索区块链技术前沿&#xff0c;体验作为全面智能合约云平台的互联网计算机&#xff08;Internet Computer Protocol&#xff09;&#xff0c;将数据、内容、计算和用户体验全部托管于链上&#xff0c;IC 生态致力于推动去中心化互联网的深度发展&#xff0c;并将更安…