mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15mobile wallpaper 16mobile wallpaper 17mobile wallpaper 18mobile wallpaper 19mobile wallpaper 20mobile wallpaper 21
2998 字
8 分钟
浏览量 --
Cloudflare RAG 与博客上下文深度融合实践:让 AI 真正知道用户现在在看什么

记录一下这个五月最后一篇文章,后续慢慢的就换点别的博客内容记录了。

之前这套博客 AI 问答虽然已经能跑起来了,但实际用下来有一个问题一直很明显:

AI 知道这个站里有文章,却不一定真的知道用户此刻正停留在哪一页、正在看哪一段、是想问当前文章,还是想顺着专题继续追问。

这个问题在文章详情页里尤其明显。

有时候我明明就在一篇文章里面,点击预设 tips 去问 AI,总觉得它像是“看了全站一眼就开始回答”,回答内容并不总是贴着当前文章走。更典型一点的情况是:我在当前文章已经看到了某个技术点,继续追问一句“这里为什么这样设计”,AI 却没有稳定理解“这里”到底指的是哪一段、哪一节、哪一篇文章。

所以这次我继续把它往前推进了一步,不是简单再补几条提示词,而是把 博客前端上下文、用户交互意图、Cloudflare 侧检索范围、RAG 重排与回退逻辑 一起重新梳理了一遍,让这套问答真正更像博客的一部分,而不是挂在博客旁边的一个泛化聊天框。

之前的问题到底出在哪#

如果只看表面,会觉得像是“模型不够聪明”。但实际拆开以后,会发现更多是上下文链路不完整

旧版本大概是这样一条路径:

  1. 用户在页面里点击一个 tips,或者直接输入一句问题。
  2. 前端把这句自然语言发给 AI。
  3. Cloudflare RAG 再根据这句自然语言自己猜:用户现在到底想问当前文章、当前专题,还是全站内容。

这套方式不是完全不能用,但它有两个天然短板。

第一,前端明明知道用户在哪,但没有把这个信息完整、稳定、结构化地传给后端。

第二,后端虽然有知识库,但如果没有明确的作用域提示,就只能靠自然语言去猜。

一旦问题本身比较短,比如:

  • “帮我总结一下”
  • “这个方案有什么限制”
  • “这里为什么不用另一种做法”
  • “和之前那篇有什么关系”

那它就很容易丢失“当前页面”这个最关键的语义锚点。

这次优化的核心思路#

这次我没有去大改知识库主结构,也没有推倒重建 Cloudflare 侧的数据模型,而是继续沿着已有的博客系统往里深挖:让博客前端主动告诉 RAG,用户现在在哪里、在做什么、应该优先查哪里。

也就是说,原来更像:

用户提一个问题,RAG 自己猜上下文。

现在更像:

博客先把当前页面上下文和提问意图整理好,再把“问题 + 页面位置 + 检索范围”一起交给 RAG。

这样一来,AI 的回答就不再只是“会不会搜”,而是“先去哪里搜、优先回答什么、如果当前文章命中不够再怎么往外扩”。

博客前端这边补了什么#

前端现在不再只给 AI 发一条裸问题,而是增加了一层更明确的结构化提问意图

比如在文章详情页里,用户点的是“帮我总结这篇文章”,和在搜索结果里点“问问小Y关于这个结果”,这两者虽然最终都会进入同一个 AI 对话框,但它们背后的意图其实完全不一样。

所以现在前端会把这些信息一并发出去:

  • 当前问题本身
  • 问题来源
  • 当前页面类型
  • 当前文章 postId / slug
  • 当前专题 topicId / topicName
  • 当前分类和标签
  • 如果是划词提问,还会带上选中文本、所在小节、锚点位置
  • 如果是搜索结果追问,还会带上命中的结果文章信息

这一步非常关键,因为它让“AI 在当前页面提问”从一种模糊的 UI 体验,变成了一种可以被后端明确消费的结构化信号。

Cloudflare RAG 侧怎么配合#

