想必你已经发现了,如今的搜索引擎已经全面进化了。
过去搜索时,通常只是输入关键词,再在一堆蓝色链接里逐一挑选查看。
现在则不同,直接输入一个问题,AI 会帮你联网搜索、汇总分析,并给出一份带有引用来源的完整回答。
例如,主打 AI 搜索的 Perplexity,其月活用户已突破 1 亿;Google、百度、必应等主流搜索引擎,也纷纷在结果页面中加入了 AI 智能摘要。
搜索这件事,正在从「人找信息」彻底转变为「AI 帮你找信息」。

那么,这种 AI 搜索引擎究竟是如何实现的?
本文将以 Codex + GPT-5.5 为开发工具,全程打造一个 AI 搜索引擎,后端则对接 DeepSeek V4,实现联网搜索与智能摘要功能。读完本文,你不仅能掌握 AI 编程的完整流程,感受新开发工具与模型的能力,更能深入理解 AI Agent 应用的开发思路。
需求分析
本次要做的项目名为 yupi-ai-search,一个对标 Perplexity 的 AI 搜索引擎。
需要注意的是,AI 搜索引擎与普通的 AI 对话应用完全不同。如果仅仅让 AI 直接回答问题,它依靠的是训练数据中的旧知识,回答很可能过时。AI 搜索引擎的核心在于联网搜索能力,即先让 AI 去网上获取最新信息,再基于这些实时信息生成回答,这样才能确保答案的准确性与时效性。
具体需求如下:用户输入一个问题后,系统自动联网搜索最新资料,再由 AI 大模型综合分析,生成一份带有引用来源的智能回答,同时,页面会像传统搜索引擎一样展示完整的搜索结果列表。用户还可以通过系统推荐的相关问题进行追问,不断深入探索感兴趣的方向。

方案设计
本项目采用前后端分离架构,前端使用 Vue 3,后端则基于 Python FastAPI + LangChain 构建。
不过,传统的前后端技术并非核心,实现 AI 搜索引擎的关键在于两个要素:一是搜索服务,负责联网获取最新信息;二是 AI 大模型,负责理解搜索结果并生成综合回答。
AI 大模型我们选择 DeepSeek V4,旨在检验它在真实业务场景下的实际表现。
那么,这个项目真正的核心在于,搜索服务该如何实现?
搜索服务
先简要介绍搜索引擎的原理。
传统搜索引擎的工作流程其实只有 3 步:
- 抓取网页:派遣爬虫程序到处爬取
- 建立索引:将网页内容整理成结构化数据库
- 排名展示:根据相关性对结果进行排序
像 Google、百度这类搜索引擎,背后都是依靠数十万台服务器来支撑这套系统。

如果在过去,让你自己开发一个搜索引擎,几乎是不敢想象的事,光是抓取全网页面这一步就已足够让人望而却步。
但现在情况完全不同了。有了 AI 编程工具,加上现成的搜索引擎 API 服务,你不再需要自己爬取网页、建立索引,只需直接调用 API 获取搜索结果,然后交给 AI 进行总结即可。
目前,专为 AI 应用设计的搜索服务已经相当丰富,例如 Tavily Search、Firecrawl、Brave Search API 等,它们都能通过 API 调用返回结构化的搜索结果,方便直接供 AI 使用。

下面重点介绍本项目选用的 Tavily Search。
Tavily Search
Tavily Search 是目前 AI 应用开发领域中最主流的搜索 API 之一,知名的 AI 应用开发框架 LangChain 官方首推的搜索工具就是它。
它的主要优势包括:
- 返回结构化搜索结果(标题、URL、内容摘要),而非原始 HTML,直接提供给 AI 即可使用,节省 tokens
- 搜索速度快,通常在 3 秒左右即可返回结果
- LangChain 拥有官方集成包
langchain-tavily,只需几行代码即可接入 - 支持中文搜索,可通过
country参数设置为中国,优化中文搜索效果
在价格方面,免费版每月提供 1000 次 API 调用,无需绑定信用卡,对于个人项目和 MVP 验证完全足够。按需付费为每次 0.008 美元(约合 6 分钱),Growth 套餐为 10 万次/月 500 美元,因此实际上线时需注意成本控制。
下面简单体验一下。
进入 Tavily 官网,可以看到它提供了 4 方面的能力,包括联网搜索、提取网页内容、爬虫和深度研究。

登录后进入管理后台,即可获取 API Key:

