Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語
Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語

MyScaleとDifyを使用してRAGチャットボットを構築する方法

私たちのAI駆動の世界では、あらゆる規模のビジネスが大規模言語モデル(LLM) (opens new window)などの高度なテクノロジーを日常業務にシームレスに統合する方法を探しています。その潜在的な利点は非常に大きく、顧客サービスの向上、ルーチンタスクの自動化、パーソナライズされた体験の提供など、さまざまな形で現れます。

しかし、概念から実装までの道のりは、特に技術的なバックグラウンドがない人々にとっては困難な場合があります。従来の方法では、多くのプログラミング知識が必要であり、多くの人にとってはハードルとなる場合があります。

そこで、Dify.AI (opens new window)が登場します。Difyは、非技術的なユーザーでも利用できるように、LLMをビジネスの運用にシンプルに統合するユーザーフレンドリーなプラットフォームです。

このブログでは、DifyとMyScaleを使用してRetrieval Augmented Generation(RAG) (opens new window)アプリケーションを開発する手順を紹介し、その簡単さをご紹介します。

# Difyとは

Dify.AI (opens new window)は、開発者であろうとなかろうと、誰でもLLMを使用できるようにするオープンソースのプラットフォームです。シンプルで使いやすいインターフェースを備えたDifyでは、コーディングの知識がほとんど必要なく、AIパワードのアプリケーションやチャットボットを構築し、展開、管理することができます。

Difyの特徴の一つは、さまざまなLLMを広範にサポートしていることです。ニーズに合ったLLMを選択することができます。また、Retrieval-Augmented Generation(RAG)エンジン、ワークフローの自動化、監視ツール、エンタープライズレベルのセキュリティなど、多機能なプラットフォームです。そのため、あらゆる規模のビジネスにとって強力なオプションとなります。

以下の比較画像は、DifyがLangChain (opens new window)Flowise (opens new window)OpenAI (opens new window) Assistants APIなど他の人気のあるプラットフォームと比較したものです。

Difyの特徴

Difyには、誰でもセットアップなしでアクセスできるWebベースのクラウドプラットフォームと、環境内でのセルフホスティングを希望するユーザー向けのローカルデプロイ可能なバージョンの2つのバージョンがあります。

Difyのセルフホスティングバージョンでは、ユーザーは環境内でプラットフォームをデプロイし、データとセキュリティを完全に制御することができます。このバージョンは、AIアプリケーションを自分のインフラストラクチャで管理したいビジネスや開発者にとって理想的です。

このブログでは、Difyのセルフホスティングバージョンを使用してRAGアプリケーションを構築します。

# Difyのダウンロード

RAGアプリケーションのセットアップを開始するには、まずDifyプラットフォームをダウンロードする必要があります。これは、GitHub (opens new window)からリポジトリをクローンすることで行うことができます。以下のコマンドを使用してリポジトリをローカル環境にクローンします。

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

これにより、Difyを使用してマシンで作業を開始するために必要なすべてのファイルと設定が提供されます。

# 適切なベクトルデータベースを選択する

RAGアプリケーションの効果は、ユーザーのクエリに対して効率的かつ正確にドキュメントを取得するかどうかに大きく依存します。デフォルトでは、Difyは大規模なデータセットの管理とクエリに信頼性のあるweaviateをベクトルデータベースとして使用するように設定されています。

しかし、このブログでは、より一歩進んで、高速性と精度の両方で優れたパフォーマンスを発揮する高度なSQLベースのベクトルデータベースであるMyScaleDB (opens new window)を統合します。MyScaleDBは、RAGアプリケーションが最高の精度でデータを取得し、全体的なユーザーエクスペリエンスを最適化することを保証するため、他のベクトルデータベースに比べて優れたパフォーマンスを発揮しています。

# DifyでMyScaleDBを使用する方法

Difyは、オープンソースのMyScaleDB (opens new window)とエンタープライズレベルのMyScale Cloud (opens new window)の両方をサポートしています。オープンソース版のMyScaleDBを使用する場合は、このセクションをスキップすることができます。

MyScale Cloudを使用するには、MyScaleDBのサインアップページ (opens new window)にアクセスして新しいアカウントを作成します。アカウントが設定されたら、クラスターページに移動し、右上隅の「+新しいクラスター」ボタンをクリックして新しいクラスターを作成します。

クラスターの作成 1

その後、クラスター名を入力し、「次へ」ボタンをクリックし、クラスターの起動が完了するのを待ちます。

クラスターの作成 2

クラスターの右側にある「アクション」ボタンをクリックします。次に、ポップアップリストから「接続の詳細」を選択します。

接続の詳細

