AIアプリ開発プラットフォーム「Dify」のAPIの使い方を徹底解説

DifyはオープンソースのLLMプラットフォームとして、コードの知識が少なくても多彩なAI機能を簡単に利用できるのが大きな魅力です。自己ホスティングにも対応しており、セキュリティやデータプライバシーの要件が厳しい環境でも導入しやすい点が注目されています。本記事ではAPIの使い方について徹底的に解説しているので、ぜひ最後までご覧ください。

仲 思成
著者: 仲 思成

AI導入.comを提供する株式会社FirstShift 代表取締役。トロント大学コンピューターサイエンス学科卒業。株式会社ANIFTYを創業後、世界初のブロックチェーンサービスを開発し、東証プライム上場企業に売却。その後、マッキンゼー・アンド・カンパニーにコンサルタントとして入社。マッキンゼー日本オフィス初の生成AIプロジェクトに従事後、株式会社FirstShiftを創業。

Difyとは

DifyとはどのようなオープンソースのLLMプラットフォームなのでしょうか。
この章ではDifyの基本的な概要と、バックエンド不要のBackend as a Serviceとしての強みについて説明します。

Dify(ディファイ) は、オープンソースの大規模言語モデル(LLM)アプリ開発プラットフォームです。
複雑なバックエンドを構築しなくてもフロントエンドから直接LLMを呼び出せる点が大きな特徴です。

さらに、自己ホスティングが可能なため、機密性の高いデータを外部に出さずに運用できます。
ローコード/ノーコードでも扱いやすいように設計されており、AIを活用した多彩なアプリケーションを素早く立ち上げることができます。


主な特徴

Difyにはどのような特徴があるのでしょうか。
この章では、オープンソースLLMとしての利点や、複数モデルを切り替えられる柔軟性などについて解説します。

フロントエンドから直接LLM呼び出し

フロントエンドから直接LLMを安全に利用できる仕組みが整備されています。
認証やモデル呼び出しの処理をDifyが引き受けるため、開発者はフロントエンドの実装に集中できます。

ビジュアルなアプリ開発・運用

GUI上でプロンプトやワークフローを直感的に設定し、リアルタイムに全クライアントへ反映できます。
ログの可視化やユーザー監視などの運用も、視覚的に管理できます。

LLMプロバイダーの切替と一元管理

OpenAIやAnthropic、MetaのLlama2など、複数のモデルを一元管理できます。
用途やコストに合わせてモデルを切り替えられるため、ベンダーロックインを回避できます。

自己ホスティングとデータプライバシー

オープンソースとして提供されているため、オンプレミスでの運用が可能です。
データガバナンスが厳しい環境でも、社内サーバーでLLMを実行できる安心感があります。

RAGエンジンとプラグイン拡張

Retrieval-Augmented Generation (RAG)を標準でサポートし、QdrantやWeaviateなどのベクターデータベースと連携できます。
外部ツールやプラグインとの連携で、機能拡張もしやすく設計されています。

コード拡張とエージェント機能

エージェント機能を通じて外部APIの統合や複雑なワークフローを定義できます。
OpenAIのFunction Callingのようなコード実行タスクも、Difyで実現可能です。


APIエンドポイント

ここではDifyが提供する主なAPIエンドポイントと、その用途について紹介します。
モデルに質問を投げるだけでなく、ワークフロー実行やファイルアップロードなど、幅広い操作が可能です。

以下の表では、代表的なエンドポイントをまとめています。

エンドポイントURI 主な用途・説明
/v1/completion-messages テキスト生成用のエンドポイントです。文章の要約や翻訳などを行うときに利用します。
/v1/chat-messages チャット対話用のエンドポイントです。Q&A形式のやり取りを続ける際に使用します。
/v1/workflows/run ワークフロー実行用エンドポイントです。Difyで組んだマルチステップ処理を一括で呼び出すことができます。
/v1/files/upload ファイルアップロード用のエンドポイントです。画像やPDFを投稿し、AIに参照させる場合などに使われます。
/v1/datasets/... ナレッジベース管理用エンドポイント群です。独自の知識データをアップロード・検索できます。

この表はDifyのAPI利用時に重要になるポイントをまとめたものです。
各エンドポイントはDify管理画面の**「APIアクセス」**で詳細なドキュメントを参照できます。


認証と認可

DifyのAPIを安全に活用するためには、どのように認証や権限管理が行われるのでしょうか。
この章では、APIキーを使ったBearerトークン認証と運用のベストプラクティスを紹介します。

DifyではアプリケーションごとにAPIキーを発行し、HTTPヘッダーでBearerトークンとして渡す方式を採用しています。
キーがあれば対応するアプリケーションの機能を利用できるため、発行や管理がしやすい反面、キーの管理には十分注意が必要です。

