Re Reference AI

技術

Difyとは

LLMアプリケーションをビジュアルなワークフロー画面で構築・運用できるオープンソースのLLMOpsプラットフォーム

ノーコードLLMOps

ひとことで言うと

画面上でAIアプリの処理の流れを組み立てて作れる、オープンソースのツール。

概要

Difyとは、LLMを活用したチャットボット・エージェント・RAGアプリケーションを、コードを書かずにビジュアルなワークフロー画面上で構築・公開・運用できるオープンソースのプラットフォーム。 プロンプト管理、外部データソースの取り込み、複数のLLM・ツールの組み合わせ、公開後のAPI提供やモニタリングまでを1つのプラットフォームでカバーしており、いわゆるLLMOps(LLMアプリケーションの開発・運用)を統合的に扱う点が特徴。 自社開発のLLMアプリケーションを、エンジニア以外の担当者でも運用・改善しやすくすることを狙いとしたプラットフォームで、企業内でのLLM活用の内製化を支援する用途で導入が進んでいる。

背景

LLMアプリケーションの開発には、プロンプト設計・データ連携・エージェント構築だけでなく、公開後の運用・監視・改善といった継続的なプロセスも必要になる。 Difyは、こうした一連のプロセスをコードを書かずに扱えるプラットフォームとして開発された。

歴史

2023年: Dify(開発元LangGenius)が公開され、ビジュアルなワークフロー構築とLLMOps機能を統合したプラットフォームとして展開している。

アーキテクチャ

プロンプトテンプレート、外部データを取り込むナレッジベース(RAG)、複数のLLM呼び出しやツール呼び出しをつなぐワークフローエディタといった機能を、Web UI上で組み合わせて構築する。 構築したアプリケーションは、Web埋め込み用のUIやAPIエンドポイントとして公開できる。

コード例

公開したアプリのAPI呼び出し(概念例)

import requests

response = requests.post(
    "https://api.dify.ai/v1/chat-messages",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"inputs": {}, "query": "こんにちは", "user": "user-1", "response_mode": "blocking"},
)
print(response.json()["answer"])

利点

  • コードを書かずに、GUI上でLLMアプリケーションのプロトタイピングから運用までを行える
  • プロンプト管理・RAG・エージェント構築・モニタリングを1つのプラットフォームで完結できる
  • 構築したアプリケーションをAPIエンドポイントとして公開でき、既存システムに組み込みやすい

欠点

  • 非常に複雑・特殊な処理を実装したい場合、コードベースのフレームワークほどの柔軟性はない
  • プラットフォーム自体の学習コストがあり、GUIの構成に慣れる必要がある
  • セルフホストする場合、インフラの構築・運用の知識を要する

比較

  • FlowiseDifyとFlowiseは、いずれもビジュアルな画面でLLMアプリケーションを構築できるノーコード・ローコードツール
  • LangChainLangChainがコードベースのフレームワークであるのに対し、DifyはGUIベースでLLMアプリケーションを構築するプラットフォーム

関連用語

FlowiseLangChainRAG

よくある質問

Difyは自前のサーバーでも動かせる?

オープンソース版が公開されており、自前のサーバーへセルフホストする形でも、クラウド版のマネージドサービスとしても利用できる。

DifyとFlowiseはどう違う?

Difyはプロンプト管理・RAG・モニタリングまで含めたLLMOps全体をカバーするプラットフォームであるのに対し、FlowiseLangChainの概念をベースにしたノードエディタとしてワークフロー構築に主眼を置く。

参考文献

関連Zenn記事