「Python」タブからホスト/ポート/ユーザー名/パスワードの情報を記録します。この情報は、DifyがMyScaleクラスターへのアクセスを設定するために使用されます。

クラスターの作成 3

# MyScaleをDifyに統合する

MyScaleをDifyに統合するには、まずサンプルの.envファイルのコピーを作成します。これを行うには、ターミナルで次のコマンドを入力します。

cd docker
cp .env.example .env

これにより、Dockerリポジトリに新しい.envファイルが生成されます。次のステップは、MyScaleクラスターから取得した詳細をこのファイルに入力することです。

そのために、.envファイルを開き、次の手順に従ってください。

  • VECTOR_STOREMyScaleに設定します。
VECTOR_STORE=MyScale
  • MyScale Cloudを使用している場合は、関連する設定を調整します(MyScale_DATABASEは変更しないでおいても構いません)。MyScale Cloudを使用していない場合は、次の設定に変更は必要ありません。
MYSCALE_HOST=ここにホスト名を入力
MYSCALE_PORT=8443
MYSCALE_USER=ここにユーザー名を入力
MYSCALE_PASSWORD=ここにパスワードを入力
MYSCALE_DATABASE=default
MySCALE_FTS_PARAMS=

MyScaleDBは、大量のテキストデータセットを検索することが容易な強力な全文検索機能を提供しています。MySCALE_FTS_PARAMS変数を使用して、トークン化の設定や大文字と小文字の区別の調整など、これらの検索パラメータを設定することができます。これにより、検索が特定のニーズに最適化された状態で行われます。

このブログでは、デフォルトのトークナイザーを使用してシンプルにします。これを行うには、.envファイルに次の行を追加するだけです。

MySCALE_FTS_PARAMS='{"text":{"tokenizer":{"type":"default"}}}'

注意: 中国語のドキュメントなど、複数の言語をサポートする必要がある場合は、MyScale公式ドキュメント (opens new window)を参照してMyScale_FTS_PARAMSパラメータを設定してください。

  • これらの変更を行った後、次のようにDifyを起動します。
docker compose up -d

注意: 上記のコマンドを入力する前に、システムにDockerがインストールされていて実行されていることを確認してください。Dockerがインストールされていない場合は、公式のDockerウェブサイト (opens new window)からダウンロードしてインストールすることができます。

上記のコマンドは、必要なサービスを起動します(Docker Composeが必要なアプリケーションを起動します)。すべてのサービスが「started」の状態になったら、ブラウザを開き、http://localhost (opens new window)に移動してDifyを使用し始めることができます。以下のようなログインページが表示されます。

ログインページ dify

次のステップは、管理者アカウントを設定し、Difyにサインインすることです。ログインすると、ホームページに移動します。

ホームページ dify

この時点で、DifyプラットフォームとMyScaleDBがスムーズに動作しています。次に、チャットボットの実際の実装に進むことができます。

Boost Your AI App Efficiency now
Sign up for free to benefit from 150+ QPS with 5,000,000 vectors
Free Trial
Explore our product

# MyScaleとDifyでチャットボットを構築する

# ステップ1: ナレッジベースの設定

すべてが設定されたので、チャットボットの構築を開始する準備が整いました。まず必要なのは、チャットボットがユーザーのクエリに応えるために使用するナレッジベースです。始めるには、「Knowledge」ボタンをクリックし、ナレッジベースとして使用するファイルをアップロードします。

Difyでは、Notionやウェブサイトとの同期など、さまざまなソースからデータを組み込むことができます。

ナレッジ dify

注意: ナレッジベースでは、MyScaleDB Vs Zilliz (opens new window)MyScale Vs Pinecone (opens new window)の2つの記事の内容を組み合わせました。

# ステップ2: ナレッジベースのオプションをカスタマイズ

ファイルをアップロードした後、チャンクサイズの調整、埋め込みモデルの選択、実装する検索のタイプなど、いくつかのカスタマイズオプションにアクセスできます。

オプション dify

検索方法については、テキストデータに対して検索クエリを効率的に行うために、フルテキスト検索オプションを選択します。

注意: 「High Quality」の埋め込みには、OpenAIの埋め込みモデル (opens new window)を使用しています。環境でOpenAIキー (opens new window)を設定するには、右上隅のプロフィールをクリックし、設定に移動して、使用するプラットフォームのキーを設定します。

「保存して処理」ボタンをクリックすると、システムが数秒かかって埋め込みを生成し、データをナレッジベース(MyScaleDB)に保存します。データが保存されたら、ナレッジベースの設定は完了です。

# ステップ3: チャットボットの作成と設定

これで、スタジオからチャットボットのテンプレートを選択し、ナレッジベースを統合する準備が整いました。 スタジオで「Chatbot」を選択し、「Create APP」メニューの「Create from Blank」をクリックします。次のステップについてのガイドが表示されるポップアップウィンドウが表示されます。