有了前端补过来的上下文之后,Cloudflare 侧就不再需要从头猜测,而是可以按页面类型来走不同的检索策略。

现在的整体思路是分层作用域检索

最典型的文章详情页场景,会按这样的顺序来查:

  1. 先查当前文章
  2. 当前文章命中不够,再查当前专题
  3. 还不够,再扩展到全站

如果是划词提问,则会更进一步:

  1. 先查当前文章里的当前小节
  2. 再回到当前文章整体
  3. 再扩展到当前专题
  4. 最后才是全站补充

这样做的好处是,AI 回答的“第一落点”更稳定了。它会先尽量围绕当前阅读上下文回答,而不是一上来就把全站相关内容混在一起。

为什么这一步能明显改善“AI 不知道用户在问什么”#

因为之前丢掉的,恰恰就是“用户此刻正在这个页面里问这个问题”这层语义。

现在这层语义是被显式传递的。

换句话说,以前 AI 面对的是:

  • 一句问题
  • 一整个知识库

现在 AI 面对的是:

  • 一句问题
  • 当前页面上下文
  • 当前文章 / 专题 / 分类 / 标签信息
  • 当前提问动作类型
  • 一个明确的优先检索范围

它不是突然变聪明了,而是终于把它原本应该知道的信息稳定交给它了。

用一张图看旧链路的问题#

PlantUML 图表加载中...
@startuml
title 旧版博客 AI 提问链路

actor User
participant "Blog Page" as Blog
participant "AI Widget" as Widget
participant "Cloudflare RAG" as Rag
database "Knowledge Base" as KB

User -> Blog : 在文章详情页点击

这条链路的问题不在“完全搜不到”,而在于搜得到,但不一定搜得准,也不一定先搜当前页面。

再看优化后的新链路#

PlantUML 图表加载中...
@startuml
title 优化后的上下文融合链路

actor User
participant "Blog Page Context" as Context
participant "AI Widget" as Widget
participant "Cloudflare RAG" as Rag
database "D1 / Vector / FTS" as KB

User -> Con

可以看到,这次不是只改了前端,也不是只改了后端,而是把这两边真正串起来了。

预设 tips 也不是简单换个文案#

以前很多 tips 本质上只是几句看起来更友好的提示词,比如“帮我总结一下”“解释一下这篇文章”“还有什么相关文章可以看”。

这些文字本身当然没问题,但如果后面仍然只当成普通文本处理,那么它们并不会天然带来更强的上下文理解。

所以这次我更关心的不是 tips 写什么,而是tips 背后对应的动作到底是什么。

现在它们会被拆成更具体的结构化动作,例如:

  • 总结当前文章
  • 提炼当前文章里的流程
  • 解释当前文章关键点
  • 延展到当前专题
  • 从当前文章继续推荐全站阅读路径

这样 AI 收到的就不只是“一个句子”,而是“一个带有明确意图和作用域的动作请求”。

专题、分类、标签这些为什么也要一起打通#

因为博客问答不只是文章内答疑,它还天然带着一点“站内导览”的属性。

用户在专题页里提问,和在文章详情页里提问,其实是两种不同需求:

  • 前者更像“这个专题里有什么主线、我该先看哪些内容”
  • 后者更像“当前这篇文章具体在讲什么,这一段又是什么意思”

如果这两种场景都只用同一套泛化问答策略去处理,AI 的导览能力就会很弱。

所以这次我也把:

  • 首页
  • archive
  • 专题页
  • 分类页
  • 标签页
  • 搜索结果页

都一起纳入了页面级上下文体系里。

这意味着 AI 不只是一个“回答器”,它开始更像一个真正懂站内结构的博客助手。

这次优化以后,实际体验上最大的变化#

主要变化有三点。

第一,文章页里的提问更容易先回答当前文章本身。

不会像之前那样,一些本来很明显应该围绕当前文章回答的问题,却偏到全站泛化说明上去。

第二,当当前文章信息不够时,扩展也更自然。

现在它会更倾向于先说明“当前文章直接命中的信息有限”,再补专题或全站内容,而不是直接突然开始泛讲。

