项目介绍:Farfalle
Farfalle 是一个开源的人工智能驱动搜索引擎,其灵感来自 Perplexity。这个项目允许用户运行本地的和定制的语言模型,还可以使用云端模型进行搜索。Farfalle 的目标是提供一个强大而灵活的搜索平台,支持多种搜索和回答方式。
项目概览
Farfalle 采用了现代科技堆栈以确保性能和可扩展性。前端使用了 Next.js 框架,后端使用了 FastAPI 构建。此外,Farfalle 的搜索功能还集成了多个搜索 API 提供商,如 SearXNG、Tavily、Serper 和 Bing。为了确保系统的稳定,还引入了 Logfire 日志记录功能和 Redis 用于速率限制管理。
主要功能
-
多源搜索:用户可以通过 Tavily、Searxng、Serper 和 Bing 等多个搜索提供商进行搜索。
-
智能回答:Farfalle 可以通过云端模型,如 OpenAI 的 GPT-4 和 OpenAI 的 GPT-3.5-turbo,以及 Groq 的 Llama3,为用户提供智能回答。
-
本地模型支持:用户可以使用本地模型(如 Llama3、Mistral、Gemma 和 Phi3)进行问题回答。
-
自定义模型支持:通过使用 LiteLLM,用户能够使用任何自定义语言模型提高搜索和回答的质量。
-
智能搜索代理:Farfalle 提供一种智能搜索代理,能够规划和执行搜索任务以获得更好的搜索结果。
如何开始
先决条件
使用 Farfalle 之前,需要安装 Docker 和 Ollama(如果运行本地模型)。用户需要下载支持的本地模型并启动 Ollama 服务器。
启动流程
首先从 GitHub 上克隆项目,然后根据需要修改配置文件。最后,通过 docker-compose 命令启动应用。在启动后,可以通过浏览器访问本地服务进行测试和使用。
git clone https://github.com/rashadphz/farfalle.git
cd farfalle && cp .env-template .env
docker-compose -f docker-compose.dev.yaml up -d
部署说明
Farfalle 支持通过 Render 和 Vercel 等平台进行部署。用户可以将后端部署到 Render,前端则通过设置环境变量 NEXT_PUBLIC_API_URL
使用该后端服务的 URL,并使用 Vercel 进行部署来完成整个过程。
使用 Farfalle 作为默认搜索引擎
Farfalle 可以设置为浏览器的默认搜索引擎。用户只需在浏览器的设置中创建一个搜索引擎条目,并使用 Farfalle 提供的 URL,即可将其添加为默认搜索选项。
通过使用 Farfalle,用户能够体验到一个灵活且强大的搜索工具,它不仅支持多样化的搜索和回答模式,而且用户可以根据自己的需求来选择最合适的语言模型进行优化。