轻松创建基于 GPT-4 的 AI 原生应用 - Dify

news/发布时间2024/5/9 20:23:15

Dify 是一个易用的 LLMOps 平台,旨在让更多人可以创建可持续运营的原生 AI 应用。Dify 提供多种类型应用的可视化编排,应用可开箱即用,也能以后端即服务的 API 提供服务。

LLMOps(Large Language Model Operations)是一个涵盖了大型语言模型(如 GPT 系列)开发、部署、维护和优化的一整套实践和流程。LLMOps 的目标是确保高效、可扩展和安全地使用这些强大的 AI 模型来构建和运行实际应用程序。它涉及到模型训练、部署、监控、更新、安全性和合规性等方面。

图片

通过 Dify 创建的应用包含了:

  • 开箱即用的的 Web 站点,支持表单模式和聊天对话模式
  • 一套 API 即可包含插件、上下文增强等能力,替你省下了后端代码的编写工作
  • 可视化的对应用进行数据分析,查阅日志或进行标注

Dify 兼容 Langchain,这意味着我们将逐步支持多种 LLMs ,目前支持的模型服务包括:

  • OpenAI:GPT4、GPT3.5-turbo、GPT3.5-turbo-16k、text-davinci-003
  • Azure OpenAI Service
  • Anthropic:Claude2、Claude-instant
  • Hugging Face Hub(即将推出)

简介

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

图片

如果你对诸如 GPT-4 之类的 LLM 技术高速发展感到惊奇和兴奋,迫不及待的想用它做点什么有用的东西!可你的头脑里又有一切令人困惑的问题:

  • 我该如何“训练”一个基于我的内容的模型?
  • 怎么让 AI 知道 2021 年以后的事情?
  • 如何避免让 AI 跟用户胡说八道?
  • 微调(Fine-tuning)和嵌入(Embedding)是什么意思?

那么,Dify 正好能满足你的需要。

Dify 的目标是让开发者(甚至非开发者)可以快速基于大型语言模型搭建出有用的东西,并确保它是可视化、可运营、可改进的。

你可以使用 Dify 快速搭建一个 Web App,其生成的前端代码可以托管在 Dify 上。如果你想基于这个 Web App 进一步开发,你可以从 GitHub 中得到这些 Template,部署到任何地方(例如 Vercel 或你的服务器)。或者,你也可以基于 WebAPI 开发你自己的 Web 前端、移动 App…总之,为你省下了后端开发的工作。

不止于此,Dify 的核心理念是在一个可视化的界面中创建、配置、改进你的应用。基于 LLM 的应用开发有一个持续改进的生命周期,你可能需要基于自己的内容让 AI 给予正确的回答,或是想提升 AI 的准确性和叙述风格,甚至让它去 YouTube 上下载一个字幕作为上下文。

这当中将会有些逻辑设计、上下文增强、数据准备等需要花些功夫的事情,如果没有工具你可能会寸步难行,我们称这个过程为 LLMOps。

完全开源

自5月9日云版本正式上线以来,Dify.AI 受到了开发者的好评和分享。不到一周的时间,就创建了 4000 多个应用程序,甚至在我们开源之前,我们的 GitHub Star 数就已经超过 700 多个。这让我们深深感受到社区的力量!同时,我们对 Dify 能够为开发者带来如此强大的创造力感到无比荣幸和兴奋。

图片

从3月1日编写第一行代码到现在两个多月后完全开源,共有46,558行代码在 GitHub 上完全开源。(值得一提的是,大约 30% 的代码是由 GPT 生成的。)

核心能力

  1. 可视化提示词编排:通过可视化界面创建和调试提示词,并在几分钟内发布 AI 应用程序。

  2. 与长上下文(数据集)的集成:使用您自己的数据作为上下文自动完成文本预处理,无需理解模糊概念和技术处理。

  3. 基于 API 的开发:后端即服务。直接访问 Web 应用程序或将 API 集成到您的应用程序中,无需担心复杂的后端架构和部署流程。

  4. 数据标注和改进:通过可视化审查 AI 日志并改善数据标注,观察 AI 推理过程并持续提高性能。

图片

安装

在安装 Dify 之前,请确保您的机器满足以下最低系统要求:

  • CPU >= 1 Core
  • RAM >= 4GB

快速启动

启动 Dify 服务器的最简单方法是运行我们的 docker-compose.yml 文件。在运行安装命令之前,请确保您的机器上安装了 Docker 和 Docker Compose:

cd docker
docker compose up -d

运行后,可以在浏览器上访问 http://localhost/install 进入 Dify 控制台并开始初始化安装操作。

Helm Chart

非常感谢 @BorisPolonsky 为我们提供了一个 Helm Chart 版本,可以在 Kubernetes 上部署 Dify。

