推广 热搜: 百度  搜索引擎  企业  可以  选择  使用  上海  技术  货运  未来 

无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案[含ollama部署]

   日期:2024-12-25     作者:lh7hd    caijiyuan  
核心提示:Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精

Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精髓,为开发者铺设了一条从创意原型到高效生产的快车道。其设计旨在打破技术壁垒,让非技术背景的用户也能轻松参与至AI应用的构思与数据运营之中,共同塑造智能未来。

Dify内嵌了构建LLM应用的全方位技术基石,覆盖了从模型库的海量选择(支持数百种模型)到高效直观的prompt编排界面,再到卓越品质的检索增强生成(RAG)引擎与稳固可靠的Agent框架。这一集成的技术栈,不仅极大地简化了开发流程,还赋予了开发者前所未有的灵活性与创意空间。通过其灵活的流程编排功能及用户友好的界面与API接口,Dify帮助开发者有效规避了重复劳动,使他们能够将宝贵的时间和精力集中于创新思考与业务需求的深度挖掘上。

Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。

  • 核心功能列表:

    1. : 在画布上构建和测试功能强大的 AI 工作流程,利用以下所有功能以及更多功能。
    1. : 与数百种专有/开源 LLMs 以及数十种推理提供商和自托管解决方案无缝集成,涵盖 GPT、Mistral、Llama3 以及任何与 OpenAI API 兼容的模型。
    1. : 用于制作提示、比较模型性能以及向基于聊天的应用程序添加其他功能(如文本转语音)的直观界面。

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

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

    1. : 所有 Dify 的功能都带有相应的 API,因此您可以轻松地将 Dify 集成到自己的业务逻辑中。
  • 功能对比

  • 框架原理图
  • :Xinference(推荐),OpenLLM,LocalAI,ChatGLM,Ollama,NVIDIA TIS

  • :支持节点

    • LLM
    • 知识库检索
    • 问题分类
    • 条件分支
    • 代码执行
    • 模板转换
    • HTTP 请求
    • 工具
  • RAG特性:

    • 索引方式
      • 关键词
      • 文本向量
      • 由 LLM 辅助的问题-分段模式
    • 检索方式
      • 关键词
      • 文本相似度匹配
      • 混合检索
      • 多路召回
    • 召回优化技术
      • 使用 ReRank 模型
  • 向量数据库支持:Qdrant,Weaviate,Zilliz/Milvus,Pgvector,Pgvector-rs,Chroma,OpenSearch,TiDB,Tencent Vector,Oracle

Dify 为所有人提供了云服务,你无需自己部署即可使用 Dify 的完整功能。要使用 Dify 云服务,你需要有一个 GitHub 或 Google 账号。

  • 登录 Dify 云服务,创建一个或加入已有的 Workspace

  • 配置你的模型供应商,或使用我们提供的托管模型供应商

  • 可以创建应用了

  • RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐

  • 智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐

  • docker安装可参考下述文章:

    • 一文带你入门向量数据库milvus:含docker安装、milvus安装使用、attu 可视化,完整指南启动 Milvus 进行了向量相似度搜索 2.2节docker hub加速
    • t告别DockerHub 镜像下载难题:掌握高效下载策略,畅享无缝开发体验
    • 安装 Docker
    • 安装 Docker Compose
  • 克隆 Dify 代码仓库


  • 启动 Dify

如果您的系统安装了 Docker Compose V2 而不是 V1,请使用 docker compose 而不是 docker-compose。通过$ docker compose version检查这是否为情况。在这里阅读更多信息。

最后检查是否所有容器都正常运行:


包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。


  • 更新 Dify

进入 dify 源代码的 docker 目录,按顺序执行以下命令:


同步环境变量配置 (重要!)

  • 如果 .env.example 文件有更新,请务必同步修改您本地的 .env 文件。

  • 检查 .env 文件中的所有配置项,确保它们与您的实际运行环境相匹配。您可能需要将 .env.example 中的新变量添加到 .env 文件中,并更新已更改的任何值。

  • 访问 Dify

docker 部署运行完成后,输入指令sudo docker ps即可看到运行的容器,其中在运行的容器列表可以看到有个 nginx 的容器,且对外访问的是 80 端口,这个就是外部访问的端口,下面我们进行本地访问测试

在浏览器中输入 http://localhost 访问 Dify。访问 http://127.0.0.1:80 即可使用本地部署的 Dify。

10.80.2.195:80

随便填写,进入界面

  • 自定义配置

编辑 .env 文件中的环境变量值。然后,重新启动 Dify:


完整的环境变量集合可以在 docker/.env.example 中找到。

  • 前置条件

Clone Dify 代码:


