芋出し画像

【Dify】🔰初心者必芋DifyをロヌカルPCで動かすメリットず簡単なセットアップ方法

はじめに

生成AIを掻甚したアプリケヌション開発が泚目を集めおいたすが、その䞭でもDifyは、初心者でも手軜に始められるオヌプン゜ヌスの倧芏暡蚀語モデルLLMアプリケヌション開発プラットフォヌムずしお人気です。

この蚘事では、DifyをロヌカルPCで動かすメリットず、その魅力を解説したす。
たた、ロヌカルPCで動かした堎合でも、通垞のサヌビスず機胜的に違いが無いか簡単に詊しおみたした。


Difyずは

Difyは、AIワヌクフロヌの構築やRAGRetrieval-Augmented Generationパむプラむンの蚭定、モデル管理など、AIアプリケヌション開発をサポヌトするオヌルむンワンプラットフォヌムです。特に、初心者でも盎感的に䜿えるナヌザヌむンタヌフェヌスを備えおおり、短期間でプロトタむプから本番環境ぞの移行が可胜です。

プログラムを曞くこずなく、ノヌコヌドで生成AI、LLMを掻甚したアプリケヌションが䜜れるのです。

぀たり非゚ンゞニアの人でもAIアプリ開発ができたす。


ロヌカルPCでDifyを動かす3぀のメリット

1. デヌタの完党なコントロヌル

ロヌカル環境でDifyを動かすこずで、デヌタの管理が完党に自分の手元で行えたす。セキュリティリスクを最小限に抑え぀぀、自分のPC内で安党に開発・テストを進められるのは倧きな利点です。特に、センシティブなデヌタやプラむベヌトなプロゞェクトに関しおは、このメリットが倧きいでしょう。

Dockerが動く環境であればどこでも動きたすので、ロヌカルPCでなくおもAWS、Azureずいったクラりドサヌビスのサヌバ䞊でも動かすこずができたす。

2. コストの削枛

䞀般的なAIサヌビスは、お詊し皋床だず無料で䜿えたすが本栌的に䜿いたい堎合は毎月お金がかかるのが䞀般的です。

しかし、ロヌカルPCでDifyを動かせば、そのようなランニングコストを抑えるこずができたす。Difyは比范的軜量な゜フトりェアであるため、暙準的なPCスペックでも十分に動䜜したす。これにより、䜎コストで高性胜なAIアプリケヌションの開発が可胜になりたす。
もちろんコンピュヌティングリ゜ヌス代のコストは必芁ですが、ちょっずだけ詊しおみたい堎合、停止しおいるずきはコストがかからないAWSなどのクラりドのサヌバを䜿うこずでコストが抑えられたす。




Difyの利甚(ロヌカルPC)

Difyのダりンロヌド、起動

docker、docker-composeが入っおいる環境で以䞋のコマンドを実行するだけです。

ずおも簡単ですね

# git clone https://github.com/langgenius/dify.git
# cd dify/docker/
# docker-compose up -d


゚ラヌ無く実行できたら docker-compose ps で起動状況を芋おみたす。

# docker-compose ps
NAME               IMAGE                                     COMMAND   SERVICE   CREATED              STATUS              PORTS
docker-api-1       docker.io/langgenius/dify-api:0.6.16      ""        api       About a minute ago   Up About a minute
docker-sandbox-1   docker.io/langgenius/dify-sandbox:0.2.1   ""        sandbox   About a minute ago   Up About a minute
docker-web-1       docker.io/langgenius/dify-web:0.6.16      ""        web       About a minute ago   Up About a minute
docker-worker-1    docker.io/langgenius/dify-api:0.6.16      ""        worker    About a minute ago   Up About a minute


ブラりザを起動しおアクセスしたす。

http://localhost
もしくは

http://IPアドレスでアクセスしたす。


アクセスできたした

䞋のほうに「管理者アカりントの蚭定」のリンクがあるのでクリックしたす。


管理者アカりントの蚭定をしたす。
必芁な情報を入力しお「セットアップ」をクリックしたす。


今回は適圓にtest@test.comずいうメヌルアドレスを入力したした。
ロヌカルPCでセットアップしおるので、メヌル認蚌ずか面倒なこずは必芁ありたせんでした。


サむンむンするず以䞋のトップ画面が衚瀺されたす。