可以前往 https://github.com/BorisPolonsky/dify-helm 来获取部署信息。

配置

需要自定义配置,请参考我们的 docker-compose.yml 文件中的注释,并手动设置环境配置,修改完毕后,请再次执行 docker-compose up -d

使用

只需四步,您就可以创建适应各种场景的人工智能应用,例如个性化聊天机器人、人工智能客服、基于专业知识的文本生成等。

第一步:直接创建应用程序,可以从零开始或使用模板。

图片

第二步:可以用可视化的方式编写你的提示词,然后调试你的 AI 应用。

图片

第三步:将您的私有数据或 API 功能集成到 Al 应用程序中,以增强上下文。

图片

第四步:持续监控你的应用程序运行情况、标记数据,并改进您的人工智能。

图片

目前,Dify 已经完成了对 OpenAI GPT 系列的支持,正在集成 Azure OpenAI Service、Claude、Hugging Face HubHugging Face Hub 模型,即将支持插件功能,释放大语言模型的无限潜力。

图片

此外我们还将与优秀的开源模型如 Llama 合作,通过在我们的平台中提供它们作为模型选项,或使用它们进行进一步的微调。

常见问题

Q: 我能用 Dify 做什么?

A: Dify 是一个简单且能力丰富的 LLM 开发和运营工具。你可以用它搭建商用级应用,个人助理。如果你想自己开发应用,Dify 也能为你省下接入 OpenAI 的后端工作,使用我们逐步提供的可视化运营能力,你可以持续的改进和训练你的 GPT 模型。

Q: 如何使用 Dify “训练”自己的模型?

A: 一个有价值的应用由 Prompt Engineering、上下文增强和 Fine-tune 三个环节组成。我们创造了一种 Prompt 结合编程语言的 Hybrid 编程方式(类似一个模版引擎),你可以轻松的完成长文本嵌入,或抓取用户输入的一个 Youtube 视频的字幕——这些都将作为上下文提交给 LLMs 进行计算。我们十分注重应用的可运营性,你的用户在使用 App 期间产生的数据,可进行分析、标记和持续训练。以上环节如果没有好的工具支持,可能会消耗你大量的时间。

Q: 如果要创建一个自己的应用,我需要准备什么?

A: 我们假定你已经有了 OpenAI API Key,如果没有请去注册一个。如果你已经有了一些内容可以作为训练上下文,就太好了。

Q: 提供哪些界面语言?

A: 现已支持英文与中文,你可以为我们贡献语言包。

Q: LLMOps 和 MLOps 有什么区别?

A: 过去的 MLOps 是让开发者从零开始训练模型,而 LLMOps 基于诸如 GPT-4 这样的强大模型之上开发 AI 原生应用。

GitHub 仓库:https://github.com/langgenius/dify

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/36410821.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

汽车制造业供应商管理会面临哪些问题?要如何解决?

汽车行业的供应链是及其复杂的,并且呈全球化分布,企业在知识产权方面的优势很可能是阶段性的。企业需要持续保持领先,将面临巨大的挑战,尽快地将产品推向市场是保持领先的唯一途径。然而,如果没有正确的方式去实现安全性、流程化和标准化,企业的优势则有可能不复存在,比…

递归组件实现子向父传值

业务逻辑:通过自己调用自己的方式生成树,再点击子菜单时,需要将点击子菜单的菜单名传值给父组件(使用总线 bus) 新建bus.js文件import { ref } from vueclass Bus {constructor() {// 收集订阅信息,调度中心this.eventList = {}, // 事件列表,这项是必须的// 下面的都是自…

[转帖]JUC内置线程池

https://cloud.tencent.com/developer/article/2235750 ThreadPoolExecutor ThreadPoolExecutor是最基础的线程池类:12345678public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueu…

模拟电路与存储电路EDA工具产品

模拟电路设计全流程EDA工具系统 华大九天模拟电路设计全流程EDA工具系统包括原理图编辑工具、版图编辑工具、电路仿真工具、物理验证工具、寄生参数提取工具和可靠性分析工具等,为用户提供了从电路到版图、从设计到验证的一站式完整解决方案。原理图和版图编辑工具Emp…

关于如何使用echarts实现市县区地图的可视化

找了很多资料,终于实现了 获取genjson的方式,很好用!!! AreaCity Geo格式转换工具 (gitee.io) 然后将数据格式贴在下面就可以了<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>石家庄市</ti…

LeetCode 1206. Design Skiplist

原题链接在这里:https://leetcode.com/problems/design-skiplist/description/ 题目: Design a Skiplist without using any built-in libraries. A skiplist is a data structure that takes O(log(n)) time to add, erase and search. Comparing with treap and red-black …