このリポジトリは、Dataworkz RAG Builder を利用したサンプル QnA アプリケーションを提供し、複数のデータセットに対する RAG の力を実証します。このセクションでは、ローカル マシン上で実行されるサンプル QnA アプリケーションを取得する方法を説明します。 Dataworkz RAG Builder の詳細については、ここにジャンプしてください
git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
を使用して、リポジトリ dataworkz-qna-app のクローンを作成します。
必要に応じて、プラットフォームに node.js をインストールします (ノード バージョン > 16.0.0)。
サンプルのデフォルトの API キーは、このプロジェクトに含まれています。さらなる開発のために独自のアカウントを作成する予定がない限り、ステップ 4 と 5 は無視してかまいません。
Dataworkz RAG QnA サービスにアクセスするには、Dataworkz API キーが必要です。 API キーを生成する手順は次のとおりです。注: API キー名はすべてのユーザー間で一意である必要があるため、それに応じて名前を選択してください。
生成された API キーをtoken.txt
ファイルに配置します。このファイルはsrc/assets/token.txt
にあります。
npm install
実行して依存関係をインストールします。
npm run start
実行して、サンプル QnA アプリケーションをホストするローカル Web サーバーを実行します。アプリケーションにアクセスするには、ブラウザを開いてhttp://localhost:4200
に移動します。
サンプル QnA アプリケーションに関する問題がある場合は、「問題」で報告してください。
Dataworkz は、企業向けの RAG アプリ開発を簡素化します。 Dataworkz は RAG as a Service を提供するため、パブリック LLM API またはプライベートでホストされているオープンソース基盤モデルを利用して、独自のデータを使用して GenAI アプリケーションを構築できます。
Dataworkz の RAG ビルダーは、GenAI アプリケーションの構築を合理化し、ターンキー ソリューションのつなぎ合わせに伴う複雑さを解消します。構成可能な AI スタックは、ベクトル データベース、埋め込みモデル、チャンキング戦略、LLM モデルを選択する機能を提供します。 AWS Bedrock や OpenAI などのパブリック LLM API を柔軟に使用したり、VPC でオープンソース モデルをホストしたりできます。
高度な RAG アプリケーションの場合、Dataworkz は語彙およびセマンティック検索とメタデータ フィルタリングを組み合わせる機能を提供し、これにより RAG アプリケーションが大量の非構造化データ、半構造化データ、または構造化データを処理できるようになります。
Dataworkz は、SaaS サービス、リレーショナル データベース、NoSQL データベース、クラウド オブジェクト ストアに保存されているファイルなど、ビジネス データのさまざまなソースに接続し、コードなしの変換を提供して、独自のデータを任意の形式で LLM アプリケーションに使用できるようにします。複数のソースからのデータを結合する場合、LLM 応答を生成するためのコンテキストの構築に使用される入力ソースの優先順位を構成することもできます。コネクタの完全なリストはここから入手できます。
RAG ビルダーは、あらゆる開発者が GenAI アプリケーションを既存のワークフローに組み込むための API を提供し、外観と操作性を完全にカスタマイズできます。このリポジトリのサンプル アプリケーションは、その機能にこの API を利用しています。このアプリへの API 統合と、それを独自のアプリケーションで使用する方法に関するセクションがあります。
幻覚の出現は、企業内での Gen AI の広範な導入において顕著な障害となっています。 Dataworkz を使用すると、GenAI がその起源を参照できるようになり、結果としてトレーサビリティが強化されます。 Dataworkz が LLM の応答を評価する方法については、Dataworkz のブログを参照してください。
このセクションでは、サンプル アプリケーションがどのように構築されたか、およびさまざまなセクションを強化するためにどの API が使用されたかについて、開発者向けのメモをいくつか提供します。独自のアプリケーションに統合された API と質問と回答のシステムを試すことができます。 API キーを生成し(すでに生成されている場合は同じキーを使用できます)、このサービスに接続できます。
Dataworkz は戦略的パートナーと協力して、当社のテクノロジーがどのように統合されているかを実証しています。このサンプル QnA アプリケーションは、バックエンド RAG Partner Playground サービスとして https://ragapps.dataworkz.com に接続します。この Partner Playground サービスは、Dataworkz と MongoDB Atlas Vector Search がどのように連携して、Uber などの上場企業の 10,000 件の提出書類などの公開ドキュメント用の QnA システムを作成するかを示します。
サンプル QnA システムは、Dataworkz RAG Builder API を使用して QnA システムをリストし、このデータセットに対して豊富なクエリを作成する方法を示します。
API キーの取得方法と、それを使用して Dataworkz QnA API を呼び出す方法については、「API キーの生成」セクションを参照してください。 QnA アプリケーションの例では、API トークンはSWSS <api-key>
形式を使用してAuthentication
ヘッダーで渡されます。
Dataworkz RAG Builder は、複数の分離された QnA システムの構成をサポートします。 QnA システムは、質疑応答システムのドメインとして使用され、複数のプロジェクト、ソースのグループ、大規模な言語モデル、バージョン、またはプロジェクト内の異なる関連のないサブドメインなどを分離するために活用できます。アプリケーションには 1 つ以上のドメインが存在する場合があります。 QnA システム。質問するときは、特定の QnA システムに対して質問されます。
QnA サンプル アプリケーションは、ユーザーが興味のあるものを選択できるように、すべての QnA システムを (カードとして) リストすることから始まります。アプリケーション開発者は、ユーザーが選択できるようにシステムをリストするか、コンテキストから選択が明らかな場合はシステムをリストするかを選択できます。それをコードにまとめます。
利用可能なすべての QnA システムを一覧表示する API は次のとおりです - https://ragapps.dataworkz.com/api/qna/v1/systems。選択した QnA systemId は、後続の API で必要になります。
個々の QnA システムに関する情報は、この API (https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}) を使用して取得されます。これは、サンプル QnA アプリケーションで個々の QnA システム カードを設定するために使用されます。
質問には、Dataworkz RAG Builder で構成された LLM によって回答されます。システム用に構成された LLM は、OpenAI、プライベート ホスト モデル (Llama-2 など)、Google の Vertex AI (サンプル アプリはこれらの 1 つ以上をサポートできます) からのものにすることができます。この API は、QnA システムごとに構成された LLMProviders のリストを提供します - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
サンプル QnA アプリケーションでは、これを使用して LLMProviders ドロップダウンを設定し、ユーザーが質問に回答するために使用する LLM を選択できるようにします。質問するために使用する LLMProvider の ID を保存する必要があります。この API 呼び出しによって返されたllmProviderId
によって識別される特定の LLM プロバイダーに質問できます。
Dataworkz QnA システムに質問するための API は、https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer です。
この API には、対象とする QnA システムのsystemId
、使用する LLM のllmProviderId
必要です。サンプル QnA アプリケーションは、この API を利用して「ナレッジ検索」ページを強化します。この API の応答には、LLM からの応答と、その応答をバックアップする信頼できるソースへのリンクが含まれます。
QnA アプリケーションの例では、QnA システムから以前に寄せられた質問のリストが提供されます。これは、ユーザーが以前に回答した質問を参照するのに便利な方法です。次の API が使用されます - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory
Dataworkz は、以前に回答した質問のリストと、回答の質に関する追加のスコアと分析を提供します。詳細については、こちらをご覧ください。サンプル QnA アプリケーションは、この API を使用して、回答された各質問の詳細を提供します - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}