RAG+AI工作流+Agent:LLM框架該如何選擇,全面對比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推薦

汀、人工智能發表於2024-07-30

RAG+AI工作流+Agent:LLM框架該如何選擇,全面對比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推薦

1.MaxKB

MaxKB = Max Knowledge Base,是一款基於 LLM 大語言模型的開源知識庫問答系統,旨在成為企業的最強大腦。它能夠幫助企業高效地管理知識,並提供智慧問答功能。想象一下,你有一個虛擬助手,可以回答各種關於公司內部知識的問題,無論是政策、流程,還是技術文件,MaxKB 都能快速準確地給出答案:比如公司內網如何訪問、如何提交視覺設計需求等等

官方網址:https://maxkb.cn/

1.1 簡介

  1. 開箱即用:支援直接上傳文件、自動爬取線上文件,支援文字自動拆分、向量化、RAG(檢索增強生成),智慧問答互動體驗好;

  2. 無縫嵌入:支援零編碼快速嵌入到第三方業務系統,讓已有系統快速擁有智慧問答能力,提高使用者滿意度;

  1. 靈活編排:內建強大的工作流引擎,支援編排 AI 工作流程,滿足複雜業務場景下的需求;

  1. 模型中立:支援對接各種大語言模型,包括本地私有大模型(Llama 3 / Qwen 2 等)、國內公共大模型(通義千問 / 智譜 AI / 百度千帆 / Kimi / DeepSeek 等)和國外公共大模型(OpenAI / Azure OpenAI / Gemini 等)。

1.2技術框架和原理

  • 技術棧
    • 前端:Vue.js、logicflow
    • 後端:Python / Django
    • Langchain:Langchain
    • 向量資料庫:PostgreSQL / pgvector
    • 大模型:Ollama、Azure OpenAI、OpenAI、通義千問、Kimi、百度千帆大模型、訊飛星火、Gemini、DeepSeek等。

2.Dify

Dify 是一款開源的大語言模型(LLM) 應用開發平臺。它融合了後端即服務(Backend as Service)和 LLMOps 的理念,使開發者可以快速搭建生產級的生成式 AI 應用。即使你是非技術人員,也能參與到 AI 應用的定義和資料運營過程中。

由於 Dify 內建了構建 LLM 應用所需的關鍵技術棧,包括對數百個模型的支援、直觀的 Prompt 編排介面、高質量的 RAG 引擎、穩健的 Agent 框架、靈活的流程編排,並同時提供了一套易用的介面和 API。這為開發者節省了許多重複造輪子的時間,使其可以專注在創新和業務需求上

  • 官網:https://dify.ai/zh

  • github:https://github.com/langgenius/dify?tab=readme-ov-file

2.1 簡介

Dify 是一個開源的 LLM 應用開發平臺。其直觀的介面結合了 AI 工作流、RAG 管道、Agent、模型管理、可觀測性功能等,讓您可以快速從原型到生產。以下是其核心功能列表:

  1. 工作流: 在畫布上構建和測試功能強大的 AI 工作流程,利用以下所有功能以及更多功能。

  2. 全面的模型支援: 與數百種專有/開源 LLMs 以及數十種推理提供商和自託管解決方案無縫整合,涵蓋 GPT、Mistral、Llama3 以及任何與 OpenAI API 相容的模型。

  3. Prompt IDE: 用於製作提示、比較模型效能以及向基於聊天的應用程式新增其他功能(如文字轉語音)的直觀介面。

  4. RAG Pipeline: 廣泛的 RAG 功能,涵蓋從文件攝入到檢索的所有內容,支援從 PDF、PPT 和其他常見文件格式中提取文字的開箱即用的支援。

  5. Agent 智慧體: 您可以基於 LLM 函式呼叫或 ReAct 定義 Agent,併為 Agent 新增預構建或自定義工具。Dify 為 AI Agent 提供了50多種內建工具,如谷歌搜尋、DELL·E、Stable Diffusion 和 WolframAlpha 等。

  6. LLMOps: 隨時間監視和分析應用程式日誌和效能。您可以根據生產資料和標註持續改進提示、資料集和模型。

  7. 後端即服務: 所有 Dify 的功能都帶有相應的 API,因此您可以輕鬆地將 Dify 整合到自己的業務邏輯中。

2.2 系統框架