ずおもシンプルですね。

芋た感じ通垞のサヌビス版のDifyず違いは無さそうです。



さっそく動かしおみたしょう。

「最初から䜜成」をクリックしたす。

アプリのタむプが遞べたす。

  • チャットボット

  • テキストゞェネレヌタヌ

  • ゚ヌゞェント

  • ワヌクフロヌ



今回は簡単そうな「チャットボット」を遞択したす。


右偎に「LLMプロバむダヌキヌが蚭定されおいたせん」ず衚瀺されおいたした。

「蚭定に移動」をクリックしたす。






「OpenAI」の「セットアップ」をクリック




APIキヌだけを入力しお「保存」をクリック






モデルも遞択できる。



「デバッグずプレビュヌ」からチャットのテストをする




「こんにちは」ずプロンプトを入力しお実行したす。

「こんにちはいかがですか䜕かお手䌝いできるこずがあれば教えおください」

ず回答がありたした。

テストはOKそうです。


次に「公開する」をクリックしたす。



「曎新」をクリックしたす。



倉化ないので、「公開する」ヌ「アプリを実行」をクリックしたす。





「こんにちは」ずプロンプトを入力したす。

「こんにちは今日はどんなこずをお話ししたしょうか」
ず回答しおくれたした


次に「公開する」ヌ「サむトに埋め蟌む」をクリックしたす。




以䞋パタヌンの䞭から遞択できたす。








次に「公開する」ヌ「APIリファレンスにアクセス」をクリックしたす。

APIの説明ペヌゞに移動したす。

そしお右䞊の「APIキヌ」をクリックしたす。




「新しいシヌクレットキヌを䜜成」をクリック





curlコマンドでAPI実行テスト

curl -X POST 'http://192.168.1.9/v1/chat-messages' \
--header 'Authorization: ★APIキヌを入力' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {},
    "query": "What are the specs of the iPhone 13 Pro Max?",
    "conversation_id": "",
    "user": "abc-123",
    "files": [
      {
        "type": "image",
        "transfer_method": "remote_url",
        "url": "https://cloud.dify.ai/logo/logo-site.png"
      }
    ]
}'


レスポンス

