【Dify API】使い方解説!APIキー取得からエンドポイント設定まで

「AIを活用したサービスを作りたいけど、どこから始めればいいの?」
「既存のシステムにAI機能を追加するのは難しそう…」

そんな悩みを抱える方に朗報です。Dify APIを活用すれば、AI機能の導入が驚くほど簡単になります。本記事では、外部サービスとの連携を中心に、Dify APIの実践的な活用法を徹底解説。具体的な実装例を交えながら、チャットボットの作成から業務自動化まで、すぐに使える具体的なテクニックをお伝えします。AI活用の可能性を広げるDify APIの魅力を、ぜひ体感してください。

目次

Dify APIとは?:外部連携で真価を発揮するAIプラットフォーム

Difyの概要とAPIの役割

Dify APIは、ChatGPTのような大規模言語モデル(LLM)を簡単に利用できる仕組みです。インターネット上でAIとデータをやり取りするための窓口(RESTful エンドポイント)を提供し、誰でも簡単にAI機能を自社のサービスに組み込めます。

このAPIの最大の特徴は、以下の3つの機能を一括して提供している点です。

  1. AIとの対話機能
  2. 人間の会話のように自然に返答を表示する機能
  3. 会話の履歴を記録・活用する機能

Dify APIの魅力は、その多彩な機能にあります。例えば、ChatGPTのように文章を自然に生成しながら表示する機能や、会話の文脈を理解して適切な返答を行う機能を簡単に利用できます。さらに、利用者を識別する機能や、複数のAIサービスを切り替えて使用する機能も備えています。特に注目すべきは、外部サービスとの連携機能や、複数の処理を自動的に実行する仕組みです。DifyはGUI(画面上でマウスを使って操作できる環境)とAPIの両方を提供しています。GUIでは、プログラミングの知識がなくても直感的な操作でAI機能を設定でき、APIを使えば、それらの機能を自社のシステムに組み込めます。この組み合わせで、既存のシステムへのAI機能の追加や、独自のサービス開発が容易になります。

API連携のメリット

Dify APIと外部サービスを連携すると、様々な利点が生まれます。まず、プロトタイプ開発の効率化が挙げられます。短期間でアプリケーションを構築でき、動作検証も迅速に行えるため、開発初期段階でのスピードアップが実現します。

AIを活用した業務効率化も大きな利点です。例えば、お客様からのよくある質問に自動で回答するチャットボットを作れます。また、社内の規定や手順書をAIが理解し、必要な情報を即座に提供するFAQシステムも構築できます。さらに、社内の文書データベースとAIを連携させれば、膨大な資料から必要な情報を素早く見つけ出せます。

これらの仕組みにより、カスタマーサポート担当者の対応時間を短縮でき、複雑な案件により多くの時間を使えます。また、社員が必要な情報にすぐにアクセスできるため、業務の進行がスムーズになります。

外部ツール統合による機能拡張も見逃せません。Google検索との連携で情報検索の幅が広がり、Slackなどのコミュニケーションツールとの統合でチーム内のコラボレーションが促進されます。さらに、DALL-EやStable Diffusionなどの画像生成AIとの連携で、マルチモーダルな機能も実現可能です。

これらの連携がもたらすビジネス上の利点は計り知れません。開発時間の大幅な短縮や運用コストの削減はもちろん、業務プロセスの効率化やカスタマーサポートの品質向上、データ分析・レポート作成の自動化など、多岐にわたる効果が期待できます。

特に注目に値するのは、Notion連携RAGシステムのような実装例です。既存の業務プロセスにAI機能を統合すれば、より効率的なワークフローを構築できると実証されています。

Tom

Dify APIは単なる技術的なツールではなく、ビジネスプロセス全体を改善する可能性を秘めています!

Dify APIの基本:キー取得からリクエスト送信まで

APIキーの取得方法

Dify APIを利用する第一歩は、APIキーの取得です。まず、Difyのウェブサイトでアカウントを作成し、ログインします。その後、作成したワークフローをクリックします。遷移した画面の左メニューからAPIアクセスをクリックします。

するとワークフローアプリAPI画面が表示されます。右上のAPIキーをクリックすると、このワークフローで利用できるAPIシークレットーキーのポップアップが表示されます。

ここでこのワークフローと連携するためのAPIキーを作成できます。

APIキー管理のベストプラクティスとして、APIキーは環境変数や秘密管理ツール(GCP Secret Managerなど)での保管をしましょう。また、定期的なキーローテーションを実施し、最小権限の原則に基づくアクセス権限を設定します。そのほか、APIキーをソースコード内に直接記載する行為は、避けたほうがいいです。

APIリクエストの基本(Python, GAS)

Dify APIへのリクエストおよびレスポンスの記述は使用する言語や環境によって異なります。しかし、基本的な原則は共通しています。その詳細はワークフローアプリAPI画面に記述されています。

ここでは、主要な実装例をPythonとGoogle Apps Script(GAS:JavaScriptベースのスクリプト言語)で紹介します。

Pythonではrequestsライブラリを仕様して、Dify APIにリクエストを送れます。以下はそのサンプルコードです。.env(環境ファイル)を扱うには先に

pip install python-dotenv

を実行しましょう。

Pythonのサンプルコード

DIFY_API_KEY = 'app-xxx'  # 取得したAPIキーを設定
import requests

import os 

from dotenv import load_dotenv

from typing import Dict, Any

load_dotenv()

API_KEY = os.environ.get('DIFY_API_KEY')

# Dify APIのベースURL

BASE_URL = 'https://api.dify.ai/v1/workflows/run'

