Hello,大家好,好久不见!继OpenAI推出GPT-4o和类似“HER”的应用之后,Google在最近的I/O大会上也展示了他们的”多件套“应用AI搜索引擎。虽然Google的AI搜索引擎尚未正式推出,但今天,让我们先睹为快,一起来探索下开源的AI搜索引擎项目-Farfalle,它是一个国外非常火的PerplexityAI搜索引擎的平替产品,再比较下AI搜索引擎与我们熟悉的传统搜索引擎之间的区别。

项目概述

Farfalle项目是一个由AI搜索引擎驱动的框架,其主要由Tavily Search AI API作为主搜索引擎,再结合本地或云端LLMs作为内容分析总结回馈优化等。Farfalle可以在本地部署也可以云端部署。

支持开源模型和闭源模型

  • 支持本地运行的LLMs(如:基于Ollama的llama3、gemma、mistral)
  • 支持第三方平台的模型(如:Groq的llama3、OpenAI的chat-gpt4o)

技术栈

  • Frontend: Next.js
  • Backend: FastAPI
  • Search API: Tavily
  • Logging: Logfire
  • Rate Limiting: Redis
  • Components: shadcn/u

Tavily Search AI API介绍

这是一款专为大型语言模型(LLMs)和Retrieval-Augmented Generation(RAG)检索增强生产技术优化的搜索引擎,致力于提供高效率、迅捷且持续稳定的搜索结果。与Serp或谷歌等其他搜索API相比,Tavily 更专注于为AI开发者和自动化AI agents提供搜索优化服务。其主要负责处理所有搜索、抓取、筛选和从网络资源中提取最相关资讯的繁琐工作。


项目准备

前置条件:

以windows系统为例(Linux差不多也这样一个安装流程)

  1. 已安装Docker;
  2. 已安装git clone;
  3. 已安装IDE环境(VS Code即可);
  4. 已安装Ollama,并启动该服务ollama serve
  5. 提前准备Tavily Search AI API KEY,注册登录Tavily,首页即可看到API key(目前能免费请求1000次)。

开始安装

  1. 在GitHub上获取该项目拉取地址,项目地址在文尾

2. 在Windows的Powershell中输入git clone https://github.com/rashadphz/farfalle.git 拉取该项目。

注意:由于我是演示,才把拉取的镜像文件放在C盘目录下,你可以指定其他拉取目录。

3. 进入farfalle目录下新建.env文件(就是新建一个*.txt文件,一个文件名为空的.env格式文件)

4. 在.env文件内添加环境变量命令,填写完成后保存。后面的十六位进制的key就是刚才在Tavily上获取的:

TAVILY_API_KEY=tvly-M6p0io7FdSbRy3Ma3iMSwB4M********

5. 在farfalle目录下找到docker-compose.dev.yaml文件,用VScode打开该文件修改环境变量,

TAVILY_API_KEY= 填写为刚才的API Key

OPENAI_API_KEY= 可删除(由于这次演示我们用的Ollama本地模型,不用OpenAI的模型);

GROQ_API_KEY= 可删除(同理)

6. 回到farfalle目录鼠标右键打开终端Power shell;

7. 在Powershell内输入命令

docker-compose -f docker-compose.dev.yaml up -d

8. 开始拉取该项目相关的docker镜像文件、环境文件以及支持该项目的依赖库。

💥注意:

  • 有些环境和依赖库在外网,网络不好的小伙伴可能需要优化网络(魔法);
  • 拉去完成后3000端口无法启动该项目,docker容器报错如下:
  • (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3000 -> 0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
  • 可能是Windows NAT 驱动的问题,解决办法如下:
  • 用管理员权限启动cmd终端输入:
  • 第一步:输入命令net stop winnat #停止windows NAT 驱动程序
  • 第二步:输入命令net start winnat #开启windows NAT 驱动程序

9. 拉取完毕后在浏览器输入 127.1.1.1:3000 打开该项目前端页面


实际使用


写在最后

当前,主流的传统搜索引擎依赖于关键字搜索、索引数据库和相关性排序等核心特性。然而,这些方法有时无法精确捕捉到用户的真实需求,导致搜索结果不尽如人意。特别是在国内市场,搜索引擎的商业化倾向明显,广告内容泛滥,极大地影响了用户的搜索体验,让用户感到困扰和不便。

与之形成鲜明对比的是,现代AI搜索引擎通过先进的算法和深度学习技术,能够更准确地理解用户的查询意图,并直接匹配到最相关的信息。这种智能化的搜索方式不仅有效避免了广告的干扰,还能提供更为精准和个性化的搜索结果,极大地提升了用户的搜索满意度和效率。

传送门:

Farfalle项目地址:https://github.com/rashadphz/farfalle

TavilyAI地址:https://app.tavily.com/