如何利用 AI 的能力来强化搜索一直是业内的关注方向,开发者们希望借此给用户带来更好的体验。
llm-answer-engine 是一个开源的 AI 增强搜索引擎,它包含构建复杂答案引擎所需的代码和指令。该引擎利用 Groq、Mistral AI 的 Mixtral、Langchain.JS、Brave Search、Serper API 和 OpenAI 的功能,旨在根据用户查询高效地返回源、答案、图像、视频和后续问题。
技术栈分析
该项目采用了现代化的 Web 开发技术栈,确保高性能与可扩展性:
- Next.js:用于构建服务器端渲染(SSR)和静态 Web 应用程序的 React 框架,提供优秀的 SEO 性能和用户体验。
- Tailwind CSS:实用程序优先的 CSS 框架,用于快速构建自定义且响应式的用户界面。
- Vercel AI SDK:用于构建人工智能驱动的流文本和聊天 UI 的库,简化了大模型交互的开发流程。
- Groq & Mixtral:处理和理解用户查询的核心技术,Groq 提供极速推理能力。
- Langchain.JS:专注于文本操作的 JavaScript 库,例如文本分割、嵌入生成及链式调用。
- Brave Search:注重隐私的搜索引擎,用于采购相关内容和图像结果。
- Serper API:用于根据用户的查询获取相关的视频和图像结果。
- OpenAI Embeddings:用于创建文本块的矢量表示,支持语义搜索。
- Cheerio:用于 HTML 解析,允许从网页中提取结构化内容。
- Ollama(可选):用于本地流式推理和嵌入,适合离线或私有化部署场景。
- Upstash Redis 速率限制(可选):用于为应用程序设置速率限制,防止滥用。
架构原理
llm-answer-engine 的核心在于检索增强生成(RAG)技术的实现。其工作流程大致如下:
- 查询理解:接收用户的自然语言查询,通过 LLM 进行意图识别。
- 信息检索:利用 Brave Search 或 Serper API 获取互联网上的相关文档片段。
- 内容提取:使用 Cheerio 解析 HTML,提取关键文本内容。
- 向量化:将提取的文本块通过 OpenAI Embeddings 转换为向量表示。
- 相似度匹配:在向量数据库中进行近似最邻近搜索,找到最相关的上下文。
- 答案生成:将上下文和用户查询组合成 Prompt,发送给 Groq 或 Mixtral 模型生成最终答案。
- 多模态输出:同时检索并展示相关的图片和视频结果。
这种架构确保了回答不仅基于预训练知识,还能结合最新的网络信息,提高了准确性和时效性。
安装与部署
环境准备
在开始之前,请确保您的环境中已安装 Node.js 和 NPM。此外,您需要注册以下服务的 API Key:
- OpenAI
- Groq
- Brave Search
- Serper
密钥获取方式请访问对应官网控制台。
源码安装
# 克隆项目仓库
git clone https://github.com/developersdigest/llm-answer-engine.git
cd llm-answer-engine
# 安装依赖
npm install


