Logo

Dify + OpenRouter + k8s:快速搭建准生产环境的LLM应用开发平台

作者

自 2022 年底 OpenAI 发布 GPT 3.5 以来,大模型市场风起云涌,已经是不可忽视的一种技术,而随着各大厂商的相互竞争,市面上大模型的价格越来越低,最近发布的 gpt-4o-mini 生成一本 2500 页的书籍,价格只需要 60 美分。在这种情况下,大模型的价格在可遇见的将来不会再成为大模型应用的瓶颈,而为了能够高效地开发和部署LLM应用,选择合适的平台和工具至关重要。本文将介绍如何利用Dify、OpenRouter和Kubernetes(k8s)快速搭建一个准生产环境的LLM应用开发平台,让你可以利用 Dify 快速构建出自定义的大模型智能体。

什么是 Dify?

Dify 是一款开源的大语言模型(LLM)应用开发平台,专为那些希望快速构建生产级生成式 AI 应用的开发者量身打造。它将后端即服务(Backend as Service)与 LLMOps 的理念完美结合,使得开发过程更加高效、流畅。

Dify 支持多种先进的大型语言模型,如 Claude3、OpenAI、Gemini,并与多个模型供应商紧密合作,为开发者提供灵活的选择,确保每个项目都能找到最适合的解决方案。平台还具备强大的数据集管理功能,不仅支持上传和管理文本及结构化数据,还通过直观的可视化工具简化 Prompt 编排和应用运营,让 AI 应用开发变得前所未有的简单。

Dify 技术架构

Dify.AI 的技术架构包含以下几个关键部分,为开发者提供了一站式的解决方案:

  1. 强大的技术栈支持:Dify 内置了构建 LLM 应用所需的顶尖技术栈,支持数百个模型,拥有直观的 Prompt 编排界面、高质量的 RAG(检索增强生成)引擎和灵活多变的 Agent 框架。

  2. 可视化编排与运营管理:Dify 提供了可视化的 Prompt 编排、运营、数据集管理等功能,使得开发者能够在短短几天内完成 AI 应用开发,快速集成到现有系统中,并不断优化和改进。

  3. 丰富的技术栈:AI 的核心技术栈包括 Python 编程语言、TensorFlow 和 Keras 深度学习框架,以及 NLP 领域常用库如 NLTK 和 spaCy 等。这些选择赋予了 Dify.AI 高度的灵活性和扩展性。

  4. 开箱即用的应用模板和编排框架:Dify 提供了完善的应用模板和编排框架,让开发者能够基于这些资源快速构建大型语言模型驱动的生成式 AI 应用,并可以按需无缝扩展,推动业务增长。

  5. Dify Orchestration Studio:这是一个专业级别的可视化编排工具,为生成式 AI 应用提供一体化工作环境,使开发者能够更加高效地构建和管理他们的 AI 项目。

通过这些强大的技术架构,Dify.AI 为开发者打造了一个全面、灵活且易于使用的平台,支持生成式 AI 应用从快速开发到稳定部署的一站式解决方案。

什么是 OpenRouter?

OpenRouter,顾名思义,是一个强大的大模型API路由器。它的设计初衷是将各种AI模型和服务无缝集成到一个统一的接口中。用户只需简单配置和调用,即可轻松访问多个预训练的大模型,无需自行部署和维护。这一创新理念大幅降低了AI技术的使用门槛,让更多人能够毫不费力地利用大模型来解决实际问题。

快速搭建准生产环境的LLM应用开发平台

环境准备

在开始之前,请确保你已经完成以下准备工作:

  1. 安装 Kubernetes:确保你的机器上已经安装并配置好了 Kubernetes 集群。如果没有,请参考Kubernetes 官方文档进行安装。

  2. 安装 kubectl:kubectl 是与 Kubernetes 集群交互的命令行工具。请参考kubectl 安装指南进行安装。

  3. Docker 镜像:确保你已经构建并推送了 Ollama 的 Docker 镜像到你的容器镜像仓库(如 Docker Hub)。

如果是简单尝试的话,也可以使用 microk8s - https://microk8s.io/ 或者 k3s - https://k3s.io/ 进行安装。

步骤一:部署Dify

  1. 使用 dify 开源的 k8s deployment 部署相关依赖。
kubectl apply -f https://raw.githubusercontent.com/Winson-030/dify-kubernetes/main/dify-deployment.yaml
  1. 在 k8s 中配置 ingress 暴露给外部 IP 访问。
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: dify-ingress
  namespace: dify
spec:
  rules:
    - host: dify.fflow.link
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: dify-nginx
                port:
                  number: 80
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: dify-nginx
                port:
                  number: 80
          - path: /console/api
            pathType: Prefix
            backend:
              service:
                name: dify-nginx
                port:
                  number: 80
          - path: /v1
            pathType: Prefix
            backend:
              service:
                name: dify-nginx
                port:
                  number: 80
          - path: /files
            pathType: Prefix
            backend:
              service:
                name: dify-nginx
                port:
                  number: 80
  1. 访问 dify.fflow.link(注意替换成实际的域名或者 IP) 验证安装。系统会提示需要输入一个初始密码,通过我们上面的 yaml 安装的 dify 初始密码是 password

步骤二:配置OpenRouter

  1. 打开 dify 的 Settings 配置,选择 Model Provider 为 OpenRouter。
  1. 输入从 OpenRouter 中获取的 API Key。

实践案例

假设我们需要基于 Dify 构建一个翻译的 API。以下是具体步骤:

  1. 选择模版:
    • 从模版里面选择一个和我们的应用场景相近的 Workflow。
  1. 步骤编排:
    • 在 Dify 平台对整个翻译流程进行编排,过程中可以不断的测试,选择合适的模型。
  1. 发布API:
    • 点击 Publish 即可让外部通过 API 和 API Key 访问模型。

FAQs

1. OpenRouter与OpenAI 等原生 API 相比有哪些优势?

OpenRouter 可以一次性提供更多的模型,而且可以在国内使用 Visa 卡支付,这样对于需要使用多种模型进行对比验证的应用开发平台来说很有优势。

总结

通过本文介绍的步骤,您可以快速搭建一个准生产环境的LLM应用开发平台。利用Dify进行应用开发和流程编排,OpenRouter用作模型接入,再结合k8s进行 dify 的容器编排和管理,可以大大简化开发和部署过程,提高效率和稳定性。希望本文对您有所帮助,祝您在LLM应用开发的道路上取得成功!

分享内容