工作流透過將複雜的任務分解成較小的步驟(節點)降低系統複雜度,減少了對提示詞技術和模型推理能力的依賴,提高了 LLM 應用面向複雜任務的效能,提升了系統的可解釋性、穩定性和容錯性。

Dify 工作流分為兩種型別:

  • Chatflow:面向對話類情景,包括客戶服務、語義搜尋、以及其他需要在構建響應時進行多步邏輯的對話式應用程式。

  • Workflow:面向自動化和批處理情景,適合高質量翻譯、資料分析、內容生成、電子郵件自動化等應用程式。

為解決自然語言輸入中使用者意圖識別的複雜性,Chatflow 提供了問題理解類節點。相對於 Workflow 增加了 Chatbot 特性的支援,如:對話歷史(Memory)、標註回覆、Answer 節點等。

為解決自動化和批處理情景中複雜業務邏輯,工作流提供了豐富的邏輯節點,如程式碼節點、IF/ELSE 節點、模板轉換、迭代節點等,除此之外也將提供定時和事件觸發的能力,方便構建自動化流程。

  • 常見案例

    • 客戶服務:透過將 LLM 整合到您的客戶服務系統中,您可以自動化回答常見問題,減輕支援團隊的工作負擔。 LLM 可以理解客戶查詢的上下文和意圖,並實時生成有幫助且準確的回答。

    • 內容生成:無論您需要建立部落格文章、產品描述還是營銷材料,LLM 都可以透過生成高質量內容來幫助您。只需提供一個大綱或主題,LLM將利用其廣泛的知識庫來製作引人入勝、資訊豐富且結構良好的內容。

    • 任務自動化:可以與各種任務管理系統整合,如 Trello、Slack、Lark、以自動化專案和任務管理。透過使用自然語言處理,LLM 可以理解和解釋使用者輸入,建立任務,更新狀態和分配優先順序,無需手動干預。

    • 資料分析和報告:可以用於分析大型資料集並生成報告或摘要。透過提供相關資訊給 LLM,它可以識別趨勢、模式和洞察力,將原始資料轉化為可操作的智慧。對於希望做出資料驅動決策的企業來說,這尤其有價值。

    • 郵件自動化處理:LLM 可以用於起草電子郵件、社交媒體更新和其他形式的溝通。透過提供簡要的大綱或關鍵要點,LLM 可以生成一個結構良好、連貫且與上下文相關的資訊。這樣可以節省大量時間,並確保您的回覆清晰和專業。

3.FastGPT

FastGPT是一個功能強大的平臺,專注於知識庫訓練和自動化工作流程的編排。它提供了一個簡單易用的視覺化介面,支援自動資料預處理和基於Flow模組的工作流編排。FastGPT支援建立RAG系統,提供自動化工作流程等功能,使得構建和使用RAG系統變得簡單,無需編寫複雜程式碼。

  • 官方:https://fastgpt.in/

  • github:https://github.com/labring/FastGPT

3.1 FastGPT 能力

  1. 專屬 AI 客服 :透過匯入文件或已有問答對進行訓練,讓 AI 模型能根據你的文件以互動式對話方式回答問題。
    • 多庫複用,混用
    • chunk 記錄修改和刪除
    • 原始檔儲存
    • 支援手動輸入,直接分段,QA 拆分匯入
    • 支援 txt,md,html,pdf,docx,pptx,csv,xlsx (有需要更多可 PR file loader)
    • 支援 url 讀取、CSV 批次匯入
    • 混合檢索 & 重排
  2. 簡單易用的視覺化介面 :FastGPT 採用直觀的視覺化介面設計,為各種應用場景提供了豐富實用的功能。透過簡潔易懂的操作步驟,可以輕鬆完成 AI 客服的建立和訓練流程。
  3. 自動資料預處理:提供手動輸入、直接分段、LLM 自動處理和 CSV 等多種資料匯入途徑,其中“直接分段”支援透過 PDF、WORD、Markdown 和 CSV 文件內容作為上下文。FastGPT 會自動對文字資料進行預處理、向量化和 QA 分割,節省手動訓練時間,提升效能。
  4. 工作流編排 :基於 Flow 模組的工作流編排,可以幫助你設計更加複雜的問答流程。例如查詢資料庫、查詢庫存、預約實驗室等。
    • 提供簡易模式,無需操作編排
    • 工作流編排
    • 工具呼叫
    • 外掛 - 工作流封裝能力
    • Code sandbox
  5. 強大的 API 整合 :FastGPT 對外的 API 介面對齊了 OpenAI 官方介面,可以直接接入現有的 GPT 應用,也可以輕鬆整合到企業微信、公眾號、飛書等平臺。

4.RagFlow

RAGFlow 是一款基於深度文件理解構建的開源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以為各種規模的企業及個人提供一套精簡的 RAG 工作流程,結合大語言模型(LLM)針對使用者各類不同的複雜格式資料提供可靠的問答以及有理有據的引用。

官網:https://ragflow.io/

Github:https://github.com/infiniflow/ragflow/blob/main

4.1 功能介紹

  • "Quality in, quality out"

    • 基於深度文件理解,能夠從各類複雜格式的非結構化資料中提取真知灼見。
    • 真正在無限上下文(token)的場景下快速完成大海撈針測試。
  • 基於模板的文字切片

    • 不僅僅是智慧,更重要的是可控可解釋。
    • 多種文字模板可供選擇
  • 有理有據、最大程度降低幻覺(hallucination)

    • 文字切片過程視覺化,支援手動調整。
    • 有理有據:答案提供關鍵引用的快照並支援追根溯源。
  • 相容各類異構資料來源

    • 支援豐富的檔案型別,包括 Word 文件、PPT、excel 表格、txt 檔案、圖片、PDF、影印件、影印件、結構化資料、網頁等。
  • 全程無憂、自動化的 RAG 工作流

    • 全面最佳化的 RAG 工作流可以支援從個人應用乃至超大型企業的各類生態系統。
    • 大語言模型 LLM 以及向量模型均支援配置。
    • 基於多路召回、融合重排序。
    • 提供易用的 API,可以輕鬆整合到各類企業系統。
  • 最近更新功能

    • 2024-07-23 支援解析音訊檔案.
    • 2024-07-21 支援更多的大模型供應商(LocalAI/OpenRouter/StepFun/Nvidia).
    • 2024-07-18 在Graph中支援運算元:Wikipedia,PubMed,Baidu和Duckduckgo.
    • 2024-07-08 支援 Agentic RAG: 基於 Graph 的工作流。

4.2 系統架構

5.Anything-LLM

AnythingLLM是一個全棧應用程式,您可以使用現成的商業大語言模型或流行的開源大語言模型,再結合向量資料庫解決方案構建一個私有ChatGPT,不再受制於人:您可以本地執行,也可以遠端託管,並能夠與您提供的任何文件智慧聊天。

AnythingLLM將您的文件劃分為稱為workspaces (工作區)的物件。工作區的功能類似於執行緒,同時增加了文件的容器化,。工作區可以共享文件,但工作區之間的內容不會互相干擾或汙染,因此您可以保持每個工作區的上下文清晰。

官方:https://anythingllm.com/

github:https://github.com/Mintplex-Labs/anything-llm

  • AnythingLLM的一些特性

    • 多使用者例項支援和許可權管理
    • 工作區內的智慧體Agent(瀏覽網頁、執行程式碼等)
    • 為您的網站定製的可嵌入聊天視窗
    • 支援多種文件型別(PDF、TXT、DOCX等)
    • 透過簡單的使用者介面管理向量資料庫中的文件
    • 兩種對話模式:聊天和查詢。聊天模式保留先前的對話記錄。查詢模式則是是針對您的文件做簡單問答
    • 聊天中會提供所引用的相應文件內容
    • 100%雲部署就緒。
    • “部署你自己的LLM模型”。
    • 管理超大文件時高效、低耗。只需要一次就可以嵌入(Embedding)一個龐大的文件或文字記錄。比其他文件聊天機器人解決方案節省90%的成本。
    • 全套的開發人員API,用於自定義整合!
  • 支援的 LLM、嵌入模型和向量資料庫

    • LLM:包括任何開源的 llama.cpp 相容模型、OpenAI、Azure OpenAI、Anthropic ClaudeV2、LM Studio 和 LocalAi。
    • 嵌入模型:AnythingLLM 原生嵌入器、OpenAI、Azure OpenAI、LM Studio 和 LocalAi。
    • 向量資料庫:LanceDB(預設)、Pinecone、Chroma、Weaviate 和 QDrant。
  • 技術概覽

    • 整個專案設計為單執行緒結構,主要由三部分組成:收集器、前端和伺服器。
    • collector:Python 工具,可快速將線上資源或本地文件轉換為 LLM 可用格式。
    • frontend:ViteJS + React 前端,用於建立和管理 LLM 可使用的所有內容。
    • server:NodeJS + Express 伺服器,處理所有向量資料庫管理和 LLM 互動。

6.更多LLM框架推薦

更多框架推薦參考下述文章:LLM框架、RAG框架、Agent框架

  • LLMops如何重塑AI-native新正規化的運維格局[行業正規化]、以及主流LLMops推薦
  • 國內大模型+Agent應用案例精選,以及主流Agent框架開源專案推薦

6.1 DB-GPT: 用私有化LLM技術定義資料庫下一代互動方式

DB-GPT是一個開源的AI原生資料應用開發框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。

目的是構建大模型領域的基礎設施,透過開發多模型管理(SMMF)、Text2SQL效果最佳化、RAG框架以及最佳化、Multi-Agents框架協作、AWEL(智慧體工作流編排)等多種技術能力,讓圍繞資料庫構建大模型應用更簡單,更方便。

資料3.0 時代,基於模型、資料庫,企業/開發者可以用更少的程式碼搭建自己的專屬應用。

  • github:https://github.com/eosphoros-ai/DB-GPT

6.1.1 架構方案

  • 核心能力主要有以下幾個部分:

    • RAG(Retrieval Augmented Generation),RAG是當下落地實踐最多,也是最迫切的領域,DB-GPT目前已經實現了一套基於RAG的框架,使用者可以基於DB-GPT的RAG能力構建知識類應用。

    • GBI:生成式BI是DB-GPT專案的核心能力之一,為構建企業報表分析、業務洞察提供基礎的數智化技術保障。

    • 微調框架: 模型微調是任何一個企業在垂直、細分領域落地不可或缺的能力,DB-GPT提供了完整的微調框架,實現與DB-GPT專案的無縫打通,在最近的微調中,基於spider的準確率已經做到了82.5%

    • 資料驅動的Multi-Agents框架: DB-GPT提供了資料驅動的自進化Multi-Agents框架,目標是可以持續基於資料做決策與執行。

    • 資料工廠: 資料工廠主要是在大模型時代,做可信知識、資料的清洗加工。

    • 資料來源: 對接各類資料來源,實現生產業務資料無縫對接到DB-GPT核心能力。

6.1.2 RAG生產落地實踐架構

6.2 Langchain-Chatchat

  • github:https://github.com/chatchat-space/Langchain-Chatchat

專案支援市面上主流的開源 LLM、 Embedding 模型與向量資料庫,可實現全部使用開源模型離線私有部署。與此同時,本專案也支援 OpenAI GPT API 的呼叫,並將在後續持續擴充對各類模型及模型 API 的接入。

原理如下圖所示:過程包括載入檔案 -> 讀取文字 -> 文字分割 -> 文字向量化 -> 問句向量化 -> 在文字向量中匹配出與問句向量最相似的 top k個 -> 匹配出的文字作為上下文和問題一起新增到 prompt中 -> 提交給 LLM生成回答。

7. 總結(選擇建議)

在選擇AI應用開發平臺時,瞭解不同平臺的功能、社群支援以及部署便捷性是非常重要的。

7.0 優劣勢選擇

MaxKB/Dify的優勢與劣勢

  • 優勢

    • 大模型接入靈活性:提供了多種大模型接入方式,支援多種API介面,使得開發者可以根據需求靈活選擇和切換模型,這對於需要高效能模型的應用場景尤為重要。

    • 強大的Chat功能:Chat功能不僅支援多輪對話,還能透過智慧推薦和上下文理解提升使用者體驗,適用於需要複雜互動的場景。

    • 豐富的知識庫支援:內建了知識庫管理系統,支援多種資料格式的匯入和匯出,便於使用者管理和利用知識資源。

    • 高效的Workflow設計:Workflow設計簡潔直觀,支援拖拽式操作,使得非技術人員也能快速上手,大大降低了使用門檻。

    • Prompt IDE:提供的Prompt IDE工具,讓開發者可以更直觀地除錯和最佳化提示詞,提升了開發效率。

  • 劣勢

    • 學習曲線:雖然介面設計較為友好,但對於初學者來說,仍需要一定時間來熟悉其工作流程和功能。

    • 社群支援:相較於一些成熟的開發平臺,社群活躍度和資源豐富度還有待提升,這可能會影響到開發者在遇到問題時的解決速度。

    • 定製化程度:雖然Dify提供了豐富的功能,但在某些高度定製化的需求上,可能還需要進一步的開發和調整。