def get_dify_response(keyword: str, user: str) -> str:

    headers = {

        'Authorization': f'Bearer {API_KEY}',

        'Content-Type': 'application/json'

    }

    data: Dict[str, Any] = {

        "inputs": {},

        "keyword": keyword,  # 引数のkeywordを使用

        "response_mode": "blocking",

        "user": "difyのユーザー名",    # 引数のuserを使用

    }

    # DifyにPOSTリクエスト&レスポンスを受けるコード

    response = requests.post(BASE_URL, headers=headers, json=data)

    response.raise_for_status()

    return response.json()['answer']

次のサンプルはGoogle Apps Script(GAS)とGoogleスプレッドシートとの連携を想定した実装例です。DifyのAPIシークレットキーはプロジェクトの設定画面にあるスクリプトプロパティで管理するようにしましょう。

Dify APIからのレスポンスは主にJSON形式で返されます。どのようなレスポンスが返されるかは、https://api.dify.ai/v1/{命令}の{命令}で異なるため、どんなレスポンスが欲しかについては、Difyのリファレンスを参照してください。

GASにおけるDifyのAPIシークレットキーの取得サンプルコード

var apiKey = response.getResponseText();

   SCRIPT_PROPERTIES.setProperty('DIFY_API_KEY', apiKey);

   ui.alert('APIキーが正常に保存されました。');

GASにおけるDifyで作成したワークフローに値を送るためのサンプルコード

//Difyへデータを送信し、Difyからのレスポンスを受け取る

function hogehoge(keyword, apiKey, column) {

  var sheet = SpreadsheetApp.getActiveSheet();

  var difyUrl = 'https://api.dify.ai/v1/workflows/run';

  //Header(送信するデータに関する説明書き)を設定

  const headers = {

    'Authorization': 'Bearer ' + apiKey,

    'Content-Type': 'application/json'

  };

  //payload(送信するデータの中身)の設定

  const payload = {

    'inputs': {

      //Difyのワークフローの開始にて設定した変数名(例: keyword)を記述。

      // 詳細は[Difyのワークフロー設定に関する詳細記事](仮の内部リンク)。

      'keyword': keyword

    },

    'response_mode': 'blocking',

    'user': 'difyのユーザー名'

  };

  console.log(keyword);

  //Optionの設定

  const options = {

    "method": "post",

    headers,

    "payload": JSON.stringify(payload)

  };

  try {

    //スプレッドシートからデータを取得 (例: A列をキーワード、B列を処理対象とする)

    var dataRange = sheet.getDataRange();

    var values = dataRange.getValues();

    // Difyにリクエストを送信し、結果をスプレッドシートのC列に書き込む

    for (var i = 1; i < values.length; i++) { // 1行目はヘッダー行と仮定

        var currentKeyword = values[i][0]; // A列 (キーワード)

        payload.inputs.keyword = currentKeyword; // payloadのkeywordを更新

        options.payload = JSON.stringify(payload); // payloadを更新

        var response = UrlFetchApp.fetch(difyUrl, options);

        var responseBody = JSON.parse(response.getContentText());

        // Difyからの応答をスプレッドシートのC列に書き込む

     // C列 (3番目の列)

        sheet.getRange(i + 1, 3).setValue(responseBody.answer);     }

  } catch (e) {

    // エラー発生時の処理 (例: エラーメッセージをログに出力)

    console.error("Error: " + e);

    // 必要に応じて、SpreadsheetApp.getActiveSpreadsheet().toast() などでユーザーに通知することも可能

  }

}

事例で学ぶ!Dify APIの活用方法

事例1:Pythonでチャットボット連携

Dify APIを活用したチャットボット開発は、多くの企業で注目を集めています。特にPythonを使用した実装は、その簡潔さと拡張性の高さから、多くの開発者に支持されています。カスタマーサポートの24時間対応化や応答時間の短縮、オペレーターの負荷軽減といった具体的な効果が得られています。特に、ユーザーごとの会話履歴管理機能で、文脈を考慮した自然な対話が可能です。

事例2:GASでスプレッドシート連携

GASとDify APIの連携は、データ処理の自動化において強力なソリューションとなります。スプレッドシートのデータを直接AIで処理し、結果を自動的に書き戻せば、業務効率を大きく向上できます。Difyとの連携でデータの一括処理や自動レポート作成ができます。特に定型的なデータ分析や文書処理のタスクで大きな効率化を実現できます。

事例3:外部APIと連携した高度な機能実装

Dify APIの真価は、外部APIとの連携時に発揮されます。天気情報APIや翻訳APIなど、様々な外部サービスと組み合わせれば、より高度な機能を実現できます。天気データの意味的な解析やそれに基づいた推論が可能となり、ユーザー体験を大きく向上できます。

まとめ:Dify APIがもたらす開発革新

Dify APIは、AIアプリケーション開発の新しい可能性を切り開くツールとして、今後ますます重要性を増すでしょう。ノーコード/ローコード環境による迅速な開発、複数のLLMプロバイダーとの柔軟な連携、既存システムとの容易な統合など、その特徴は開発効率を大きく向上させます。

また、カスタムツールによる外部API連携やワークフローを活用した複雑な処理の自動化、柔軟な入出力のカスタマイズなど、機能面での拡張性も魅力です。適切なエラーハンドリングとセキュアなAPIキー管理で、安定性と安全性も確保できます。

Dify APIの活用で、AIアプリケーション開発の可能性は大きく広がります。業務効率化やユーザー体験の向上を目指す企業にとって、強力なツールとなります。ぜひ活用してください。

参考

https://note.com/masaland/n/nd645605e7fe9

このコンテンツの投稿者

学生時代は生成AIによるアノテーションの研究を行っていた。現在は、AI戦略室でAI関連の開発や事業への活用を担当。 オウンドメディアの担当者を経て、現在はAIエンジニア。

目次