見出し画像

Difyでつまずいた点とその解決法

自分は、Difyをセルフホスト型(ローカル型)
利用しているのですが、
クラウド版と違って、
ローカルPCの状況やDockerファイルの設定により、
うまく動作しないケースが多々あります。

この記事では、
実際に自分がDifyを利用していて
つまずいた点やその解決法を
ご紹介していきます。

同じ悩みを持った方のお助けになればと思います。



つまずき❶:そもそもDifyをはじめられない


私自身、
公式ドキュメント通りに手続きを進めたのですが、
初手では、うまくいきませんでした。

ここでは、
公式ドキュメントに基づく具体的なやり方を追いながら
どこでつまずいたか、その解決法について
記載しています。

あらかじめ、gitとDocker Desktopをインストールしておく必要があります。
Dockerは起動させておいてください。

Macのターミナルを使っての操作となります。


❶Difyプロジェクト用のディレクトリを作成する

まず、デスクトップ上に
dify_projectというディレクトリを作成します。

cd desktop
mkdir dify_project
cd dify_project

❷difyのソースコードをクローンする

git clone https://github.com/langgenius/dify.git

❸dockerディレクトリに移動し環境変数ファイルをコピーする

cd dify/docker
cp .env.example .env 

❹Docker コンテナを起動する

docker compose up -d 

ここで、自分の場合
以下のようなエラーが出てつまずきました!

yaml: line 57: did not find expected alphabetic or numeric character

解決法
Finderからdocker-composeのyamlファイルを開いて、
57行目と58行目を修正します。

以下のように { }を" "で囲んでください。(修正前は、" " で囲まれていない状態だと思います)

  WEB_API_CORS_ALLOW_ORIGINS: "${WEB_API_CORS_ALLOW_ORIGINS:-*}"
  CONSOLE_CORS_ALLOW_ORIGINS: "${CONSOLE_CORS_ALLOW_ORIGINS:-*}"

ファイル保存後に、再度、ターミナルでDockerを起動します

docker compose up -d 

これでうまくいきます。

ブラウザのアドレス欄に
http://localhost/install 
と入力すればOKです。


つまずき❷:ナレッジ作成ができない

difyでRAGを組み込む際に、
ナレッジを作成する必要がありますが、
私の場合、初手ではこれがうまくいきませんでした。

具体的には、
データソースとしてPDFファイルを読み込んで、
テキストの前処理とクリーニングの設定をした後、
以下の画面に遷移するのですが、
ここでエラーが出るのです。

今では問題が解決しているので
うまく行っている例をスクショで載せていますが、
以前は、緑の100%のところが
何度トライしても、0%errorと出ました。

うまく行かないと、緑が赤になり、error表示がでる

クラウド版のDifyではこのようなエラーが出ないので、
ローカルPCか、DockerのYamlファイルに原因が
あります。

具体的には、
❶ローカルPCのディスク容量不足か、
❷Yamlファイルの設定ミスのいずれかです。

❶ディスク容量不足
difyでは、
テキスト情報をエンべディングして、
データを格納するのに、
Weaviateというベクトルデータベースを使用しています。

私の場合、MacbookAirのM1を使っていて、
250GBのディスク容量に対して、90%以上の容量を使用していました。
このディスク使用量の高さが、
Weaviateで問題を引き起こし、
ナレッジの作成がうまくいかない原因の一つになっていたようです。

【ChatGPTの回答】
ディスク使用量が93.61%と高いため、Weaviateは読み取り専用モードに切り替わっています。これが、Weaviateの一部機能が制限されている原因かもしれません。

解決法

不要なアプリケーションやファイルを削除して、
ディスク容量に空きを作りましょう。

 ❷Yamlファイルの設定ミス
私の場合、ディスク使用量を減らしても、
問題は解決しませんでした。

そこで、さらに調べたところ、
Yamlファイルに原因があることが分かりました。

解決法
以下の網掛け部分を追記する必要があります。




つまずき❸:Notionと連携できない


difyの醍醐味の一つに
Notionとの連携があります。

Notion使っている方なら分かると思いますが、
ぜひ連携してみたいですよね。

私自身も
以下の手順にしたがって、
鼻息荒くやってみたのですが、
普通にやるとうまくいきませんでした。

連携方法にはintenalとpublicと二つありますが、
まずは、internalが良いと思います。

これも原因はYamlの設定ファイルにありました。

解決法
YamlファイルのNotionの設定を以下にするとうまくいきます。

ポイントは赤矢印

ポイントは赤矢印のところで、
ここだけ書き方を変える必要があるんですよね。
これは自分で何十回と試してたどり着いた結論です。
これでうまくいきました。


成功するとこのようになります



つまずき❹:バージョンアップできない


difyは頻繁にバージョンアップを行っています。
バージョンアップすると新機能が使えるようになるので
ぜひとも、キャッチアップしたいところです。

右上のアカウントをクリックすると今のバージョンが出てきます

クラウド版であれば、リリース後に即時更新されますが、
セルフホスト型だと、更新作業が必要になります。

私自身、バージョン0.9.1を使っていたところ、
0.10.0がリリースされていることを知り、
ネット記事をいろいろ調べて試したのですが、
うまくいきませんでした。

最終的にこちらの記事に辿り着いて、
うまく行ったのでご紹介します。

ターミナルで以下の操作を順番に行っていきます。

特に最新コードの取得とローカルの変更の退避が肝です。

#バックアップの作成
cd ~/dify/docker

cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak

tar -cvf volumes-$(date +%s).tgz volumes

#最新のソースコードの取得
cd ..

git fetch origin

git checkout main

#ローカルの変更の退避
git stash

#最新のコードのプル
git pull origin main

#退避した変更の復元
git stash pop

#変更の確認と必要に応じた調整
#docker-compose.yamlファイルの変更を確認し、必要に応じて手動で調整する。
#Dockerコンテナの停止と再起動

cd ~/dify/docker

docker compose down

docker compose pull

docker compose up -d



さいごに

いかがでしたでしょうか。
つまずきポイントがあれば、シェアしていきたいと思います。

みんなで楽しくDifyを使っていきましょう。

いいなと思ったら応援しよう!

Non
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!