在启用业务服务之前,需要先部署 PostgresSQL / Redis / Weaviate(如果本地没有的话),可以通过以下命令启动:


  • 服务端部署

    • API 接口服务
    • Worker 异步队列消费服务
  • 安装基础环境
    服务器启动需要 Python 3.10.x。推荐使用anaconda安装,参考文章:

    • Linux和Windows系统下:安装Anaconda
    • Anaconda安装超简洁教程
    • 也可以使用pyenv,,切换到 "3.10" Python 环境
  1. 进入 api 目录

  1. 复制环境变量配置文件.

  1. 生成随机密钥,并替换 .env 中 SECRET_KEY 的值

  1. 安装依赖包

Dify API 服务使用 Poetry 来管理依赖。您可以执行 poetry shell 来激活环境。


  1. 执行数据库迁移,将数据库结构迁移至最新版本。

  1. 启动 API 服务

正确输出:


  1. 启动 Worker 服务

用于消费异步队列任务,如数据集文件导入、更新数据集文档等异步操作。 Linux / MacOS 启动:


如果使用 Windows 系统启动,请替换为该命令:



  • 前端页面部署

  • 安装基础环境
    Web 前端服务启动需要用到 Node.js v18.x (LTS) 、NPM 版本 8.x.x 或 Yarn。

  • 安装 NodeJS + NPM
    进入 https://nodejs.org/en/download,选择对应操作系统的 v18.x 以上的安装包下载并安装,建议 stable 版本,已自带 NPM。

    1. 进入 web 目录,安装依赖包
    
    
    1. 配置环境变量。在当前目录下创建文件 .env.local,并复制.env.example中的内容。根据需求修改这些环境变量的值:
    
    
    1. 构建代码,启动 web 服务
    
    
    • 终端会输出如下信息:
    
    
  • 访问 Dify

在浏览器中输入 http://localhost 访问 Dify。访问 http://127.0.0.1:3000 即可使用本地部署的 Dify。

当单独开发后端时,可能只需要源码启动后端服务,而不需要本地构建前端代码并启动,因此可以直接通过拉取 docker 镜像并启动容器的方式来启动前端服务,以下为具体步骤:

  • 直接使用 DockerHub 镜像

  • 源码构建 Docker 镜像

    1. 构建前端镜像
    
    
    1. 启动前端镜像
    
    
    1. 当控制台域名和 Web APP 域名不一致时,可单独设置 CONSOLE_URL 和 APP_URL
      本地访问 http://127.0.0.1:3000

Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。,这是 Ollama 的官网地址:https://ollama.com/

  • 以下是其主要特点和功能概述:

    1. 简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。
    2. 轻量级与可扩展:作为轻量级框架,Ollama 保持了较小的资源占用,同时具备良好的可扩展性,允许用户根据需要调整配置以适应不同规模的项目和硬件条件。
    3. API支持:提供了一个简洁的 API,使得开发者能够轻松创建、运行和管理大型语言模型实例,降低了与模型交互的技术门槛。
    4. 预构建模型库:包含一系列预先训练好的大型语言模型,用户可以直接选用这些模型应用于自己的应用程序,无需从头训练或自行寻找模型源

curl: (77) error setting certificate verify locations:CAfile: /data/usr/local/anaconda/ssl/cacert.pemCApath: none
报错原因: cacert.pem 的寻址路径 CAfile 不对,也就是在该路径下找不到文件。

  • 解决方法:
  1. 找到你的 cacert.pem 文件所在位置 /path/to/cacert.pem。如果你没有该证书,可以先在 https://curl.se/ca/cacert.pem 下载,保存在某个目录中。
  2. 设置环境变量

  • 执行下载


ollama中文网:https://ollama.fan/getting-started/linux/

  1. 下载 ollama 二进制文件:Ollama 以自包含的二进制文件形式分发。将其下载到您的 PATH 中的目录:

  1. 将 Ollama 添加为启动服务(推荐):为 Ollama 创建一个用户:

3.在 /etc/systemd/system/ollama.service 中创建一个服务文件:


  1. 然后启动服务:

  1. 启动 Ollama¶
    使用 systemd 启动 Ollama:

  1. 更新,查看日志

  1. 步骤7:关闭 Ollama 服务


  1. 查看服务器CPU的型号

  1. 步骤2:根据CPU型号下载Ollama安装包,并保存到目录

下载地址: https://github.com/ollama/ollama/releases/




下载到离线服务器上:/usr/bin/ollama ollama就是你下载的ollama-linux-amd64 改名了(mv),其他步骤一致

Ollama模型默认存储在:

  • macOS: ~/.ollama/models
  • Linux: /usr/share/ollama/.ollama/models
  • Windows: C:Users<username>.ollamamodels

如果 Ollama 作为 systemd 服务运行,则应使用以下命令设置环境变量systemctl:

  1. 通过调用 来编辑 systemd 服务systemctl edit ollama.service。这将打开一个编辑器。

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

直接在“/etc/systemd/system/ollama.service”增了2行:


  1. 保存并退出。

  2. 重新加载systemd并重新启动 Ollama:


参考链接:https://github.com/ollama/ollama/blob/main/docs/faq.md

  1. 使用 systemd 启动 Ollama:

  1. 终止

