AIGNEで10分以内にPerplexityのようなナレッジ検索アプリを作る

ノーコードアプリケーションエンジンAIGNEを使えば、コードを一行も書かずに10分以内でPerplexity.aiに似たアプリを作成できます!
以下の動画では、Perplexityとは何か、そしてAIGNEを使ってどのように実装するのかを大まかに理解できます。
以下のリンクから、実際にご自身で体験いただけます:
- Perplexity: https://perplexity.ai
- Mockplexity: https://www.aigne.io/demos/mockplexity
もちろん、10分で作ったこのデモアプリは、機能的には似ているものの、評価額10億ドル企業のフラッグシップ作品とは細部においてまだ差があります。😂 これはあくまでデモであることをご理解いただければと思います。
Perplexity.aiとは?
Perplexity.aiは、人工知能をベースにした会話型検索エンジンで、自然言語によるテキスト予測を用いてクエリに回答します。
対話とリンクを統合した世界初の検索エンジンであり、曖昧で抽象的な自然言語クエリを認識し応答することができます。同社は2022年に設立され、本社はサンフランシスコにあり、これまでに1億6500万ドル以上の資金を調達し、評価額は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は、入力・処理・出力の3つの部分で構成されています。
私たちのAIGNEの入力にはユニークな設計があります: 入力は別のAgentから来ることができるのです。これは「機能的」あるいは「モジュール的」な設計アプローチであり、手続き的な視点からは非常に複雑あるいは説明が難しい問題にも、シンプルでエレガントな方法で対処できるようになります。

ここでの入力は、ユーザーが質問するquestionに加えて、もう一つの入力であるsearchResultがあり、これは検索エンジンの返却結果です。検索エンジンの呼び出しはAIGNE内でインストール可能なAgentであり、ユーザーが直接使用できます。

現在はビルトインのGoogle検索のみを提供していますが、新しいBlockletをインストールしたり、他の外部検索APIに接続するAgentを実装したりすることで、必要に応じて拡張できます。
処理(Processing)
ここでは大規模言語モデルのプロンプトを使用します。以下は私たちのデモにおけるプロンプトの記述方法です:
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がプロンプトの一部として使用されており、実行時にGoogle検索の結果がここに埋め込まれることがわかります。
このプロンプトは非常にシンプルで直感的です。ご自身の言語でこのプロンプトを書くことができ、LLMへの要求をできるだけ詳細に記述することも可能です。ご自身でこれを修正して、プロンプトの変更によってもたらされる変化を体験してみてください。このプロセスは、大規模言語モデルがどのように機能するかを理解する助けになります。
出力(Outputs)
AIGNEに「マジック」があるとすれば、その「マジック」はすべて出力部分に定義されています:

各AI Agentの出力では、さまざまな変数をサポートしていることがわかり、ユーザーはこれらの変数を継続的に拡張できます。これらの出力変数はいずれも、Pages Kitで定義されたページ構造テンプレート(Layout)やコンポーネントテンプレートに紐付けることができ、必要な結果をさまざまな形でレンダリングできます。
Mockplexityでは、システムが提供する最も基本的なテンプレートのうちsimple chatなどいくつかのみを使用しています。このテンプレートは会話インターフェースに似ていますが、ユーザー名やアバターといった会話における一般的な要素はオフにしています。コンテンツの出力については、検索結果をリスト形式で表示し、コンテンツはMarkdown形式で出力します。これらの組み合わせによって、Perplexityに似たインターフェースが形作られています。

これらの出力変数はAIGNE Studioで一つひとつ定義でき、これが豊かで多彩なアプリケーション出力効果を生み出す鍵となります。ここではBlockletと組み合わせて拡張することができ、この方法を使えばアプリケーションに必要なほぼどんなインターフェースでも定義できます。
以下はMockplexityの最終的な動作の様子です。ご自身で修正・調整して、どのような変化が生まれるか体験してみてください。

Perplexityに似た他のプロジェクト
Perplexityは登場した当初、多くの人に鮮烈な印象を与えましたが、すぐに誰もがそれが優れたユーザーインターフェースにすぎないことに気づき、そのため他の多くのプロジェクトも同様のスタイルを採用して類似のインターフェースを実現するようになりました。
同様の効果を自分自身で実装する方法を示すオープンソースプロジェクトも数多くあり、興味のある開発者は検索することで多くの類似したオープンソース実装を見つけることができます。
さまざまな実装に加えて、特定の機能を果たすために類似のインターフェースを使用している製品もいくつか見られます。例えば、devv.aiは開発者の課題解決に特化した検索サービスで、Perplexityに似たインターフェースを採用していますが、その主な情報源はソフトウェア開発関連のサービスです。

このデモを実際の製品に発展させるには
10分で作ったこのデモアプリは、機能的には似ているものの、ユーザーエクスペリエンス、デザインスタイル、機能の完成度といった点で、評価額10億ドル企業のフラッグシップ作品と比べればまだ不足があります。
これはあくまでデモであり、基本的な機能と可能性を示すためのものだとご理解いただけるかと思いますが、このデモをベースにさらに最適化・改善して、より成熟した製品にするにはどうすればよいでしょうか?ここでいくつかのアイデアを、たたき台として挙げてみます:
- プライベート企業データからの検索など、より多くの検索バックエンドをサポートすることは、分散型デプロイがもたらす最大の利点です。
- 特定のビジネス向けの検索インターフェースとして、Perplexityに似たインターフェースはそのユーザーフレンドリーさをすでに証明しており、このAIGNEによって生成された機能を自社のビジネス検索と組み合わせることができます。
- 他の機能と組み合わせることで、Mockplexityで検索したコンテンツを自分自身のノート、ブログ、あるいはナレッジベースに保存し(これは私たちのDiscuss Kit Blockletを使って実現できます)、リサーチノートのナレッジシステムを形成することができます。
より革新的なアプリケーションのアイデアは、皆さん自身で探求していく必要があります。重要なのは、AIGNEによって構築されるアプリケーションはArcBlockプラットフォームをベースにした分散型アプリケーションであり、Perplexityのような SaaS サービスと比較して、データプライバシー、セキュリティ、プライベートデプロイなどの面でより大きな優位性を持っているという点です。
このページに関わるもの
製品
-
AIGNE
active
エージェントを構築する開発者向けのフレームワーク。コマンドラインからプロジェクトを作成して実行し、詳細が必要な部分はフレームワークのドキュメントを参照します。