接着进入调试广场,可以在这里验证搜索效果。
例如,搜索“程序员鱼皮”,可以看到返回了 JSON 格式的结构化结果,每条结果都包含标题、URL 和内容摘要,搜索到了博客、GitHub 主页等信息,内容相当全面。

它还支持许多参数设置,比如搜索的详细程度、时间范围、是否包含网页内容、最大搜索结果数、国家等。
例如,将搜索国家设置为中国,就能搜到国内平台的文章了:

验证完搜索效果后,接下来看看如何在代码中使用。
LangChain 集成 Tavily
在这个项目中,我们使用主流的 AI 应用开发框架 LangChain 来集成 Tavily。
LangChain 提供了现成的官方集成包 langchain-tavily,使用起来非常便捷。只需在代码中为 Agent 绑定 TavilySearch 工具,然后创建 Agent 即可直接进行对话:
from langchain_ta vily import Ta vilySearch
from langchain.agents import create_tool_calling_agent
ta vily_search_tool = Ta vilySearch(max_results=5,topic="general")
# 创建 Agent,绑定搜索工具
agent = create_tool_calling_agent(model, [ta vily_search_tool])
# 用户提问,Agent 自动判断是否需要搜索
response = agent.invoke({"messages": "最近有什么 AI 新闻?"})
除了搜索功能,还有 TavilyExtract 工具,可以根据网址提取干净的网页内容:

看不懂代码没关系,之后我们把这些需求写进提示词,让 AI 自己去查阅文档、编写代码即可。
Firecrawl 搜索服务
除了 Tavily,Firecrawl 也是一个不错的选择。Firecrawl 更擅长网页抓取和全站爬取,它本身也提供了搜索功能。
两者的定位存在一定差异,通过表格可以简单对比:
| 维度 | Tavily Search | Firecrawl |
|---|---|---|
| 定位 | AI 原生搜索 API,专为 RAG/Agent 设计 | Web 数据 API,主打网页抓取和内容提取 |
| 搜索速度 | 1 ~ 3 秒 | ~7 秒(含页面抓取) |
| 返回格式 | 结构化摘要,节省 Tokens | Markdown/HTML/JSON,内容更完整 |
| LangChain 集成 | 官方首推,有专用包 | 有 Python SDK,需自行封装 |
| 开源 | 否 | 是(AGPL-3.0,可自部署) |
| 免费额度 | 1000 次/月 | 1000 credits/月 |
| 100K 量级月费 | $500 | $83 |
| 最适合场景 | AI Agent 联网搜索 | 全站爬取、数据提取 |
对于我们这个 AI 搜索引擎项目,Tavily 的搜索速度和结构化返回更合适,所以将其作为主力。
在后面的环境准备部分,也会安装 Firecrawl,但它的作用是帮助 AI 编程工具联网搜索技术文档,与项目本身的搜索功能并非一回事。
核心业务流程
最后梳理一下整个 AI 搜索引擎的核心流程:
- 用户在前端输入问题
- 后端接收请求,调用 Tavily Search API 进行联网搜索,获取结构化的搜索结果
- 将搜索结果作为上下文注入 Prompt,交给 DeepSeek V4 大模型
- AI 依据搜索结果生成带有引用编号的综合回答,并通过 SSE 流式返回给前端
- 前端同时展示 AI 综合回答和完整的搜索结果列表
- AI 回答完成后,自动生成相关问题推荐,方便用户继续探索

环境准备
Codex 配置
打开 Codex,确认模型列表中有 GPT-5.5。如果看不到,很可能是账号问题,可能需要开通更高级的会员,本文使用的是 Plus 会员。

可以看到界面上已出现 GPT-5.5 模型选项,还支持调节智能程度(低/中/高/超高),一般选择「高」。
左下角进入设置,将工作模式切换为「用于编程」,这样 AI 的回复会更专业、更贴合开发场景:

然后在设置中开启「电脑操控」,并安装 Google Chrome 浏览器扩展。这样后续可以让 AI 帮你自动操作电脑和浏览器进行测试。

安装 AI 扩展
Codex 的 AI 扩展主要包括三类:
- MCP 服务,用于连接外部工具
- Agent Skills 技能包,让 AI 学会特定的专业技能
- Plugins 插件,为 AI 增加更多能力
官方自带了一些内置插件和技能,比如 Computer Use、Browser Use、PDF 处理、演示文稿编辑等:


