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

慈云数据 2024-05-30 技术支持 86 0

一、目标

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

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

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

    二、路径

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

    2. 通过git下载dify源码;

    3. 通过docker-compose命令部署 dify;

    4. 通过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设置环境变量

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

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

        [Service]
        Environment="OLLAMA_HOST=0.0.0.0"
      3. 保存并退出。

      4. 重载systemd并重启Ollama:

        systemctl daemon-reload
        systemctl 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

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon