轻松创建基于 GPT-4 的 AI 原生应用 - Dify
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 生成的。)
核心能力
-
可视化提示词编排:通过可视化界面创建和调试提示词,并在几分钟内发布 AI 应用程序。
-
与长上下文(数据集)的集成:使用您自己的数据作为上下文自动完成文本预处理,无需理解模糊概念和技术处理。
-
基于 API 的开发:后端即服务。直接访问 Web 应用程序或将 API 集成到您的应用程序中,无需担心复杂的后端架构和部署流程。
-
数据标注和改进:通过可视化审查 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