チャットボットメニュー

「Create」ボタンをクリックすると、新しいウィンドウが表示され、プロンプトを入力し、作成したナレッジベースをコンテキストとして追加することができます。

# ステップ4: チャットボットにナレッジベースを追加

「Context」ウィンドウで「+Add」ボタンをクリックすると、追加したナレッジベースのファイルのリストが表示されます。使用するファイルを選択し、「Add」ボタンをクリックします。これにより、チャットボットが正確な応答を提供するための適切なコンテキストを持つようになります。

チャットボットオプション

同様に、指示ボックス内にチャットボットに特定の指示を提供することもできます。

プロンプト

# ステップ5: チャットボットの公開と展開

チャットボットの準備が整いました!最後のステップは、公開することです。右上隅の「Publish」ボタンをクリックすると、次のようなメニューが表示されます。

チャットボットの最後のステップ

変更内容を保存するには、「Updateボタン」をクリックします。その後、「Run App」ボタンをクリックすると、新しいチャットウィンドウが開きます。

注意: チャットボットが準備できたら、Difyを使用して簡単に埋め込むことができます。埋め込みコードをコピーするには、「ウェブサイトに埋め込む」オプションを選択します。これにより、チャットボットをウェブサイトやアプリケーションにシームレスに統合することができます。

「Start Chat」をクリックして、チャットボットを使用する準備が整いました。

チャットボットの実行

まとめると、DifyとMyScaleDBを使用して、使いやすさと強力な検索機能を組み合わせたチャットボットを構築しました。このセットアップにより、ニーズに合ったAI駆動のアプリケーションを作成するための堅牢な基盤が得られます。さあ、チャットボットを活用しましょう!

Join Our Newsletter

# 結論

Dify.AI (opens new window)は、AI開発を誰にでもアクセス可能にするために設計された高度なオープンソースプラットフォームです。ビジュアルプロンプトのオーケストレーションや簡単な統合オプションなど、包括的なツールセットを提供し、幅広い技術的な専門知識を必要とせずに強力なAIアプリケーションを作成することができます。Difyは、AI開発の従来の障壁を取り除くことに重点を置いており、複雑なAIソリューションを迅速かつ効率的に展開することができます。

一方、MyScaleDBは、大規模なデータ操作を効果的に処理する信頼性のあるSQLベースのベクトルデータベース (opens new window)として、Difyを補完します。SQLとの互換性と強力な検索機能により、効果的なデータ管理が必要なAIアプリケーションに最適です。MyScaleDBを使用することで、AIソリューションをスケーラブルかつ高性能にすることができます。これは、Difyの使いやすいツールと手を組んでいます。

さらに、MyScaleDBでは、新規ユーザーに対して無料の開発ティアを提供しており、最大5百万ベクトル(768d)を格納することができます。初期費用なしでAIアプリケーションを探索し、構築することを目指す方には優れたオプションです。

RAG/GenAIアプリケーションの構築についてさらに議論したい場合は、Twitter (opens new window)またはDiscord (opens new window)でお気軽にお問い合わせください。

Keep Reading
images
専門のベクトルデータベースに未来を築くべきではない

AIの台頭に伴い、ベクトルデータベースは大規模で高次元のデータを効率的に格納、管理、検索する能力から注目を集めています。この能力は、テキスト、画像、動画などの非構造化データを扱うAIおよび生成AI(GenAI)アプリケーションにとって重要です。 ベクトルデータベースの主な目的は、従来のデータベースが提供するキーワード検索ではなく、類似性検索の機能を提供することです。このコンセプトは、ChatGP ...

images
MyScale Telemetry を使用した LLM アプリケーションのトレースと評価:LangSmith のオープンソースの代替手段

急速に進化する LLM アプリケーションの分野では、堅牢なオブザーバビリティを実現することが、最適なパフォーマンスと信頼性を確保するために重要です。 しかし、LLM アプリケーションのトレースとランタイムイベントの保存は、その複雑さとスケールのために容易ではありません。これらの課題に対処するために、 [MyScale Telemetry](https://github.com/myscale/my ...

images
ベクトルデータベースを使用した高度なFacebookイベントデータ分析の実施

現代のデジタル時代において、あらゆる業界の専門家は、近日開催されるイベント、会議、ワークショップについて常に最新の情報を得ておく必要があります。しかし、オンライン情報の広大な海の中で自分の興味と一致するイベントを効率的に見つけることは、大きな課題です。 このブログでは、この課題に対する革新的な解決策を紹介します。Facebookからイベン ...

Start building your Al projects with MyScale today

Free Trial
Contact Us