009-Wsl-Ubuntu部署Dify-【AI超车B计划】

AI超车计划@产品江湖 2024-06-19 15:01:08 阅读 54

一、目标

了解什么是dify,为什么要用dify;

下载dify源码,通过docker部署并运行;

开发一个本地AI智能助手;

二、路径

学习笔记中关于Ollama的简介,了解什么是Ollama,为什么使用Ollama;

通过git下载dify源码;

通过docker-compose命令部署 dify;

通过ollama部署的大模型服务,创建一个AI智能助手;

三、笔记

1、什么是dify?为什么用dify?

Dify 是一款开源的大语言模型(LLM) 应用开发平台,它融合了后端即服务和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。

Dify功能亮点和优势:

工作流: 在画布上构建和测试功能强大的 AI 工作流程,利用以下所有功能以及更多功能。

全面的模型支持: 与数百种专有/开源 LLMs 以及数十种推理提供商和自托管解决方案无缝集成,涵盖 GPT、Mistral、Llama3 以及任何与 OpenAI API 兼容的模型。完整的支持模型提供商列表可在此处找到。

Prompt IDE: 用于制作提示、比较模型性能以及向基于聊天的应用程序添加其他功能(如文本转语音)的直观界面。

RAG Pipeline: 广泛的 RAG 功能,涵盖从文档摄入到检索的所有内容,支持从 PDF、PPT 和其他常见文档格式中提取文本的开箱即用的支持。

Agent 智能体: 您可以基于 LLM 函数调用或 ReAct 定义 Agent,并为 Agent 添加预构建或自定义工具。Dify 为 AI Agent 提供了50多种内置工具,如谷歌搜索、DELL·E、Stable Diffusion 和 WolframAlpha 等。

LLMOps: 随时间监视和分析应用程序日志和性能。您可以根据生产数据和标注持续改进提示、数据集和模型。

后端即服务: 所有 Dify 的功能都带有相应的 API,因此您可以轻松地将 Dify 集成到自己的业务逻辑中。

2、dify和langchain的区别是什么?

LangChain 是基于python和nodejs的人工智能开发类库(Library),可以理解为包含锤子、钉子的工具箱。与之相比,Dify 提供了更接近生产需要的完整方案,Dify 好比是一套毛坯房,并且经过了精良的工程设计和软件测试。

3、下载dify源码

Dify官方网站:dify.ai/zh

Dify GitHub repo:

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

cd 进 dify目录,ls 列出所有文件:

再cd进docker文件夹,ls列出所有文件:

4、通过docker本地部署Dify

sudo docker compose up -d

部署过程:

5、安装Dify

访问地址或复制粘贴进浏览器: http://localhost/install

设置邮箱(邮箱不需要验证,所以可以随便写个邮箱)、用户名和密码,注意,一定要记着你写的邮箱和密码,否则后需再进就困难了,然后点击【设置】:

6、登录Dify

默认会带出来邮箱和密码,点击【登录】:

登录成功:

7、配置dify大模型服务

①点击右上角的个人中心,进入下拉菜单中的【设置】:

选择模型供应商—ollama,点击【添加模型】:

添加Ollama模型,详情:

②查看当前ollama模型列表

ollama list

③配置ollama模型参数

        a.将Name一栏的qwen:7b-chat,复制粘贴进上图弹框中的【模型名称】字段;

        b.基础URL字段,需要查看当前wsl的ip地址,需要我们通过Ubuntu的 ifconfig 命令进行查看:

        c.安装net-tools

④再次运行 ifconfig,图中的eth0就是本虚拟机的地址,inet就是内网地址,我们复制一下

④验证本地接口是否已经能通

curl http://172.27.155.29:11434

如上图所示,说明验证不通!

如果Ollama作为systemd服务运行,应该使用systemctl设置环境变量:

通过调用sudo vim /etc/systemd/system/ollama.service编辑systemd服务。这将打开一个编辑器。

对于每个环境变量,在[Service]部分下添加一行Environment

[Service]Environment="OLLAMA_HOST=0.0.0.0"

保存并退出。

重载systemd并重启Ollama:

systemctl daemon-reloadsystemctl restart ollama

⑤再次验证本地接口是否已经调通

上图显示,Ollama is running,说明已经调通!

⑥配置好本地模型Qwen-7b-chat

8、创建第一个智能助手

创建基础编排,聊天助手:

选择ollama,Qwen7b-chat大模型,点击发布:

简单对话测试:

9、局域网内其他设备访问

设置端口开放

重新打开一个PowerShell:

netsh interface portproxy add v4tov4 listenport=22 connectaddress= 172.27.155.29 connectport=8501 listenaddress=0.0.0.0 protocol=tcp

listenport 后面跟本机端口(你提供给局域网内其它设备访问的应用端口,如dify的80端口),connectaddress 后面跟WSL2的ip地址,connectport 后面跟WSL2里服务使用的端口。

查看所有开放的端口

netsh interface portproxy show all

删除开放的端口

netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。