Dify体验
共 2877字,需浏览 6分钟
·
2024-04-11 16:53
前文 ollama:极简本地化部署LLM 有提到本地化部署Ollama + Open-webui,但是作为RAG和Agent的能力还是很弱。这次看看结合Dify能有什么样的碰撞。Dify是一个易用的 LLMOps 平台,旨在让更多人可以创建可持续运营的原生 AI 应用。这是一个很好的概念。他和FastGPT极其相似,且开源项目基本上都在去年3月22左右,FastGPT界面上比他简洁,但是基本上该有的都有。但FastGPT多了个可视化拖拉拽的 高级编排 作为亮点,类似ComfyUI的感觉。 但是Dify的生态更大,工具使用更全面。说实话,我都不知道谁抄谁的了,但总之基于Dify开源框架做MVP产品拿到投资的小公司都有几十个。Dify.AI是什么公司就不做详细介绍,反正一搜Dify,一堆零代码、2分钟构建AI专属知识库的字样就出来了。在这个AI时代,快速把框架平台搭建好,才有承载AI能力的机会。
Studio工作室体验
- https://cloud.dify.ai/apps 闲话不说看效果,界面啥的都很舒服我点开一个投资分析报告助手,可以看到一个行家写的标准提示词下面可以添加变量、挂载知识库、工具注册使用、聊天开场白并给定选项做增强。在最下面点击添加功能,还有下一步建议、TTS、STT、内容溯源、安全审查、数据回流标注与快捷运营。提示词那里有个自动编排,给任务相关的关键词,生成一个完整的提示语右边可以快速调试和预览ok没问题后,在右上角选择发布,既可以在概览看到快速访问链接
知识库体验
知识库有两种挂载方式,一个是自建,一个是API接入。重点看看本地上传自建过程,我用了LeCun的新作I-JEPA做文档问答。导入文档也支持绑定notion。能支持的文件格式也是很丰富的。分段设置可以自动,也可以自定义索引方式支持基于embedding化的三种检索模式(但这里没有直接提供embedding模型选择,而是强制选择默认模型)也支持传统的倒排索引文档切片后,能看到所有切片信息以及技术参数点开某一个分片,可以看到关键词、字符数,还可以选择是否禁用该片段然后测试召回最后再在设置选项里面选择可见权限和embedding模型修改然后回到Studio工作室构建一个基础助手,并挂载刚才的知识库就可以自由问答了当然上面结果是用了gpt-3.5,效果可能稍微好一点。
工具
内置了很多工具也支持自定义
私有化部署
好东西都想“据为己有”。Dify也有私有化部署教程,看这里,ctrl-c/v就行。
- 通过 docker-compose 安装 3 个业务服务(红色框),以及 4 个基础组件(绿色框)
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(前端客户端页面服务组件)。
- 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
- 前端组件启动
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
搞掂!那现在尝试和本地的Ollama部署的Gemma:2b串起来。点击设置,找到模型供应商添加模型填好必要信息,除了Ollama,也适配了国内外知名的厂商。除此之外,也支持多模型调试。
(CPU跑,有点扛不住60s的压力,经常等不到4b的回复)
即将上线
从产品路线和用户反馈来看,大家都想快速看到支持workflows模式,在In-Progress的top1,期待满满!
问题点
- 私有化部署的时候,SELF_HOSTED模式只能支持单用户/单租户,无法支持多用户注册。如果密码忘了,只能按照下面来重置
docker exec -it docker-api-1 flask reset-password
- CLOUD模式,能支持多团队/多租户模式,但是无法使用邮箱和密码方式登录,仅支持 GitHub、Google 授权登录。