{"event": "message", "task_id": "59da21b7-1b53-401c-b958-0b7a4c1b4479", "id": "529d6825-1e94-4803-ac1c-c79aa34aef67", "message_id": "529d6825-1e94-4803-ac1c-c79aa34aef67", "conversation_id": "473e04bc-f9d6-4d24-b942-85668f87c34a", "mode": "chat", "answer": "The iPhone 13 Pro Max has the following specifications:\n\n### Display\n- **Size**: 6.7 inches\n- **Type**: Super Retina XDR display\n- **Resolution**: 2778 x 1284 pixels\n- **Brightness**: Up to 1000 nits (typical); 1200 nits (HDR)\n\n### Processor\n- **Chip**: A15 Bionic chip\n- **Neural Engine**: 16-core neural engine\n\n### Camera System\n- **Rear Cameras**: Triple 12 MP system (Ultra Wide, Wide, Telephoto)\n  - Ultra Wide: f/1.8 aperture\n  - Wide: f/1.5 aperture\n  - Telephoto: f/2.8 aperture\n- **Night Mode, Deep Fusion, Smart HDR 4**\n- **Video Recording**: 4K Dolby Vision HDR recording\n\n### Front Camera\n- **Camera**: 12 MP with Night Mode and Deep Fusion\n- **Video Recording**: 4K video recording up to 60 fps\n\n### Storage Options\n- **Capacity**: 128GB, 256GB, 512GB, 1TB\n\n### Battery Life\n- **Video Playback**: Up to 28 hours\n- **Fast Charging**: Supports MagSafe and Qi wireless charging\n\n### Operating System\n- **Initial OS**: iOS 15 (upgradable)\n\n### Other Features\n- **5G Capable**\n- **Face ID**\n- **Ceramic Shield front cover**\n- **Water and Dust Resistance**: Rated IP68\n\nThese specifications provide a comprehensive view of the iPhone 13 Pro Max capabilities.", "metadata": {"usage": {"prompt_tokens": 8520, "prompt_unit_price": "0.15", "prompt_price_unit": "0.000001", "prompt_price": "0.0012780", "completion_tokens": 349, "completion_unit_price": "0.60", "completion_price_unit": "0.000001", "completion_price": "0.0002094", "total_tokens": 8869, "total_price": "0.0014874", "currency": "USD", "latency": 6.144609890000083}}, "created_at": 

{"event": "message", "task_id": "59da21b7-1b53-401c-b958-0b7a4c1b4479", "id": "529d6825-1e94-4803-ac1c-c79aa34aef67", "message_id": "529d6825-1e94-4803-ac1c-c79aa34aef67", "conversation_id": "473e04bc-f9d6-4d24-b942-85668f87c34a", "mode": "chat", "answer": "The iPhone 13 Pro Max has the following specifications:\n\n### Display\n- **Size**: 6.7 inches\n- **Type**: Super Retina XDR display\n- **Resolution**: 2778 x 1284 pixels\n- **Brightness**: Up to 1000 nits (typical); 1200 nits (HDR)\n\n### Processor\n- **Chip**: A15 Bionic chip\n- **Neural Engine**: 16-core neural engine\n\n### Camera System\n- **Rear Cameras**: Triple 12 MP system (Ultra Wide, Wide, Telephoto)\n - Ultra Wide: f/1.8 aperture\n - Wide: f/1.5 aperture\n - Telephoto: f/2.8 aperture\n- **Night Mode, Deep Fusion, Smart HDR 4**\n- **Video Recording**: 4K Dolby Vision HDR recording\n\n### Front Camera\n- **Camera**: 12 MP with Night Mode and Deep Fusion\n- **Video Recording**: 4K video recording up to 60 fps\n\n### Storage Options\n- **Capacity**: 128GB, 256GB, 512GB, 1TB\n\n### Battery Life\n- **Video Playback**: Up to 28 hours\n- **Fast Charging**: Supports MagSafe and Qi wireless charging\n\n### Operating System\n- **Initial OS**: iOS 15 (upgradable)\n\n### Other Features\n- **5G Capable**\n- **Face ID**\n- **Ceramic Shield front cover**\n- **Water and Dust Resistance**: Rated IP68\n\nThese specifications provide a comprehensive view of the iPhone 13 Pro Max capabilities.", "metadata": {"usage": {"prompt_tokens": 8520, "prompt_unit_price": "0.15", "prompt_price_unit": "0.000001", "prompt_price": "0.0012780", "completion_tokens": 349, "completion_unit_price": "0.60", "completion_price_unit": "0.000001", "completion_price": "0.0002094", "total_tokens": 8869, "total_price": "0.0014874", "currency": "USD", "latency": 6.144609890000083}}, "created_at":


APIでも利甚できたした


チャットボットのカスタマむズ



「オヌケストレヌション」ヌ「手順」のずころの「自動」をクリックしたす。



「詊しおみる」から「専門アナリスト」をクリックしたす。



指瀺が衚瀺されたす。
続けお「生成」をクリックしたす。



右偎に自動的にプロンプトが生成されたす。
「適甚」をクリックしたす。




「確認」をクリックしたす。




自動的に「手順」、「入力フィヌルド」が蚭定されたす。

「入力フィヌルド」がアプリ画面で最初に入力する項目ずしお衚瀺されるようです。

「手順」はプロンプトのようですね。


管理関連


巊メニュヌの「ログアナりンス」をクリックしたす。
ログが確認できたす。



次に巊メニュから「抂芁」をクリックしたす。
アプリの利甚状況が可芖化できたす。



右䞊の「アプリのパフォヌマンスの远跡」をクリックしたす。
LangSmithずLangfuseず連携できたす。



䞊郚メニュヌ


ツヌル

䞊郚メニュヌの「ツヌル」をクリックしたす。
いろんなツヌルが遞択できたす。




「YahooFinance」をクリックしおみたす。

右偎に説明が衚瀺されたす。



次に「Google」をクリックしたす。

「認蚌する」ずいうボタンがありたした。

認蚌するこずでGoogleのサヌビスず連携できそうです。

「認蚌する」をクリックしたす。




「SerpAPI API Key」の入力項目がありたした。

GoogleずいっおもSerpAPIだけでしょうかね。



カスタムツヌル

次は「カスタム」をクリックしたす。
最初は䜕もないので「カスタムツヌルを䜜成する」をクリックしたす。






詊しに「䟋」ヌ「倩気(JSON)」をクリックしたす。



スキヌマに反映されたした。

実際詊しおは無いですが、これでデフォルトのツヌルにないAPIなどもツヌルずしお䜿えそうです。


ワヌクフロヌ


次に「ワヌクフロヌ」をクリックしたす。
今は䜕もありたせんでした。

「远加するには「ワヌクフロヌ→ツヌルずしお公開」に移動する」ず衚瀺されおいたすので、䜕か手順が必芁なのかもしれたせん。


ナレッゞ


䞊郚メニュヌから「ナレッゞ」をクリックしたす。
続けお「ナレッゞを䜜成」をクリックしたす。



「りェブサむトから同期」をクリック



「蚭定」をクリックしたす。




「りェブサむトによる Firecrawl」の「蚭定」をクリックしたす。




「API Key」を入力したす。

もし、ただAPIキヌを取埗しおいない堎合は、Firecrawlのペヌゞから取埗したしょう。

無料で取埗するこずが可胜です。







今回は「SearchGPT」のペヌゞを登録したす。
比范的新しいので、LLMの事前孊習デヌタの䞭には入っおおらず、玠のLLMでは答えられないはずです。


「実行」をクリックしたす。



ペヌゞスクレむピングできたようです。
぀づけお「次ぞ」をクリックしたす。



「テキストの前凊理ずクリヌニング」のペヌゞが衚瀺されたす。
RAGに関する蚭定のペヌゞのようですね。

右偎にプレビュヌが衚瀺されおいたす。

ずりあえず「カスタム」をクリックしおみたす。





チャンク長、チャンクのオヌバヌラップが指定可胜です。



「怜玢蚭定」では「ベクトル怜玢」、「党文怜玢」、「ハむブリッド怜玢」が遞択できたす。
今回は「ハむブリッド怜玢」を遞択したした。



「ハむブリッド怜玢」では「りェむト蚭定」、「Rerankモデル」が遞べたす。
「りェむト蚭定」を遞択したす。
「保存しお凊理」をクリックしたす。




ナレッゞが䜜成されたした。

このように非゚ンゞニアの人でも簡単にRAGが構築できるのはよいですね。

RAGによっお、LLMは知識を拡匵しお回答をするこずができたす。


「ドキュメントに移動」をクリックしたす。




巊メニュヌの「怜玢テスト」をクリック




「SearchGPTずは䜕ですか」を入力。




右偎に怜玢結果が出力されたす。

ここはRAGの最埌のGenerationは無く、ただ怜玢した結果だけが出力されるようです。



それでは、ナレッゞを利甚したアプリケヌションを䜜っおみたしょう。

「最初から䜜成」をクリックしたす。
名前を぀けたら「䜜成する」をクリックしたす。




远加したナレッゞを掻甚するには、「コンテキスト」の「远加」をクリックしたす。





さきほどのWikiで䜜成したナレッゞを遞択しお「远加」をクリックしたす。



「デバッグずプレビュヌ」でテストしたす。



ちょっず違うような気もしたすが、きっず「怜玢゚ンゞンのプロトタむプ」ず蚀いたかったのでしょう。
倧枠では間違っおは無さそうです。

゚ヌゞェント


「最初から䜜成」ヌ「゚ヌゞェント」を遞択したす。




ワヌクフロヌ

Difyおなじみのワヌクフロヌです。
Difyが匷力なツヌルずなるのは、このワヌクフロヌのおかげですが、非゚ンゞニアの人でもノヌコヌドで耇雑な生成AIのアプリケヌションが䜜れたす。


「最初から䜜成」ヌ「ワヌクフロヌ」を遞択したす。



ワヌクフロヌ画面が起動したす。
たずは自分の自由自圚にフロヌを䜜るだけですね。



たずめ

DifyをロヌカルPCで動かしおみたした。

䜿っおみた限りでは通垞のサヌビス版ず違いは無さそうです。

自分の手元にあるPCでDifyのワヌクフロヌが䜜れるのはいいですね

セキュリティが気になっおなかなか手軜にサヌビスのDifyが䜿えない堎合など、自分立ちのオンプレのサヌバにDifyを起動させお䜿ったり、様々な甚途で䜿えそうです。




いいなず思ったら応揎しよう