FastGPT/RagFlow的優勢與劣勢

  • 優勢

    • Agent智慧體:Agent智慧體功能強大,能夠自動執行復雜任務,減少了人工干預的需求,適用於需要自動化處理大量任務的場景。

    • LLMOps支援:提供了LLMOps支援,使得開發者可以更方便地進行模型訓練、最佳化和部署,這對於AI模型的持續迭代和最佳化至關重要。

    • 後端即服務:提供了後端即服務的功能,簡化了後端開發流程,使得開發者可以更專注於前端和業務邏輯的開發。

    • 強大的RAG引擎:RAG引擎能夠高效地處理和檢索大量資料,適用於需要快速響應和高吞吐量的應用場景。

  • 劣勢

    • 功能複雜性:FastGPT的功能較為複雜,對於初學者來說,可能需要較長時間來掌握其使用方法和技巧。

    • 部署難度:相較於一些輕量級的開發平臺,FastGPT的部署過程可能更為複雜,需要一定的技術背景和經驗。

    • 使用者介面:雖然FastGPT的功能強大,但其使用者介面可能不如一些競爭對手直觀和友好,這可能會影響到使用者的使用體驗。

7.1 根據需求選擇平臺

選擇合適的平臺首先要明確自己的需求。Dify和FastGPT各有特點,適用於不同的應用場景。

  • MaxKB/Dify:適合需要快速構建和部署AI應用的開發者,提供了豐富的預設模板和整合工具,使得開發者可以快速上手,尤其適合初學者和需要快速驗證想法的團隊。

  • FastGPT/RagFlow:適合需要高度定製化和複雜工作流的企業級使用者,提供了強大的RAG引擎和Workflow orchestration,能夠處理複雜的業務邏輯和資料處理需求。

  • 在選擇平臺時,應考慮以下因素:

    • 專案規模:如果是小型專案或初創團隊,MaxKB/Dify的快速部署和簡單易用性可能更適合。如果是大型企業級專案,FastGPT/RagFlow的強大功能和定製化能力更為合適。

    • 技術棧:考慮團隊現有的技術棧和成員的技術背景。在技術實現上有所不同,選擇與團隊技術棧匹配的平臺可以減少學習成本和開發難度。

    • 功能需求:明確專案所需的核心功能,如大模型接入、Chat功能、知識庫等。Dify和FastGPT在這些功能上各有優勢,根據具體需求進行選擇。

7.2 社群與支援對比

社群支援和資源豐富度對於平臺的選擇也至關重要。

  • MaxKB/Dify:擁有一個活躍的社群,提供了豐富的文件、教程和示例程式碼。社群成員經常分享使用心得和解決方案,對於遇到的問題可以快速得到幫助。

  • FastGPT/RagFlow:社群相對較小,但提供了專業的技術支援團隊。對於企業級使用者,FastGPT提供了定製化的技術支援和諮詢服務,確保專案的順利進行。

  • 在選擇平臺時,應考慮以下因素:

    • 社群活躍度:活躍的社群意味著更多的資源和更快的解決問題速度。社群活躍度較高,適合需要快速解決問題的開發者。

    • 技術支援:對於企業級使用者,專業的技術支援至關重要。提供了專業的技術支援,適合對技術支援有較高要求的使用者。

7.3 部署與使用便捷性

部署和使用的便捷性直接影響開發效率和成本。

  • MaxKB/Dify:提供了簡單易用的介面和一鍵部署功能,使得開發者可以快速將應用部署到雲端或本地。文件詳細,適合初學者快速上手。

  • FastGPT/RagFlow:部署相對複雜,需要一定的技術背景和配置。提供了強大的定製化能力,適合對效能和功能有較高要求的使用者。

  • 在選擇平臺時,應考慮以下因素:

    • 部署難度:MaxKB/Dify的部署過程簡單,適合需要快速部署的開發者。FastGPT/RagFlow的部署相對複雜,但提供了更多的配置選項。

    • 使用便捷性:MaxKB/Dify的使用者介面友好,操作簡單。FastGPT/RagFlow的使用者介面相對複雜,但提供了更多的功能和定製化選項。

更多優質內容請關注公號:汀丶人工智慧;會提供一些相關的資源和優質文章,免費獲取閱讀。

更多優質內容請關注CSDN:汀丶人工智慧;會提供一些相關的資源和優質文章,免費獲取閱讀。

相關文章