不过,这次项目需要的几个扩展,Codex 默认没有,需要自行安装。
需要以下 3 个扩展:
- Firecrawl:用于联网搜索和网页抓取,让 AI 能获取最新的技术信息
- Context7:用于查询最新的技术文档和 API 用法,减少 AI 胡编乱造的情况
- UI UX Pro Max:前端美化技能,让生成的页面更具设计感
可以直接在 Codex 设置中手动添加 MCP 服务,但需要手动填写一堆参数,相当繁琐!

好在可以换一种方式,利用每个 AI 服务提供的命令来快速安装。
1、安装 Firecrawl
Firecrawl 是一个联网搜索和网页抓取工具,能让 AI 在开发前先搜索最新的技术信息和文档。虽然项目本身使用 Tavily Search 做搜索功能,但 Firecrawl 在这里的作用是帮助 AI 编程工具查询资料。
打开终端,输入以下命令:
npx -y firecrawl-cli@latest init --all --browser

执行后,会自动打开浏览器,需要在弹出的页面中点击授权:

安装完成后,会自动注册 12 个相关技能:

在 Codex 的技能管理中,就能看到新添加的 Firecrawl 相关技能了:

2、安装 Context7
Context7 是一个技术文档查询工具,能让 AI 获取各类框架和库的最新官方文档,避免使用过时的 API 来编写代码。
先在终端输入一行命令进行安装:
npx ctx7@latest setup
它会询问是安装 MCP 服务还是 CLI + Skills,这里选择 CLI + Skills。你会发现,现在越来越多的工具已经从 MCP 转向 CLI + Skills 的方式了:

同样在弹出的网页中授权,无需自己获取和输入 API Key,非常方便!

然后选择要为哪个 AI 编程工具安装,选择为 Codex 安装:

安装成功:

在 Codex 中确认已安装的技能:

3、安装 UI UX Pro Max
这是一个前端美化技能包,能让 AI 生成的页面更具设计感,不会出现过多的 Emoji。
输入一行命令:
uipro init
选择为 Codex 安装技能:

安装成功:

在 Codex 的技能管理中,可以看到新技能:

至此,环境准备完成!下次开发项目时,就不需要再重复准备了。
开发编码
新建一个 yupi-ai-search 项目文件夹,在 Codex 中打开:

然后输入提示词。这里分享实际使用的提示词,供大家参考:
## 角色
你是一个全栈工程师,擅长 Python + FastAPI + LangChain + Vue 开发。
## 任务
开发一个名为 yupi-ai-search 的 AI 搜索引擎网站。用户输入自然语言问题后,系统自动联网搜索最新信息,再将搜索结果交给 DeepSeek V4 大模型综合分析,生成一份带有引用来源的智能回答,同时展示完整的搜索结果列表。
核心功能:
1. 搜索主页:简洁的搜索框,输入问题后发起 AI 搜索
2. AI 联网搜索:调用 Tavily Search API 获取最新网页信息,将搜索结果作为上下文注入 Prompt,让 AI 生成综合回答
3. 引用来源展示:AI 回答中引用的信息必须标注来源编号,底部列出所有引用来源的标题和链接,用户可点击跳转原文
4. 搜索结果列表:除了 AI 综合回答外,还要像传统搜索引擎一样展示完整的搜索结果列表,包含 AI 未直接引用的结果
5. 流式输出:AI 回答支持 SSE 流式输出,实现打字机效果的实时显示
6. 搜索历史:本地存储搜索历史记录,支持快速重新搜索
7. 相关问题推荐:AI 回答完成后,自动生成 3-5 个相关问题供用户继续探索
## 技术栈
- 后端:Python FastAPI + LangChain
- 前端:Vue 3 前后端分离,支持 Markdown 渲染和代码高亮
- AI 模型:对接 DeepSeek V4(兼容 OpenAI SDK 格式,通过环境变量配置)
- 搜索:Tavily Search API(通过 langchain-tavily 集成)
## 要求
1. 页面参考 Perplexity 的简洁风格,搜索页面居中大搜索框,结果页面信息密度高,使用 UI UX Pro Max 技能美化
2. 开发前,先通过 Firecrawl 联网搜索相关信息,通过 Context7 查询 LangChain、FastAPI、Tavily Search、DeepSeek API 的最新文档
3. 必须生成完整可运行的代码,每步完成后必须自主测试验证
虽然这段提示词看起来又臭又长,但其实是借助 AI 生成的。简单解读一下这段提示词的几个要点:
- 角色定义 放在最前面,让 AI 进入全栈工程师的状态
- 任务描述 用自然语言将需求讲清楚
- 技术栈 只列出关键选型,比如 LangChain + Tavily Search 的组合,让 AI 自己决定具体的实现方案
- 最后两条要求非常关键,让 AI 先查阅文档再编写代码,避免胡编乱造;让 AI 开发完成后自主测试,减少翻车概率
模型选择 GPT-5.5,智能程度选「高」,权限给予完全访问(主要图个省事):

