[AI Perplexica] 深入解析,AI 架构揭秘

2024-07-03 11:35:05 浏览数 (1)

  • [AI Perplexica] AI驱动的开源搜索引擎

上一篇文章,我们对 Perplexica 做了个基本介绍,包括特点,以及如何安装。

今天,我们来深入看下 Perplexica 的架构。

Perplexica 的架构

Perplexica 的架构由以下关键组件组成:

  1. 用户界面: 一个基于网页的界面,允许用户与 Perplexica 互动以搜索图像、视频等内容。
  2. 代理/链: 这些组件预测 Perplexica 的下一步动作,理解用户查询,并决定是否需要进行网络搜索。
  3. SearXNG: 一个用于网络搜索的元数据搜索引擎。
  4. 大型语言模型 (LLMs): 代理和链利用大型语言模型来执行任务,如理解内容、撰写回应和引用来源。例子包括 Claude、GPT 等。
  5. 嵌入模型: 为了提高搜索结果的准确性,嵌入模型使用相似性搜索算法(如余弦相似性和点积距离)对结果进行重新排序。

Perplexica 如何工作?

我们将通过一个用户询问 “空调是如何工作的?” 的示例来理解 Perplexica 的工作原理。我们将分步骤解释这个过程,以便更容易理解。步骤如下:

  1. 通过 WS 将消息发送到后台服务器,在那里它调用链。链将取决于您的焦点模式。在本例中,我们假设使用 “webSearch” 焦点模式。
    • 消息通过 web socket 发送
  2. 链现在被调用;首先,将消息传递到另一条链,在那里它首先预测(使用聊天记录和问题)是否需要来源和网络搜索。如果需要,它将生成一个查询(根据聊天记录)进行网络搜索,我们将在稍后讨论。如果不需要,链将在此结束,然后启动答案生成链,也称为响应生成器。
    • 这部分,也可以称为 query rewrite 或者 pre-llm
  3. 第一条链返回的查询被传递到 SearXNG 以搜索网络信息。
    • 传统搜索,这里使用 SearXNG
  4. 检索信息后,它基于关键词搜索。然后我们将信息和查询转换为嵌入,并进行相似性搜索,以找到最相关的来源来回答查询。
    • 传统搜索引擎返回信息较多,用 embedding model 进行相似性搜索
  5. 完成所有这些操作后,来源被传递给响应生成器。此链获取所有聊天记录、查询和来源,并生成一个响应,该响应会被流式传输到 UI。
    • 这里应该是调用 LLM ,传聊天记录,查询,来源,一起给 LLM ,然后 LLM 生成答案,流式传给 UI

答案如何引用?

LLMs 被提示这样做。我们提示它们很好地自行引用答案,并使用一些 UI 魔法将其显示给用户。

图片和视频搜索

图片和视频搜索以类似的方式进行。首先生成查询,然后我们在网上搜索与查询匹配的图片和视频。然后将这些结果返回给用户。


  • gitlab
  • AI 博客 - 从零开始学AI
  • 公众号 - 从零开始学AI

0 人点赞