前言
在数字化时代,人工智能生成内容(AIGC)技术正以前所未有的速度改变着我们的世界。AIGC 不仅为内容创作者提供了强大的工具,还为企业带来了前所未有的商业机会。通过 AIGC,应用能够自动生成文本、图像、音频甚至视频,极大地提高了内容生产的效率和质量。更重要的是,AIGC 能够根据用户的个性化需求,实时生成符合其兴趣的内容,从而极大地提升了用户体验。
然而,想要充分利用 AIGC 的潜力,开发者往往面临着技术门槛高、模型集成复杂、运维管理困难等一系列挑战。正是在这样的背景下,Dify 应运而生。Dify 是一个开源的大语言模型(LLM)应用开发平台,它巧妙地整合了 Backend as Service 和 LLMOps 的理念,旨在为开发者铺设一条从创意到产品的快速通道。Dify 不仅内置了丰富的模型支持、直观的 Prompt 设计工具、强大的 Agent 框架及灵活的流程编排能力,还提供了用户友好的界面和 API,大大降低了技术障碍,使得即使是非技术背景的人员也能参与到 AI 应用的塑造之中。
尽管 Dify 极大简化了 AI 应用的开发流程,但在实际部署和运维阶段,如何高效管理这些应用所需的基础设施仍然是一个不容忽视的问题。特别是 AIGC 应用一般都会用到多种数据库,比如关系型数据库 PostgreSQL 存储应用元数据、内存数据库 Redis 存储对话历史记录、向量数据库如 Qdrant 做 RAG 召回等等,确保这些关键组件的稳定运行、数据的一致性与安全性,以及应对快速增长的业务需求,对任何团队而言都是不小的挑战。这时,KubeBlocks 便成为了我们的得力助手。KubeBlocks 是一个基于 Kubernetes 的数据基础设施管理平台,它提供了一套完整的解决方案,帮助我们实现数据基础设施的自动化管理和调度。无论是 OLTP、OLAP、NoSQL、消息队列、流引擎还是新兴的向量数据库和大语言模型,KubeBlocks 都能够轻松地进行管理,极大地提升了有状态工作负载的管理效率。KubeBlocks 支持多云环境,提供一键式部署、无缝扩展、自动故障恢复等功能,确保了生产级应用的高性能、高弹性和可观测性。
将 Dify 和 KubeBlocks 结合起来,Dify 负责应用的快速开发和迭代,而 KubeBlocks 则确保了应用的基础设施既稳定又易于管理。这种结合不仅提高了开发效率,还保证了应用的可靠性和扩展性。本文将演示如何基于 KubeBlocks + Dify 构建生产级别的 AIGC 应用。
要求
- Kubernetes 集群,版本>=1.21
- Kubernetes 集群安装有 Ingress Controller
操作说明
安装 KubeBlocks
首先安装最新版本的 kbcli,kbcli 是 KubeBlocks 提供的专门命令行工具,它能够以更直观、更简洁的方式管理 KubeBlocks 相关的资源。对于 KubeBlocks 用户来说,kbcli 提供了更直接、更高效的操作路径,使得即便是 Kubernetes 的新手也能快速上手 KubeBlocks。
curl -fsSL https://kubeblocks.io/installer/install_cli.sh
然后安装最新版本的 KubeBlocks。
kbcli kubeblocks install
KubeBlocks 安装完毕后,会默认启用一些常用的数据库,比如 mysql、postgresql、redis、mongodb 等。可以执行 kbcli addon list
查看具体启用了哪些数据库。
kbcli addon list
>
NAME VERSION PROVIDER STATUS AUTO-INSTALL
llm 0.9.0 community Disabled false
minio 12.8.12 community Disabled false
prometheus 15.16.1 community Disabled false
qdrant 0.9.0 community Disabled false
apecloud-mysql 0.9.0-beta.10 apecloud Enabled true
elasticsearch 0.9.0 community Enabled true
kafka 0.9.0 community Enabled true
mongodb