小提示:如果你希望 AI 测试得更完整,可以先获取 Tavily Search 和 DeepSeek 的 API Key 并直接提供给 AI,否则 AI 无法测试搜索和 AI 总结能力。
将上述提示词发送给 AI,整个任务相对复杂,接下来就是漫长的等待了。
可以看到 AI 首先使用 Firecrawl 和 Context7 搜索了 Tavily Search、LangChain、FastAPI、DeepSeek API 的用法和文档,完成调研后,才开始编写代码:

AI 生成完代码后,会自主打开浏览器进行前端测试:

从开发到测试运行,总共耗时 23 分钟。AI 生成了完整的前端和后端项目代码,还自动编写了项目文档:

将鼠标放到 Codex 右侧,可以查看整个任务的生成结果、后台终端和信息来源。

在 AI 回复的最下方,可以查看和审核生成的所有代码文件:

感兴趣的同学可以查看 AI 生成的核心代码。后端的核心是一个 SSE 流式接口,接收到用户的搜索请求后,先调用 Tavily Search 获取网页搜索结果,然后将搜索结果注入 Prompt 并交给 DeepSeek V4 生成带有引用的综合回答,最后再生成相关问题推荐。
如果搜索失败,还有降级策略,会提示用户回答未经联网验证:

测试验证
接下来按照 AI 给出的指引,需要填写 API Key:

先到 DeepSeek 开放平台获取 DeepSeek 的 API Key,Tavily 的 API Key 前面已经拿到了。

然后修改项目后端目录下的环境变量配置文件,将 .env.example 重命名为 .env,填入自己的 API Key:

注意,如果项目要开源,务必记得在 .gitignore 中忽略 .env 文件,防止 API Key 泄露到 GitHub 上!
配置完环境变量后,让 AI 重启项目:

人工测试
接下来进行人工测试。
打开网页,好家伙,主页竟然如此精简!
AI 确实非常听从提示词的要求,简洁风格 + 居中大搜索框,与 Perplexity 的感觉确实有几分相似 ?:

来输入一个问题试试:什么是鱼皮的 AI 编程导航?
实际上,这两个网站分别是“编程导航”和“鱼皮 AI 导航”,这里故意将两个产品混为一谈,看看搜索结果和 AI 的总结效果如何。
大约 4 秒左右,界面便展示了搜索结果列表,然后在 20 秒左右给出了完整的 AI 总结。可以看到左侧是 AI 的综合回答,带有引用编号;右侧是完整的搜索结果列表,包含标题、摘要和链接,与传统的搜索引擎一样,可以逐条浏览:

搜索和生成速度相当快,而且 AI 将两个不同的产品区分得很清楚,内容也是准确的。
底部可以看到引用来源和相关问题推荐,点击引用即可跳转到原文,点击相关问题即可快速发起下一次搜索:

在 Codex 的对话页面,将鼠标放到右侧,点击查看后台终端,可以看到 Python 后端的日志信息,每一次搜索请求都有记录:

从搜索结果来看,默认搜索的信息源以国内为主。但 Tavily Search 同样支持国外信息源搜索,例如询问:Claude Code 4.7 怎么样?
这次的搜索来源就变成了中英文混合,不少英文技术博客的测评文章都搜索到了:

还可以在提问中指定搜索来源,比如询问:鱼皮在 X 上有哪些 Claude Code 教程?
搜索结果中就包含了 X 平台的原始文章页面:

怎么样,轻轻松松就开发出了一个属于自己的 AI 搜索引擎,国内外信息尽在掌握之中。
AI 自主测试
核心功能测试没有问题了,但如果项目要正式上线,还需要测试一系列边界条件,比如输入空白内容是否会崩溃?网络超时怎么办?搜索无结果时页面显示是否正常?等等。
逐个手动测试太麻烦了,不如直接让 AI 帮忙。
Codex 内置了浏览器操控能力,输入 @浏览器 使用插件,直接让 AI 自主测试:
@浏览器 打开浏览器,自主测试所有功能出了问题自动修复,确保所有功能正常可用

