morphic
AI 驱动的下一代搜索引擎,通过生成式 UI 直接呈现个性化答案,而非传统链接列表
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 驱动的下一代搜索引擎,通过生成式 UI 直接呈现个性化答案,而非传统链接列表
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你正在研究一个从未接触过的技术领域——比如量子计算。传统搜索会丢给你一堆零散链接,你需要自己筛选、自己拼凑、自己理解。而 Morphic 彻底改变了这个过程:它不只是返回链接,而是直接生成一个完整的、可交互的答案页面——把网上最新的信息揉碎、重组,用清晰的结构呈现在你面前。
Morphic 由独立开发者 miurla 开发(2024年上线),定位是"AI 时代的下一代搜索引擎"。它基于 AI 搜索 API(Tavily、Exa 等)获取实时网络信息,再用大语言模型实时生成用户界面——这便是"生成式 UI"(Generative UI)的魅力:不再是静态网页,而是 AI 按需构建的动态答案。

图1:Morphic 搜索界面,支持多种 AI 模型切换(OpenAI、Claude、Gemini、Ollama 等)
Morphic 采用了经典的现代 Web 全栈架构:
ai 包 v6)+ 多 Provider 适配器,支持 OpenAI、Anthropic Claude、Google Gemini、Ollama(本地模型)、OpenAI 兼容接口(DeepSeek、Moonshot 等)项目的架构理念非常清晰:前端负责渲染 AI 生成的 UI,后端负责编排 AI Provider + 搜索 API + 数据库。整个数据流是:用户提问 → 搜索 API 获取实时网页 → LLM 分析 + 摘要 → 生成式 UI 渲染 → 返回用户。
Morphic 的核心能力可以分为三个层次:
第一层:智能搜索与摘要。 区别于传统搜索引擎只返回 10 条蓝色链接,Morphic 会调用 Tavily/Exa 等 AI 搜索 API,实时抓取并分析网上相关内容,生成一段综合性的摘要答案。你问"量子计算最新进展",它会告诉你近期最重要的 3-5 件事,而不是让你自己翻 50 个网页。
第二层:生成式 UI 渲染。 这是 Morphic 最亮眼的部分。项目使用了 @json-render/react 库——LLM 的响应不仅包含文字,还包含结构化的 UI 描述(如"显示一个图表"、"显示代码块"、"显示对比表格"),Morphic 会在运行时动态渲染这些组件。这意味着:LLM 可以直接"画"出一个完整的交互界面,而不只是返回文字。
第三层:多模型支持与模型切换。 用户可以在界面上自由切换 AI 模型(OpenAI GPT-4o、Claude 3.5 Sonnet、Gemini 1.5、Ollama 本地模型等)。这个设计非常实用——你可以对比不同模型对同一问题的回答质量,也可以用 Ollama 跑本地模型实现完全离线的隐私搜索。
自托管路线(Docker Compose): 这是最推荐的部署方式。项目提供了完整的 docker-compose.yaml,内置了 PostgreSQL、Redis 和 SearXNG 搜索引擎。用户只需要:
.env.local.example 为 .env.localdocker-compose up -d整个服务在 10-30 分钟内即可跑起来。Dockerfile 采用了多阶段构建(builder + runner),最终镜像精简至仅包含运行时必要文件。
云端路线(Vercel): 如果不想自己维护服务器,可以直接部署到 Vercel,连接 Vercel Postgres 和 Upstash Redis 即可。官方 README 有详细的云端部署指南。
Morphic 并不是完美的,它有几个需要注意的局限:
依赖外部 AI 和搜索 API。 即使自托管,搜索结果仍然依赖 Tavily/Exa 等付费服务(除非用 SearXNG 自托管)。AI 模型的调用成本也不可忽视——Generative UI 意味着每次回答可能生成多个组件,token 消耗比纯文字回复更高。
生成式 UI 的可靠性。 @json-render/react 让 LLM 描述 UI 组件,虽然体验惊艳,但 LLM 生成的结构化描述偶尔会出现格式错误或组件嵌套问题。项目目前版本为 1.4.0,仍在快速迭代中。
数据库迁移需要手动执行。 虽然 Dockerfile 中有 docker-entrypoint.sh 自动执行 bun run migrate,但首次部署或升级时仍需关注数据库 schema 变更。
Morphic 代表着"搜索 + 生成式 AI + 生成式 UI"三浪合一的趋势。传统搜索的核心矛盾是:信息爆炸但人脑处理能力有限。AI 搜索试图解决"筛选"问题,而生成式 UI 则进一步解决了"呈现"问题——让机器直接构建适合你问题的答案格式,而不是让你去适应网页的固定格式。
从技术角度看,Morphic 也是一个很好的 AI SDK 集成范例:它展示了如何用 Vercel AI SDK 同时接入多个 AI Provider、如何用 Stream 模式实现流式 UI 渲染、如何设计 Agent 化的搜索流程。这对学习 AI 应用开发的工程师来说,是一份相当有价值的参考代码。
| 指标 | 数值 |
|---|---|
| GitHub Stars | 8,868(持续增长中) |
| 主要语言 | TypeScript |
| 许可证 | Apache-2.0 |
| 依赖包规模 | 核心依赖 ~100 个(ai、next、drizzle-orm、redis 等) |
| 测试框架 | Vitest |
| 代码风格 | ESLint + Prettier,提交规范完整 |