从零开始用 SWIRL 框架实现 Perplexity 式的 AI 搜索引擎,涵盖多源聚合和智能问答。实战教程价值高。
Perplexity AI 是一款由 AI 驱动的搜索引擎。它能够结合搜索引擎与 AI 模型,为搜索查询提供答案,因此获得了广泛关注。
与 Bing、Google、Yahoo 等传统搜索引擎不同,Perplexity 使用大型语言模型来理解并回答查询,提供的不只是基于关键词的结果,而是与上下文真正相关的结果。
从上面的段落中,我们可以总结出三个重要因素。
借助 LLM 和一些 prompt engineering,将用户查询理解为自然语言。
具备从不同来源搜索并获取答案的能力。
汇总所有搜索结果,在引用来源的同时生成 AI 答案。(可选)对结果进行重新排序,让结果与用户的问题更加相关。
(可选)对结果进行重新排序,让结果与用户的问题更加相关。
因此,如果想针对自己的数据和数据源搭建一个可用的 Perplexity,就需要一套能够连接数据源、应用和数据库并获取数据的解决方案。它还需要完善的搜索基础设施,以及与 AI 模型的集成,从而实现摘要生成、重新排序等功能。
在这一部分,我们会使用 SWIRL 来完成应用和 AI 模型的集成。搜索部分则使用默认的 Google PSE,它已经内置于 SWIRL 的 Docker 容器中。你也可以添加更多应用作为搜索来源,不过那就是另一个教程的内容了。😁
如果要按照 GitHub 指南在 Docker 中试用 SWIRL,请执行以下步骤。我还制作了一个简短的 YouTube 教程,你也可以观看。
请确保你的系统(MacOS、Linux 或 Windows)已经安装并正在运行 Docker。
Windows 用户可能还需要安装并配置 WSL 2 或 Hyper-V。
下载 Docker YAML 文件:打开终端并运行:curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml
下载 Docker YAML 文件:
打开终端并运行:
curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml
使用 Docker 启动 SWIRL:在 MacOS 或 Linux 上运行:docker-compose pull && docker-compose up
使用 Docker 启动 SWIRL:
在 MacOS 或 Linux 上运行:
docker-compose pull && docker-compose up
在 Windows 上,通过 PowerShell 运行:docker compose up
在 Windows 上,通过 PowerShell 运行:
docker compose up
启用实时 RAG(Retrieval-Augmented Generation,检索增强生成):设置环境变量:export MSAL_CB_PORT=8000 export MSAL_HOST=localhost export OPENAI_API_KEY='your-OpenAI-API-key'
启用实时 RAG(Retrieval-Augmented Generation,检索增强生成):
设置环境变量:
export MSAL_CB_PORT=8000
export MSAL_HOST=localhost
export OPENAI_API_KEY='your-OpenAI-API-key'
重启 Docker,以启用 RAG 功能。
访问 SWIRL:打开浏览器并访问 http://localhost:8000。使用管理员凭据登录(用户名为 admin,密码为默认密码 admin)。输入搜索查询,然后点击“Search”查看结果。
打开浏览器并访问 http://localhost:8000。
使用管理员凭据登录(用户名为 admin,密码为默认密码 admin)。
输入搜索查询,然后点击“Search”查看结果。
如果需要更多帮助,请参阅完整指南。
SWIRL 启动并正常运行后,我们就可以开始搜索不同的查询,并基于搜索结果生成 AI 摘要。最棒的是,SWIRL 还支持对搜索结果进行重新排序。
搜索“Best open source search engines”
搜索“Attention is all you need”
“Attention is all you need”的 AI 摘要
到目前为止,它与 Google PSE 配合得相当不错,不过你也可以搜索特定网站,如左侧面板所示。此外,添加 connector 也很容易,只需提交一个 PR 即可。
使用 Google 搜索结果进行搜索和 RAG 是一个很好的起点,但 SWIRL 真正的优势,要在连接各种应用之后才能体现出来。这样一来,你不仅可以执行更全面的搜索,还能直接根据工作场所中的数据生成 AI 摘要,让信息发现变得更快、更高效。
要开始使用,只需访问管理面板,输入你希望连接的应用所对应的 bearer token。你可以通过详细的视频指南了解如何与 OpenSearch 集成,也可以查阅受支持 connector 的相关文档。这样就能轻松配置 SWIRL,并充分发挥它在各个已连接数据源中的搜索能力。
SWIRL 是一个开源项目,采用 Apache 2.0 许可证。我们非常欢迎你在 GitHub 上查看该项目,并为它点一颗 Star——这是支持我们、激励我们持续推出新功能的绝佳方式!
在 GitHub 上给我们一颗 🌟。
如果你有兴趣添加新的网站或应用,将其作为可搜索的 connector,我们非常欢迎你贡献代码。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。