用 AIGNE 在 10 分鐘內打造一個類似 Perplexity 的知識搜尋應用

透過我們的無程式碼應用引擎 AIGNE,不用寫一行程式碼,就能在 10 分鐘內打造出一個類似 Perplexity.ai 的應用程式!
以下這支影片會讓你概略了解 Perplexity 是什麼,以及我們如何用 AIGNE 來實作它。
以下是相關連結,你可以親自體驗看看:
- Perplexity: https://perplexity.ai
- Mockplexity: https://www.aigne.io/demos/mockplexity
當然,我們花 10 分鐘做出來的這個 Demo App,雖然功能類似,但和一家估值 10 億美元公司的旗艦產品相比,在細節上還是有不小的差距。😂 相信讀者能理解,這只是一個 Demo。
什麼是 Perplexity.ai?
Perplexity.ai 是一個以人工智慧為基礎的對話式搜尋引擎,能運用自然語言預測文字來回答查詢。
它是全球第一個結合對話與連結的搜尋引擎,能夠辨識並回應模糊或抽象的自然語言查詢。這家公司成立於 2022 年,總部位於舊金山,已募得超過 1.65 億美元的資金,估值超過 10 億美元。
以下是 Perplexity 針對「What is ArcBlock」這個問題的回答,整合了來自各方的資訊:

Perplexity 的實作原理
Perplexity 的基本原理其實非常簡單,再讓大型語言模型把搜尋結果整理成更易讀、更完整的內容。近來像 Google、Bing 等搜尋引擎,也都開始在搜尋結果頁面呈現更易讀的摘要資訊,其背後的實作原理是類似的。
舉例來說,直接在 Google 上搜尋「What's ArcBlock」,會得到以下結果:

可以看到這個頁面上其實有相當多的相關資訊,但我們得逐一閱讀並自行整理。過去我們用搜尋引擎做研究時,常常就是這種狀況。Perplexity 做的,就是在大型語言模型的支援下,把這個彙整摘要的過程自動化。
更複雜、更深入的實作方式,還可以運用大型語言模型支援的多輪對話機制,或是像 CoT(Chain of Thoughts,思維鏈)這類類似的機制,進一步研究與精煉內容,運用多個不同的搜尋引擎,並深入內部連結取得更多內容,藉此得出更全面的結論。
用 AIGNE 在 10 分鐘內達成
用 AIGNE 來實作 Perplexity 非常簡單,你只需要定義一個 AI Agent 就能輕鬆做到。也就是說,只要你懂上述原理,並且熟練使用 AIGNE,完全可以在 10 分鐘內做出這個基礎版本。
輸入(Inputs)
AIGNE 裡的每個 AI Agent 都包含三個部分、處理、輸出。
我們的 AIGNE 輸入有一項獨特的設計 Agent。這是一種「函式化」或「模組化」的設計方式,能用非常簡單優雅的方法,去解決那些用流程式思維可能很複雜、很難描述清楚的問題。

在這裡,我們的輸入除了來自使用者提問的 question 之外,還有另一個輸入 searchResult,也就是搜尋引擎回傳的結果,而搜尋引擎的呼叫在 AIGNE 中是一個可安裝的 Agent,使用者可以直接使用。

目前我們只提供內建的 Google 搜尋,但可以視需求擴充,方法包括安裝新的 Blocklet,或是自行實作一個 Agent 來串接任何其他外部搜尋 API。
處理(Processing)
這裡我們使用大型語言模型的 Prompt。以下是我們這個 Demo 中 Prompt 的寫法:
Use the following context as your learned knowledge, inside <context></context> XML tags.
<context>
{{ searchResult }}
</context>
When answer to user:
- If you don't know, just say that you don't know.
- If you don't know when you are not sure, ask for clarification.
Avoid mentioning that you obtained the information from the context.
And answer according to the language of the user's question.
If there are obviously irrelevant items in the list of the context, ignore those.
When possible, categorize the answers as lists for easy reading.
Write a comprehensive report at least 3 paragraph and try the best to cover everything in the context. 可以看到,searchResult 被當作 Prompt 的一部分使用,在執行時,Google 搜尋結果就會被填入這個位置。
這個 Prompt 相當簡單直白,你可以用自己的語言撰寫這個 Prompt,並盡可能把你對 LLM 的要求寫得詳細一點。你可以自己動手修改它,體驗這些 Prompt 修改所帶來的變化。這個過程能幫助你理解大型語言模型的運作方式。
輸出(Outputs)
如果說 AIGNE 有什麼「魔法」,那所有的「魔法」都定義在輸出這個部分:

可以看到,每個 AI Agent 的輸出支援許多不同的變數,使用者可以持續擴充這些變數。這些輸出變數,都可以綁定到我們 Pages Kit 所定義的頁面結構範本(Layout)與元件範本上,藉此渲染出各種所需的結果。
在 Mockplexity 中,我們只用到系統提供的幾個最基本範本,例如 simple chat。這個範本類似於對話介面,但我們關閉了對話中常見的元素,像是使用者名稱和頭像。至於內容的輸出,我們以清單形式呈現搜尋結果,並以 Markdown 格式輸出內文。這些組合共同構成了一個類似 Perplexity 的介面。

你可以在 AIGNE Studio 中逐一定義這些輸出變數,這正是打造豐富多彩應用程式輸出效果的關鍵所在。在這裡,你還能與 Blocklet 結合並擴充,用這種方式幾乎可以定義出應用程式所需的任何介面。
以下是 Mockplexity 最終運作的樣子,你可以自己動手修改調整,體驗看看會產生什麼樣的變化。

其他類似 Perplexity 的專案
Perplexity 剛推出時確實讓不少人驚豔,但大家很快就發現,它其實只是一個更好的使用者介面,因此也有不少其他專案採用了類似的風格,做出與它相似的介面。
也有許多開源專案示範了如何自行實作出類似的效果,有興趣的開發者可以自行搜尋,發現許多類似的開源實作。
除了不同的實作方式之外,我們也看到一些產品使用類似的介面來執行特定功能。例如 devv.ai 就是一個專門解決開發者問題的搜尋服務,它採用了類似 Perplexity 的介面,但其主要資訊來源是與軟體開發相關的服務。

如何把這個 Demo 變成真正的產品
我們花 10 分鐘做出來的這個 Demo App,雖然功能類似,但在使用者體驗、設計風格、功能完整度等細節上,和一家估值 10 億美元公司的旗艦產品相比仍有不足之處。
相信讀者能理解,這只是一個 Demo,目的是展示基本功能與潛力,但要如何在這個 Demo 的基礎上進一步優化改進,變成一個更成熟的產品呢?這裡我提供一些想法,可以作為引子:
- 支援更多搜尋後端,例如來自企業私有資料的搜尋,這正是去中心化部署帶來的最大優勢。
- 作為特定業務的搜尋介面,類似 Perplexity 的介面已經證明了它的易用性,可以把這個 AIGNE 產生的功能與自己的業務搜尋結合起來。
- 結合其他功能,你可以把 Mockplexity 搜尋出來的內容存到自己的筆記、部落格或知識庫中(這可以透過我們的 Discuss Kit Blocklet 來實現),打造出一套研究筆記的知識系統。
更多創新的應用構想,還需要你自己去探索。有一點很關鍵 打造出來的應用程式,是基於 ArcBlock 平台的去中心化應用程式,相較於像 Perplexity 這樣的 SaaS 服務,在資料隱私、安全性、私有化部署等方面都有更大的優勢。
本頁涉及
產品
-
AIGNE
active
面向開發者的 agent 開發框架。從命令列建立並執行一個專案,需要細節時再查框架文件。