Dify.ai:一站式平台,助力开发和运营基于GPT-4的AI应用,AWS附环境部署教程

Dify.ai:一站式平台,助力开发和运营基于GPT-4的AI应用,AWS附环境部署教程

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

GITHUB:https://github.com/langgenius/dify

Dify.ai是一个易于使用的LLMOps(Large Language Model Operations)平台,它可以帮助您的团队基于诸如GPT-4等模型开发AI应用,并通过视觉操作来进行操作​。这个平台让你能够简单地创建并运营基于GPT-4的AI本地应用​。

技术架构

在dify.ai,您可以在几分钟内创建AI驱动的应用,无论是用于内部团队使用还是外部发布,您都可以快速地部署您的应用​。您可以使用您的数据作为AI的上下文,自动完成文本预处理、向量化和分割。你不再需要学习嵌入技术,这可以为你节省数周的开发时间​。

Dify.ai支持GPT-4和其他模型,为GPT系列和Claude模型提供原生支持,与LangChain支持的所有LLM兼容​。dify.ai还提供了与ChatGPT插件完全兼容的丰富工具功能,包括搜索、连接到数据库、避免使用敏感词,甚至访问所有API​。

此外,Dify.ai能够解锁大语言模型的全部潜力,提供了模型访问、上下文嵌入、成本控制和数据注释的顺畅体验。无论是用于内部团队使用还是产品开发,你都可以轻松创建AI应用​7​。

Dify.ai还提供了丰富的功能,以满足许多场景的需求,所有这些都可以通过图形用户界面操作完成。API设计基于后端作为一种服务的概念,您只需要访问一个API接口,也可以完成插件和长上下文的集成​。

Dify.ai鼓励持续改进和运营,允许AI应用在不是黑箱状态下运行,通过可视化检查日志和注释数据以改进它们,并观察AI的推理过程​​。

Dify.ai提供了两种类型的应用:对话和文本生成,这两种应用都已经在GitHub上开源。您可以基于这些应用创建自己想要的应用​​。


核心能力:

  • 可视化编排 Prompt:通过界面化编写 prompt 并调试,只需几分钟即可发布一个 AI 应用;
  • 接入长文本(数据集):全自动完成文本预处理,使用您的数据作为上下文,无需理解晦涩的概念和技术处理;
  • 基于 API 开发:后端即服务。您可以直接访问网页应用,也可以接入 API 集成到您的应用中,无需关注复杂的后端架构和部署过程。
  • 数据标注与改进:可视化查阅 AI 日志并对数据进行改进标注,观测 AI 的推理过程,不断提高其性能。

Dify.AI 的技术架构主要包括以下几个关键组成部分:

  1. 关键技术栈支持:Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG(Retrieval-Augmented Generation)引擎以及灵活的 Agent 框架。
  2. 可视化编排和运营:Dify 提供了可视化的 Prompt 编排、运营、数据集管理等功能,使得开发者能够在数天内完成 AI 应用的开发,或将 LLM 快速集成到现有应用中,并进行持续运营和改进。
  3. 技术栈:AI 的技术栈主要包括 Python 编程语言、TensorFlow 和 Keras 深度学习框架、以及 NLP 领域的常用库,如 NLTK 和 spaCy 等。这些技术栈的选择使得 Dify.AI 具有高度的灵活性和可扩展性。
  4. 开箱即用的应用模版和编排框架:Dify 为开发者提供了健全的应用模版和编排框架,使开发者可以基于它们快速构建大型语言模型驱动的生成式 AI 应用,并且可以随时按需无缝扩展,驱动业务增长。
  5. Dify Orchestration Studio:这是一个可视化编排生成式 AI 应用的专业工作站,提供了一个集成的环境,使开发者能够更加高效地构建和管理他们的 AI 应用。

通过这些技术架构的组成部分,Dify.AI 为开发者提供了一个全面、灵活且易于使用的平台,以支持生成式 AI 应用的快速开发和部署。

环境部署

目前 Dify 提供三种部署方式——Docker,本地,以及 K8s,用户可以结合自己的需求来进行选择,本文我们使用 Docker compose 的方式来进行部署。

环境准备

一台 EC2,本文采用 c7a.xlarge,参考文档创建 EC2

Bedrock 开启 Claude3 模型访问权限,参考文档

通过 SSH 连接 EC2 后,安装 Docker 环境

sudo yum install docker sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo systemctl start docker sudo systemctl enable docker docker-compose version >> Docker Compose version v2.26.1

下载 Dify 代码,通过 docker compose 拉起环境

git clone https://github.com/langgenius/dify.git cd dify/docker docker-compose up -d

待几分钟后,环境被拉起来,可以看到类似下面的输出

查看进程信息

sudo docker ps

如上面的信息后,则环境已经部署完毕,通过查看 http://{public IP}/ 地址后,通过初始的配置账户后,登录后可以看到以下 Dashboard 信息。

对话型应用

1.创建应用

2.配置 LLM Provider

3.选择 Amazon Bedrock 作为 LLM provider

4.配置 AKSK,这个步骤需要注意:在配置 Bedrock 的 Model Access 时需要开启对 titan-text-express-v1 模型的访问,因为在验证时会验证对 amazon.titan-text-express-v1 的访问权限。

5.检验一下模型权限

6.

配置应用 LLM,设置提示词如下

我想让你担任{{jobName}}面试官。我将成为候选人,您将向我询问{{jobName}}开发工程师职位的面试问题。我希望你只作为面试官回答。不要一次写出所有的问题。我希望你只对我进行采访。问我问题,等待我的回答。不要写解释。像面试官一样一个一个问我,等我回答。

同时配置开场白的功能,开场白如下

你好,{{name}}。我是你的面试官,Bob。你准备好了吗?

7.开始测试,我们设置面试职位和姓名之后,就可以开始对话了,同时可以比较不同模型的回复是否符合咱们的需求

如果结果不理想还可以调整相应模型参数

然后点击右上方 Publish 即完成配置。