终止(ollama加载的大模型将会停止占用显存,此时ollama属于失联状态,部署和运行操作失效,会报错:

Error: could not connect to ollama app, is it running?需要启动后,才可以进行部署和运行操作


  • 终止后启动(启动后,可以接着使用ollama 部署和运行大模型)


  • 下载模型


  • 运行大模型


  • 查看是否识别到大模型: , 如果成功, 则会看到大模型

  • 使用该命令查看当前已加载到内存中的模型。

  • nvidia-smi查看

  • 启动后,我们可验证是否可用:


Ollama 可以设置的环境变量

  • :这个变量定义了Ollama监听的网络接口。通过设置OLLAMA_HOST=0.0.0.0,我们可以让Ollama监听所有可用的网络接口,从而允许外部网络访问。

  • :这个变量指定了模型镜像的存储路径。通过设置OLLAMA_MODELS=F:OllamaCache,我们可以将模型镜像存储在E盘,避免C盘空间不足的问题。

  • :这个变量控制模型在内存中的存活时间。设置OLLAMA_KEEP_ALIVE=24h可以让模型在内存中保持24小时,提高访问速度。

  • :这个变量允许我们更改Ollama的默认端口。例如,设置OLLAMA_PORT=8080可以将服务端口从默认的11434更改为8080。

  • :这个变量决定了Ollama可以同时处理的用户请求数量。设置OLLAMA_NUM_PARALLEL=4可以让Ollama同时处理两个并发请求。

  • :这个变量限制了Ollama可以同时加载的模型数量。设置OLLAMA_MAX_LOADED_MODELS=4可以确保系统资源得到合理分配。

Environment="OLLAMA_PORT=9380" 没有用

  • 这样指定:

  • 指定 GPU
    本地有多张 GPU,如何用指定的 GPU 来运行 Ollama? 在Linux上创建如下配置文件,并配置环境变量 CUDA_VISIBLE_DEVICES 来指定运行 Ollama 的 GPU,再重启 Ollama 服务即可【测试序号从0还是1开始,应是从0开始】。



  1. 重启 ollama

  1. 重启 ollama 服务

ubuntu/debian


  • Ubuntu

  1. 确认服务端口状态:

  1. 配置服务

为使外网环境能够访问到服务,需要对 HOST 进行配置。

打开配置文件:


根据情况修改变量 Environment:

服务器环境下:


虚拟机环境下:



如果决定不再使用Ollama,可以通过以下步骤将其完全从系统中移除:

(1)停止并禁用服务:


(2)删除服务文件和Ollama二进制文件:


(3)清理Ollama用户和组:


通过以上步骤,不仅能够在Linux平台上成功安装和配置Ollama,还能够灵活地进行更新和卸载。

  • 确认服务端口状态:


  • 报错: "Error: could not connect to ollama app, is it running?"

参考链接:https://stackoverflow.com/questions/78437376/run-ollama-run-llama3-in-colab-raise-err-error-could-not-connect-to-ollama

/etc/systemd/system/ollama.service文件是:


  • 运行指令

在 设置 > 模型供应商 > Ollama 中填入:

  • 模型名称:llama3.1

  • 基础 URL:

    • 此处需填写可访问到的 Ollama 服务地址。
    • 若 Dify 为 docker 部署,建议填写局域网 IP 地址,如: 或 docker 宿主机 IP 地址,如:。
    • 若为本地源码部署,可填写 。
  • 模型类型:对话

  • 模型上下文长度:4096

    • 模型的最大上下文长度,若不清楚可填写默认值 4096。
  • 最大 token 上限:4096

    • 模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。
  • 是否支持 Vision:是

    • 当模型支持图片理解(多模态)勾选此项,如 llava。
  • 点击 "保存" 校验无误后即可在应用中使用该模型。

  • Embedding 模型接入方式与 LLM 类似,只需将模型类型改为 Text Embedding 即可。

  • 如果您使用Docker部署Dify和Ollama,您可能会遇到以下错误:

这个错误是因为 Docker 容器无法访问 Ollama 服务。localhost 通常指的是容器本身,而不是主机或其他容器。要解决此问题,您需要将 Ollama 服务暴露给网络。

参考单个模型部署一样,进行再一次配置添加即可

  • 需要注意的是添加完新的模型配置后,需要刷新dify网页,直接网页端刷新就好,新添加的模型就会加载进来
  • 可以看到调用后模型资源消耗情况
  • (Cpolar内网穿透)Linux系统Docker搭建Dify平台并实现远程构建生成式AI应用

  • 更多LLM平台参考:

    • RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐

    • 智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐

  • 官方网址:https://dify.ai/zh

  • github地址:https://github.com/langgenius/dify/tree/main

  • ollama中文网址:https://ollama.fan/

  • ollama安装教程:https://ollama.fan/getting-started/linux/

  • Ollama Linux部署与应用LLama 3

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

本文地址:http://ww.kub2b.com/tnews/1078.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号