此儲存庫提供了由 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(Node 版本 > 16.0.0)。
該專案中包含範例的預設 API 金鑰。您可以忽略步驟 # 4 和 # 5,除非您打算建立自己的帳戶以進行進一步開發。
您將需要 Dataworkz API 金鑰才能存取 Dataworkz RAG QnA 服務。以下是產生 API 金鑰的步驟。注意: API 金鑰名稱在所有使用者中必須是唯一的,因此請相應地選擇名稱。
將產生的 API 金鑰放入token.txt
檔案中。您可以在src/assets/token.txt
找到該檔案。
執行npm install
以安裝相依性。
執行npm run start
以執行託管範例 QnA 應用程式的本機 Web 伺服器。要存取應用程序,請開啟瀏覽器並導航至http://localhost:4200
請在問題中報告範例 QnA 應用程式的任何問題
Dataworkz 簡化了企業的 RAG 應用程式開發。 Dataworkz 提供 RAG 即服務,以便您可以使用專有資料、利用公共 LLM API 或私人託管的開源基礎模型來建立 GenAI 應用程式。
Dataworkz 的 RAG 建構器簡化了 GenAI 應用程式的構建,消除了與交鑰匙解決方案拼接在一起相關的複雜性。可組合的 AI 堆疊提供了選擇向量資料庫、嵌入模型、分塊策略和 LLM 模型的能力。您可以靈活地使用公共 LLM API(包括 AWS Bedrock 和 OpenAI)或在 VPC 中託管開源模型。
對於高級 RAG 應用程序,Dataworkz 提供了將詞彙和語義搜尋與元資料過濾相結合的能力,從而使 RAG 應用程式能夠處理大量非結構化、半結構化或結構化資料。
Dataworkz 連接到不同的業務資料來源 - SaaS 服務、關聯式資料庫、NoSQL 資料庫、儲存在雲端物件儲存中的文件,並提供無程式碼轉換,使任何格式的專有資料為 LLM 應用程式做好準備。組合來自多個來源的資料時,您也可以設定用於建立用於產生 LLM 回應的上下文的輸入來源的優先順序。連接器的完整清單可在此處找到。
RAG 建構器為任何開發人員提供 API,將 GenAI 應用程式嵌入到他們現有的工作流程中,並具有完全的靈活性來客製化外觀和感覺。此儲存庫中的範例應用程式利用此 API 來實現其功能。我們有一節介紹此應用程式中的 API 整合以及如何在您自己的應用程式中使用它。
幻覺的出現為企業內廣泛採用 Gen AI 帶來了顯著的障礙。 Dataworkz 使 GenAI 能夠參考其起源,從而增強可追溯性。閱讀 Dataworkz 博客,了解 Dataworkz 如何評估 LLM 的反應。
在本節中,我們提供了一些關於如何建立範例應用程式以及使用哪些 API 來支援各個部分的開發人員說明。您可以嘗試將 API 和問答系統整合到您自己的應用程式中。您可以產生 API 金鑰(如果已經生成,則可以使用相同的金鑰)並連接到此服務。
Dataworkz 正在與策略合作夥伴合作,展示我們的技術如何整合在一起。此範例 QnA 應用程式連接到 https://ragapps.dataworkz.com 作為後端 RAG Partner Playground 服務。該合作夥伴遊樂場服務展示了 Dataworkz 和 MongoDB Atlas Vector Search 如何協同工作,為 Uber 等上市公司的 10,000 份公開文件建立 QnA 系統。
範例 QnA 系統示範如何使用 Dataworkz RAG Builder API 列出 QnA 系統並針對此資料集進行豐富的查詢。
請參閱 API 金鑰產生部分,了解如何取得 API 金鑰以及如何使用它來呼叫 Dataworkz QnA API。在範例 QnA 應用程式中,API 令牌使用SWSS <api-key>
形式在Authentication
標頭中傳遞。
Dataworkz RAG Builder 支援配置多個獨立的 QnA 系統。 QnA 系統用作問答系統的域,可用於分離多個專案、來源群組、大型語言模型、版本或專案中不同的不相關子網域等。當提出問題時,系統會針對特定的 QnA 系統提出問題。
QnA 範例應用程式首先列出所有 QnA 系統(作為卡片),供使用者選擇她感興趣的系統。它在代碼中。
以下是列出所有可用 QnA 系統的 API - https://ragapps.dataworkz.com/api/qna/v1/systems。後續 API 中將需要選擇的 QnA systemId。
使用此 API 檢索有關每個 QnA 系統的資訊 - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}。這在範例 QnA 應用程式中用於填充各個 QnA 系統卡。
問題由 Dataworkz RAG Builder 中配置的法學碩士回答。為系統配置的 LLM 可以來自 OpenAI、私有託管模型(如 Llama-2)和 Google 的 Vertex AI(範例應用程式可以支援其中的一個或多個)。此 API 提供了 QnA 系統配置的 LLMProvider 清單 - 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}