传统博客搜索通常依赖关键词匹配。关键词写得准确,搜索结果还不错;关键词稍微换一种说法,就很容易搜不到内容。为了让博客访客能用更自然的方式查找文章,我做了一个 Typecho 插件:DeepSearch。其实也不是我做的,是Vide Coding做的,我只负责调试和提供修改思路。DeepSearch 的目标很直接:让博客拥有一个对话式智能搜索助手。访客可以像聊天一样提问,插件先在本地文章索引中检索相关内容,再把检索到的文章信息交给 DeepSeek,让模型基于博客内容生成回答,并附上引用文章。
本页面是插件DeepSearch插件的唯一发布地址,后面更新版本下载地址也在本网页发布!
下载地址
插件目录名为 DeepSearch,放入 Typecho 的 /usr/plugins/ 目录后即可启用。
如果你也在用 Typecho,并且想给博客加一个基于 DeepSeek 的智能搜索助手,可以试试这个插件。后续如果遇到兼容性问题、接口问题或搜索效果问题,也欢迎反馈,我会继续完善,其实你们自己用AI完善也可以。
下载地址:DeepSearch_V1.0.8 - 蓝奏云网盘下载 密码:gtch
它能做什么
DeepSearch 主要提供这些能力:
- 为 Typecho 已发布文章建立本地索引。
- 前台提供悬浮式 AI 搜索入口。
- 支持自然语言提问,不要求访客精确输入关键词。
- 回答时可以结合博客文章内容,并返回相关文章。
- 支持明亮/黑暗两种前端主题,适配不同博客风格。
- 支持后台配置 DeepSeek API、模型、提示词和检索数量。
- 支持 API 连通测试、索引重建、索引清空。
- 支持请求频率限制、单句长度限制、最大输出 Token 限制。
- API Key 只保存在服务端,不会输出到浏览器前端。
前端界面采用半透明毛玻璃风格。打开搜索窗口时,底层页面会有暗场遮罩,聊天面板悬浮在页面上方,视觉上更聚焦。对于偏浅色或米色的博客主题,也可以在后台把默认主题设置为明亮模式。
基本工作流程
DeepSearch 不是直接把用户的问题丢给大模型回答,而是先走本地检索:
用户提问 -> 后端校验请求 -> 本地文章索引检索 -> 构造上下文 -> 调用 DeepSeek -> 返回回答和引用文章这样做的好处是回答更贴近博客已有内容。比如访客问“有没有关于证书续期的文章”,插件会先搜索站内相关文章,再让 DeepSeek 根据这些文章内容总结回答。
如果 DeepSeek 接口暂时不可用,插件会降级为本地搜索模式,至少还能返回关键词匹配到的文章列表。
安装方式
把插件放到 Typecho 插件目录:
/usr/plugins/DeepSearch/确认入口文件路径为:
/usr/plugins/DeepSearch/Plugin.php然后进入 Typecho 后台:
- 打开「控制台」->「插件」。
- 启用
DeepSearch。 - 进入插件设置页。
- 填写 DeepSeek API Key。
- 点击「写入」保存 API Key。
- 点击「连通」测试 DeepSeek 是否能正常响应。
- 点击「立即重建索引」建立初始文章索引。
完成后,前台页面右下角会出现 AI 搜索按钮。
后台配置
插件后台包含常用配置项:
- DeepSeek API Key
- API 地址
- 模型名称
- 自定义模型名称
- 温度
- 最大 Token 数
- 多轮对话上下文轮数
- 本地检索数量 Top-K
- 系统提示词
- 前端显示方式
- 默认主题色调
- 单句长度限制
- 每小时请求限制
- 自动增量更新索引
其中「连通」「立即重建索引」「清空索引」都使用 AJAX 执行,结果会在当前页面弹窗提示,不会反复跳回插件管理页面。
文章数量比较多时,重建索引会分批执行,默认每批 20 篇。这样可以减少一次请求跑太久导致页面假死、服务器断开连接或出现 ERR_EMPTY_RESPONSE 的情况。
接入大模型后,费用控制很重要。DeepSearch 做了几层限制:
- 单句长度限制:默认 150 字,避免有人提交超长问题。
- 每小时请求限制:默认每位访客 50 次。
- 最大 Token 数:限制模型单次回答长度。
- 请求体大小限制:防止伪造超大 JSON 请求。
- 多轮上下文轮数限制:避免历史对话无限增长。
如果你的博客访问量比较大,建议把「每小时请求限制」和「最大 Token 数」设置得更保守一些。
关于 API Key 安全
DeepSeek API Key 不会出现在前端 JS 中。
插件的安全边界是:
- API Key 保存在 Typecho 插件配置中,并经过插件加密处理。
- 后台输入框不会回填明文 Key,只显示脱敏提示。
- 前端
DeepSearchConfig不包含 API Key。 - 浏览器只请求本站
/action/deepsearch?do=search。 - 真正的
Authorization: Bearer ...只在服务端请求 DeepSeek 时生成。 - 前台请求带同源 Referer 和 CSRF Token 校验。
- API Key 写入后会立即回读验证,避免出现“提示成功但实际没保存”的问题。
简单说,访客只能请求你博客自己的接口,拿不到 DeepSeek API Key。
适合谁使用
DeepSearch 适合这些场景:
- Typecho 博客文章较多,传统搜索不好用。
- 希望访客用自然语言查找文章。
- 希望让旧文章更容易被重新发现。
- 希望在不改主题核心逻辑的情况下增加 AI 搜索入口。
- 希望 API Key 保持在服务端,不暴露给前端。
一些使用建议
首次启用后一定要重建索引,否则前台问答没有文章上下文可用。
文章标题、标签、分类越清晰,检索效果越好。AI 回答并不是凭空知道博客内容,它依赖插件检索到的文章上下文。
如果发现回答过于保守或关联能力不足,可以调整系统提示词和 Top-K 数量。Top-K 越大,模型能看到的候选文章越多,但请求上下文也会变长。
赞赏作者


如果觉得我的文章对你有用,请随意赞赏!