可以看到 AI 在 Codex 内部打开了一个浏览器,自己输入问题并进行搜索,然后检查搜索结果列表、AI 回答、引用来源、相关问题、搜索历史等所有功能是否正常:

等待了 18 分钟,AI 完成了端到端的自主测试,还顺手做了一点优化:

至此,项目就开发完成了,是不是很简单?
扩展思路
虽然很快就开发出了一个可用的 AI 搜索引擎,但要知道,开发完成只是第一步。一个成熟的搜索引擎产品,需要考虑的事情还有很多,这也是与其他同学拉开差距的地方。
这里借助 AI 为大家提供一些思路:
- 搜索结果缓存:同样的问题在短时间内被多个用户搜索,每次调用 Tavily 的 API 会增加成本,缓存下来能有效节省费用
- 搜索结果排序优化:可以根据来源的权威性、内容的时效性进行重新排序,而不是直接使用 Tavily 返回的原始顺序
- 多模态搜索:支持搜索图片、视频、文件,而不仅仅是文字
- 可观测性:增加日志、监控和链路追踪,以便了解每次搜索请求经历了哪些步骤、各步骤耗时多少、哪个环节容易出问题
- 成本控制:搜索 API 和大模型 API 都是按量计费的,需要做好限流和配额管理,防止被恶意刷接口,否则可能产生高额费用
- 安全防护:防止 Prompt 注入攻击、过滤违规内容,这些在上线前必须充分考虑
要学会站在巨人的肩膀上,用现成的工具快速搭建原型,但同时也要能看出原型背后缺失的部分,这才是真正的工程能力。
感受
最后聊聊使用 Codex、GPT-5.5 和 DeepSeek V4 的真实感受。
先说 Codex。Codex 的界面主打简洁,第一眼看上去甚至不像 AI 编程工具,更像一个 AI 聊天助手。但它的功能其实相当完整,比如 MCP 和 Skills 扩展、插件市场、自动化、Git 集成、Browser Use、Computer Use,AI 编程所需的工程能力基本都具备了。
而且最近的更新速度非常快,还有心思弄了一个 AI 桌面宠物为大家提供情绪价值……(虽然有些 UI 调整我觉得不如之前好看)

不过缺点也很明显。默认可用的模型有限,不像 Cursor 和 Copilot 那样原生集成了 Claude、GPT、Gemini 等各种模型可以随意切换。易用性也差了一些,从 MCP 配置那里大家应该已经感受到了。Copilot 可以直接在扩展市场一键搜索安装 MCP,Cursor 也支持可视化编辑 JSON 配置,而 Codex 这边还需要自己折腾命令行或者手写 TOML 文件。

再说说 GPT-5.5 模型。除了这个项目之外,之前的教程以及自己的项目中也曾多次使用 GPT-5.5,整体感觉不如 Claude Opus 4.6。但它的能力依然很强,只要提示词到位,基本都能一次性完成全栈项目的前端和后端开发,而且核心业务流程大概率一次跑通。
感觉 GPT-5.5 的特点是非常听从提示词,前端表现中规中矩,不会带来特别大的惊喜。因此,要想充分利用能力强的大模型,提示词还是需要认真编写、功能点列清楚,并给予一些方案和开发流程的引导,AI 才能给出令人满意的结果。
再看看 GPT-5.5 的成本。这次开发消耗了 13.4 万 tokens,上下文使用了 52%。Codex 桌面端的上下文容量为 258K,开发这种全栈项目基本够用了:

目前开通的是 GPT Plus 会员,每月 20 美元(约 150 元),每 5 小时和每周都有限额。做完这个项目后,5 小时的额度用了差不多一半,不算扩展功能的话,1 周大约能完成 10 个完整项目。

最后说说 DeepSeek V4。这次项目使用的是 V4-Flash 模型作为搜索引擎的大脑,生成速度相当快,效果也不错,作为搜索结果的整理完全够用,不需要升级到 Pro 版本。
Flash 模型的价格非常便宜,测试时使用了 24 次请求才花了 9 分钱。按照正常上线的用户访问量来算,1 天 1000 次请求大约消耗 3.75 元,性价比很高,团队的一些业务也会对接 DeepSeek API。

总的来说,AI 应用开发的门槛已经变得非常低了。以前开发一个搜索引擎是大厂才能做的事情,现在一段提示词就能搞出一个可用的原型。
但毕竟「能做出来」和「做得好」之间还有很大的距离,前面提到的缓存、安全、成本控制等工程化问题,才是真正考验功底的地方。
OK,就分享到这里,希望本文对大家有所启发。