第三,搜索结果追问和划词提问终于更像同一个系统里的自然动作了。

用户并不需要理解底层是怎么检索的,但会明显感觉到:自己在什么位置发起问题,AI 就更像是在那个位置继续接话。

这套方案的取舍#

这次我没有重建 Cloudflare 知识库,也没有大改文章入库主模型。

原因很简单:现有数据结构本身并不是完全不够用,真正缺的是前端上下文到后端检索策略之间那一层稳定映射。

所以相比“重做一套更大的系统”,我更想先把这套博客已有能力真正打磨顺。

也正因为这样,这次优化更像是一次深度融合,而不是一次“另起炉灶”的重构。

后面还可以继续往下做什么#

这一步做完以后,博客 AI 已经明显比之前更知道“自己在哪、该怎么回答”。但如果继续往下走,我觉得还有几个方向可以继续挖。

比如:

  • 继续增强跨文章关系图谱,让“相关文章补充”更稳定
  • 在专题页里做更强的阅读路径推荐
  • 给不同页面类型补更细的提问动作模板
  • 让回答里的来源说明进一步区分“当前文章 / 当前专题 / 全站补充”

这些都不是必须一次做满的东西,但现在基础已经比之前稳了很多,后面继续加能力会更顺手。

最后#

结语图

我一直觉得,博客里的 AI 问答如果只是“接个聊天框”,其实价值很有限。

真正有意思的地方,是让它变成博客系统的一部分,知道当前页面是什么、这篇文章属于哪个专题、用户现在到底在沿着什么路径阅读,以及这个问题应该先从哪一层内容开始回答。

这次做的,就是把这件事往前认真推进了一步。

从之前关注的“AI 能不能回答”,

现在慢慢变成:AI 能不能结合当前上下文,回答得更像这个博客自己的智能助手。

分享

如果这篇文章对你有帮助,欢迎分享!

Cloudflare RAG 与博客上下文深度融合实践:让 AI 真正知道用户现在在看什么
https://ynga.kingcola-icg.cn/posts/cloudflare-rag-blog-context-deep-integration/
作者
HiYnga
发布于
2026-05-30
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

文章评论
浏览量 --
评论数 --
相关文章 智能推荐
1
把 Cloudflare-RAG 真正接进 Mizuki 博客
AI 这一篇专门记录实现细节。包括我怎么把 Mizuki + Astro 的文章目录升级成 session 化 bundle,同步到 Cloudflare-RAG 的 Queue / Workflow / revision 链路,再通过 Edge Functions 和 Cloudflare Functions 做受保护的 embed token 分发与 session 鉴权,让 AI 对话只能被指定博客域名安全内嵌使用。
2
用 Cloudflare-RAG 给我的博客补一个 AI 知识库
AI 记录一下我把 Mizuki + Astro 静态博客接到 Cloudflare-RAG 的思路。前端继续保留原来的 Markdown 内容体系,AI 对话和知识库能力单独放到 Cloudflare 侧,整体起步成本也比我预想中低很多。
3
用阿里云 ESA 给 Cloudflare-RAG 聊天页做一次国内加速
网站搭建 记录一下我怎么把部署在 Cloudflare Pages 上的 Cloudflare-RAG 聊天页,挂到阿里云 ESA 前面做国内访问加速。前面先用 pages.dev 直回源跑通,后面再换成单独的回源域名,把 Host、SNI 和 HTTPS 443 都对齐,整体会稳很多。
4
给博客做一个可以导出文章详情长图的功能
技术实践 记录我如何给博客加上文章详情下载能力,让主线程只负责分段截图,把 PNG 编码和压缩搬到 Web Worker,并同时支持高清长图和 PDF 文章导出。
5
博客 PWA → PakePlus → APP
网站搭建 记录一下我怎么在 Mizuki 静态博客上完善 PWA 能力,再进一步用 PakePlus 做一个手机桌面壳 APP。目标不是另起一套客户端,而是让博客在保留现有自动部署链路的前提下,拥有一个更稳定、更直接的手机访问入口。

目录