アプリケーション単位でキーを切り分けると、利用状況のトラッキング無効化が柔軟になります。
また、キーはできるだけサーバーサイドで保持し、フロントから直接呼び出さない実装が推奨されています。


ドキュメントとリリース

Difyを導入する際、公式ドキュメントとリリース情報をどのように活用するとよいのでしょうか。
この章では、多言語対応のドキュメントやGitHubリポジトリのリリースノートを活用するポイントをまとめます。

Dify公式ドキュメントは英語・中国語・日本語などの言語に対応しており、セットアップガイドやAPIリファレンスが充実しています。
GitHubリポジトリ上では頻繁にバージョンアップが行われており、リリースノートで新機能や修正内容を確認できます。

近年のアップデートでは、マルチモデル対応の拡充Workflow機能などが注目されています。
オープンソースならではの柔軟さとコミュニティの活発な開発が、Difyの大きな魅力です。


導入手順

ここでは、Difyの導入フローとPythonによるAPI呼び出しの例を示します。
アカウント作成からAPIキーの取得、そして簡単なサンプルコードまでを順に確認できます。

  1. アカウント作成とAPIキー取得
    Dify公式サイトでアカウントを作成し、ダッシュボードからアプリを公開に設定します。
    その後「APIアクセス」メニューでAPIキーを発行します。

  2. Python環境のセットアップ
    必要に応じてPythonをインストールし、pip install requestsでライブラリを導入します。

    環境構築が簡単なGoogle Colabで実行することもできます。

  3. API呼び出しのサンプルコード

    import requests
    from typing import Dict
    
    API_KEY = 'app-xxx'
    BASE_URL = 'ここは任意のURLに設定してください'
    
    def get_dify_response(query: str, user: str) -> str:
        headers = {
            'Authorization': f'Bearer {API_KEY}',
            'Content-Type': 'application/json'
        }
        data: Dict[str, any] = {
            "inputs": {},
            "query": query,
            "response_mode": "blocking",
            "user": user,
        }
        response = requests.post(BASE_URL, headers=headers, json=data)
        response.raise_for_status()
        return response.json()['answer']
    
    if __name__ == "__main__":
        query = "ここには任意の質問を入れてください"
        user = "xx@xx"
        try:
            answer = get_dify_response(query, user)
            print(answer)
        except requests.RequestException as e:
            print(f"エラーが発生しました: {e}")
    

    サンプルコードを実行することで、Dify上で設定されたモデルやプロンプトに基づいた回答が得られます。


他AIサービスとの比較

Dify以外にもOpenAIやGoogle Cloud(Vertex AIなど)といったAIサービスがあります。
ここでは、それらとの大きな違いや使い分けのポイントを紹介します。

モデル 特徴 適した利用ケース
OpenAI API クラウド利用(自己ホスティング不可)。高性能モデルを手軽に利用できる反面、OpenAIのインフラへ依存度が高い 強力な言語モデルをすぐに導入したい場合
Google Cloud AI(Vertex AI) Google Cloud上で大規模モデルの学習や推論が可能。Google独自技術やエコシステムを活用しやすいが依存度も高い 大規模モデルを活用し、Googleのサービスと連携したい場合
Dify オープンソースで自己ホスティングが可能。複数モデルを一元管理しやすく、ベンダーロックインを抑制できる 軽量なLLMアプリを迅速に開発し、柔軟なホスティングやマルチモデル運用を行いたい場合

こちらの表は、OpenAI API・Google Cloud AI(Vertex AI)・Difyの三つを比較したものです。各サービスのホスティング形態やベンダーロックインの有無に加え、それぞれが得意とする分野をまとめています。導入の際には、必要な機能や運用形態(自己ホスティングの必要性、複数モデルの管理方法など)に応じて選択していただくとよろしいかと思います。


まとめ

最後に、Difyを活用することで得られるメリットと今後の展望を振り返ります。
自己ホスティング可能なオープンソースLLMプラットフォームという点が、Difyの大きな魅力です。

マルチモデル対応RAGエンジンプラグイン拡張など、AI活用の幅を大きく広げられます。
頻繁なバージョンアップにより、今後も新機能が追加される可能性が高いです。

Difyを導入することで、バックエンド不要のBaaSを手軽に利用しつつ、高いデータプライバシーを確保できます。
ぜひDifyを試して、業務効率化や新しいAIサービスの開発に役立ててみてください。

AIサービス導入のご相談は AI導入.com へ(無料)

AI導入.comでは、マッキンゼー・アンド・カンパニーで生成AIプロジェクトに従事した代表を中心に、日本・アメリカの最先端のAIサービスの知見を集めています。AIサービスの導入に関するご相談やお問い合わせを無料で承っております。ビジネスの競争力を高めるために、ぜひ以下のお問い合わせフォームよりご連絡ください。

AI導入.comにお問い合わせする