Web サイトにサポート用チャットボットを設置すれば、プラン、料金、配送、支払い方法、設定手順など、チームが毎日答えている質問に、時間を問わず訪問者の言語で回答できます。Dify は、ビジュアルエディター、組み込みのナレッジベース、すぐに使える Web サイト埋め込み機能を備えた、AI アプリケーション構築用のオープンソースプラットフォームです。この記事では、セルフホストした Dify で自社ドキュメントを基に回答するチャットボットを構築し、チャットバブルとして Web サイトに埋め込みます。さらに、会話の確認、回答の改善、ナレッジの更新といった、品質を高めるための日常的な運用についても解説します。
埋め込みコードとファイルのリンクには、Dify に設定されたアドレスが使われます。これらが IP アドレスや localhost のままだと、Web サイト上でチャットバブルが読み込まれません。HTTPS のドメインに設定して再起動してください。
# In dify/docker/.env, set your HTTPS domain:
CONSOLE_API_URL=https://dify.example.com
CONSOLE_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com
APP_API_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
FILES_URL=https://dify.example.com
# Then apply the change:
cd dify/docker && docker compose up -d
Settings > Model Provider(設定 > モデルプロバイダー)で、使用するプロバイダーをインストールします。ローカルモデルを使う場合は Ollama プロバイダーをインストールし、チャットモデルと埋め込みモデルの 2 つを追加します。
ollama pull qwen2.5:7b
ollama pull nomic-embed-text
# Dify runs in Docker, so Ollama must accept connections from containers
# (OLLAMA_HOST=0.0.0.0 plus the firewall rules from the Ollama guide). Check:
curl -s http://172.17.0.1:11434/api/tags | head -c 300; echo
# In Dify, add both models with the base URL: http://172.17.0.1:11434
# qwen2.5:7b model type: LLM
# nomic-embed-text model type: Text Embedding
Ollama 側の設定は「Ollama でローカル LLM を運用する」で解説しています。続いて、システムモデル設定で両方をデフォルトに設定します。クラウドプロバイダーも追加して、アプリごとに使用するモデルを選ぶこともできます。
どの設定よりも、整理された最新のドキュメントのほうが重要です。古い料金表は削除し、重要な回答は断片的な記述に頼らず、省略せずに書き出してください。大規模な導入でのアーキテクチャの選び方については「専用サーバーでプライベートな AI サポートナレッジベースを構築する」を参照してください。
Studio(スタジオ)で新しい Chatbot(チャットボット)アプリを作成します。エディターでナレッジベースをコンテキストとして追加し、temperature を低め(0.3 程度)にしてチャットモデルを選択し、指示文を記述します。
You are the online assistant of ACME Hosting.
Answer only with information from the context. If the context does not contain
the answer, say you are not sure and suggest contacting support at [email protected].
Keep answers under 120 words and reply in the visitor's language.
Never promise discounts, refunds or delivery times that are not in the context.
If the question is unrelated to our products and services, politely decline.
あわせて、3、4 個の質問候補を含む会話の開始メッセージを追加し、引用表示を有効にして、各回答がどのドキュメントを参照したかを確認できるようにします。公開前に、チケットやチャットから集めた実際の質問を少なくとも 20 件、プレビューパネルでテストしてください。
アプリを公開し、サイトへの埋め込みオプションを選んでチャットバブルを選択します。Dify がアプリ専用のコードを生成します。コードは次のような形式です。
<script>
window.difyChatbotConfig = {
token: 'your-app-token',
baseUrl: 'https://dify.example.com'
}
</script>
<script src="https://dify.example.com/embed.min.js" id="your-app-token" defer></script>
<style>
#dify-chatbot-bubble-button { background-color: #009aff !important; }
</style>
サイトのテンプレートの終了タグ </body> の直前に貼り付けます。WordPress では、ヘッダー・フッターにコードを挿入するプラグインを使えば、テーマを編集せずに設置できます。同じアプリには公開 Web ページと API もあるため、全画面のチャットや独自のフロントエンドにも利用できます。
Dify は AI アプリの公開向けに作られており、公開チャットバブル、API、ワークフロー、ログ、アノテーションを備えています。社内チーム向けのドキュメントアシスタントであれば、AnythingLLM のほうが手軽です。「AnythingLLM でプライベート RAG チャットボットを構築する」を参照してください。
ブラウザーの開発者コンソールを開いてください。最も多い原因は、ステップ1の URL がまだ IP アドレスや http:// のままになっていて、HTTPS サイト上でブラウザーがスクリプトをブロックしているケースです。また、セキュリティプラグインやコンテンツセキュリティポリシー(CSP)が別ドメインのスクリプトをブロックしている場合もあります。
はい。Dify アプリには、他のツールから呼び出せる API があります。または、n8n で Telegram ボットを直接構築することもできます。「n8n で AI カスタマーサポート用 Telegram ボットを構築する」を参照してください。
上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日対応テクニカルサポートへご連絡ください。サーバー IP、Dify のバージョンとドメイン、dify/docker フォルダーで実行した docker compose ps の出力、ブラウザーコンソールのエラーを添えていただくと、より迅速に調査できます。