项目简介
Farfalle[1] 是一个开源的、由 AI 驱动的搜索引擎。
Farfalle 是一个 Perplexity 克隆项目,允许用户运行本地大型语言模型(LLMs)或者使用云模型来进行搜索和问题回答。
项目旨在提供一个自托管的搜索解决方案,既可以使用本地模型,如 llama3、mistral、gemma、phi3,也可以使用云模型,例如 Groq/Llama3 或 OpenAI/gpt4-o。
项目特点
使用场景
Farfalle 适用于需要一个自定义搜索引擎的场景,特别是那些希望利用 AI 技术来增强搜索体验的用户。
无论是个人开发者、企业还是教育机构,都可以利用 Farfalle 来构建一个满足特定需求的搜索引擎。
技术栈
前端:Next.js 后端:FastAPI 搜索 API:SearXNG 或 Tavily 日志记录:Logfire 速率限制:Redis 组件库:shadcn/ui
功能特点
支持多个搜索提供商(Tavily, Searxng) 使用云模型(OpenAI/gpt4-o, OpenAI/gpt3.5-turbo, Groq/Llama3)回答问题 使用本地模型(llama3, mistral, gemma, phi3)回答问题
使用方法
先决条件
安装 Docker 如果要运行本地模型,则需要安装 Ollama 并下载支持的模型
获取 API 密钥
Tavily(可选) OpenAI(可选) Groq(可选)
安装步骤
克隆仓库
git clone :rashadphz/farfalle.git
cd farfalle
添加环境变量
创建 .env 文件,并添加以下变量:
对于 Tavily(需要 API 密钥):
TAVILY_API_KEY=...
SEARCH_PROVIDER=tavily
对于 Searxng(不需要 API 密钥):
SEARCH_PROVIDER=searxng
可选云模型 API 密钥:
OPENAI_API_KEY=...
GROQ_API_KEY=...
运行容器
使用 Docker Compose 启动服务:
docker-compose -f docker-compose.dev.yaml up -d
然后在浏览器中访问 http://localhost:3000 查看应用。
部署
后端部署
使用 Render 部署后端:Deploy to Render[2]
前端部署
使用 Vercel 部署前端,并使用复制的后端 URL 作为 NEXT_PUBLIC_API_URL 环境变量:Deploy with Vercel[3]
注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。
欢迎关注&点赞&在看,感谢阅读~
项目地址: https://github.com/rashadphz/farfalle
[2]Render后端部署: https://render.com/deploy?repo=https://github.com/rashadphz/farfalle
[3]Vercel前端部署: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Frashadphz%2Ffarfalle&env=NEXT_PUBLIC_API_URL&envDescription=URL%20for%20your%20backend%20application.%20For%20backends%20deployed%20with%20Render%2C%20the%20URL%20will%20look%20like%20this%3A%20https%3A%2F%2F%5Bsome-hostname%5D.onrender.com&root-directory=src%2Ffrontend
