Dify体验

GonFreecss

共 2877字,需浏览 6分钟

 ·

2024-04-11 16:53

    前文 ollama:极简本地化部署LLM 有提到本地化部署Ollama + Open-webui,但是作为RAG和Agent的能力还是很弱。这次看看结合Dify能有什么样的碰撞。Dify是一个易用的 LLMOps 平台,旨在让更多人可以创建可持续运营的原生 AI 应用。这是一个很好的概念。他和FastGPT极其相似,且开源项目基本上都在去年3月22左右,FastGPT界面上比他简洁,但是基本上该有的都有。但FastGPT多了个可视化拖拉拽的 高级编排 作为亮点,类似ComfyUI的感觉。f5af75d3ed20cc3f23354d16e5fb5400.webp      但是Dify的生态更大,工具使用更全面。说实话,我都不知道谁抄谁的了,但总之基于Dify开源框架做MVP产品拿到投资的小公司都有几十个。Dify.AI是什么公司就不做详细介绍,反正一搜Dify,一堆零代码2分钟构建AI专属知识库的字样就出来了。在这个AI时代,快速把框架平台搭建好,才有承载AI能力的机会。

Studio工作室体验

  • https://cloud.dify.ai/apps 闲话不说看效果,界面啥的都很舒服d824e6e84e1660267beb87544603cfa8.webp我点开一个投资分析报告助手,可以看到一个行家写的标准提示词464a6a810bfbe7d5f1975aba3061d97d.webp下面可以添加变量、挂载知识库、工具注册使用、聊天开场白并给定选项做增强。在最下面点击添加功能,还有下一步建议、TTS、STT、内容溯源、安全审查、数据回流标注与快捷运营1dafb36cfb6f1e2911844744e19c1e25.webp提示词那里有个自动编排,给任务相关的关键词,生成一个完整的提示语c954b3c69093182518a79a56e8db41c0.webp右边可以快速调试和预览4a043d3bfa7710a18fe2292e3ec6c069.webpok没问题后,在右上角选择发布,既可以在概览看到快速访问链接c0230668453525b975f52956b81a0769.webp32df066e2a55009d60339901d1652500.webp

知识库体验

知识库有两种挂载方式,一个是自建,一个是API接入。重点看看本地上传自建过程,我用了LeCun的新作I-JEPA做文档问答。导入文档也支持绑定notion。能支持的文件格式也是很丰富的。420ed722fd49338e91e7c5b99b74285b.webp分段设置可以自动,也可以自定义6c14e82f90db05525b81ccd19b48cafb.webp索引方式支持基于embedding化的三种检索模式(但这里没有直接提供embedding模型选择,而是强制选择默认模型)f8c844199f86ae109eeec310b4d4270f.webp也支持传统的倒排索引cea48750d260008fd8043cdd094c96b9.webp文档切片后,能看到所有切片信息以及技术参数fb006bf05b59cf83d879c73f9063efee.webp点开某一个分片,可以看到关键词、字符数,还可以选择是否禁用该片段4b3b360c0b46612463b9c1d94ee12711.webp然后测试召回592ea4f72d466ab18888b9716a82d81b.webp最后再在设置选项里面选择可见权限和embedding模型修改5f8f21d71d93f6240d7fe4438b4d8de0.webp然后回到Studio工作室构建一个基础助手,f57d62480ab60344e223e13a73bf0f79.webp并挂载刚才的知识库就可以自由问答了e304974bccbb7b70d93e415fe1843a13.webp876f5c571da77fe93d9f8af635096056.webp当然上面结果是用了gpt-3.5,效果可能稍微好一点。

工具

内置了很多工具066b89d685d3519c6e949e9883cb6680.webp也支持自定义58358fa91f66819d12b287478205398d.webp

私有化部署

好东西都想“据为己有”。Dify也有私有化部署教程,看这里,ctrl-c/v就行。

  1. 通过 docker-compose 安装 3 个业务服务(红色框),以及 4 个基础组件(绿色框)c80fd6564895512d3622a4a333a0d93f.webp
      
      git clone https://github.com/langgenius/dify.git

cd dify/docker

docker compose -f docker-compose.middleware.yaml up -d

docker compose up -d

其中,基础组件包括三个数据数据库组件 —— PostgresSQL / Redis / Weaviate,和一个nginx组件;业务组件包括worker(用于消费异步队列任务,如数据集文件导入、更新数据集文档等异步操作)、api(接口服务)以及web(前端客户端页面服务组件)。

  1. API服务启动
      
      cd dify/api

# 复制环境变量配置文件
cp .env.example .env

# 生成随机密钥,并替换 .env 中 SECRET_KEY 的值
openssl rand -base64 42

# (*)linux执行如下
sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env
# (*)win执行如下
(Get-Content .env) -replace 'SECRET_KEY=.*''SECRET_KEY=<your_value>' | Set-Content .env

# 安装依赖包
pip install -r requirements.txt

# 执行数据库迁移,将数据库结构迁移至最新版本。
flask db upgrade

# 启动 API 服务
flask run --host 0.0.0.0 --port=5001 --debug
  1. 前端组件启动
      
      docker run -itd -p 30010:3000 -e EDITION=SELF_HOSTED -e CONSOLE_URL=http://127.0.0.1:5001 -e APP_URL=http://127.0.0.1:5001 langgenius/dify-web:latest

搞掂!a305398e2d77733aa90087388f8e87af.webp那现在尝试和本地的Ollama部署的Gemma:2b串起来。点击设置,找到模型供应商0c0b886897f3a0e74f773c05e78b9c61.webp添加模型40a997062cadc08398b05ee4360084d3.webp填好必要信息5e21bd4abc2ca2f6b4542147d1c55489.webp,除了Ollama,也适配了国内外知名的厂商。b88babf41cc79f94d19a444f2fc38ed0.webp除此之外,也支持多模型调试。

ee742cf094a27aab9da2949b8e41f13a.webp(CPU跑,有点扛不住60s的压力,经常等不到4b的回复)

即将上线

从产品路线和用户反馈来看,大家都想快速看到支持workflows模式,在In-Progress的top1,期待满满!d4deab1841a89530e56d1a11b23173ed.webp

问题点

  1. 私有化部署的时候,SELF_HOSTED模式只能支持单用户/单租户,无法支持多用户注册。如果密码忘了,只能按照下面来重置
      
      docker exec -it docker-api-1 flask reset-password
  1. CLOUD模式,能支持多团队/多租户模式,但是无法使用邮箱和密码方式登录,仅支持 GitHub、Google 授权登录。


浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报