当前位置: 首页 > news >正文

使用 Ollama 为 Hexo 博客部署 AI 文章摘要

目录

使用 Ollama 为 Hexo 博客部署 AI 文章摘要

架构概述

Ollama 服务端部署

1. 拉起ollama的容器并设置环境变量防止CORS跨域访问

2. 为ollama下载qwen2.5:0.5b模型

3. 安全加固:配置防火墙

Hexo 服务器配置反向代理

Hexo 主题集成

1. 添加挂载点

2. 引入资源文件

3. 前端核心代码


发布于:

使用 Ollama 为 Hexo 博客部署 AI 文章摘要https://blog.eucalyptus.cc/2026/05/16/%E4%BD%BF%E7%94%A8-Ollama-%E4%B8%BA-Hexo-%E5%8D%9A%E5%AE%A2%E9%83%A8%E7%BD%B2-AI-%E6%96%87%E7%AB%A0%E6%91%98%E8%A6%81/

使用 Ollama 为 Hexo 博客部署 AI 文章摘要

架构概述

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 用户浏览器 │ ──→ │ Hexo 服务器 │ ──→ │ Ollama 服务器 │ │ │ │ (Nginx 代理) │ │ (192.168.0.2)│ │ blog.mingliang │ │ 192.168.1.2 │ │ :11434 │ │ star.com │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ↑ ↑ └──────────── 仅允许 192.168.1.2 访问 ──────┘

Ollama 服务端部署

1. 拉起ollama的容器并设置环境变量防止CORS跨域访问

docker run -d \ -v ollama:/root/.ollama \ -p 11434:11434 \ -e OLLAMA_ORIGINS="https://blog.mingliangstar.com,https://mingliangstar.com,http://localhost,https://localhost" \ -e OLLAMA_HOST="0.0.0.0:11434" \ --name ollama \ ollama/ollama

2. 为ollama下载qwen2.5:0.5b模型

docker exec ollama ollama pull qwen2.5:0.5b

3. 安全加固:配置防火墙

在阿里云安全组中配置:

  • 入方向11434端口:授权对象192.168.1.2
  • 删除所有0.0.0.0/0访问 11434 的规则

Hexo 服务器配置反向代理

在 Hexo 服务器(192.168.1.2)的 Nginx 中配置:

代理目录:/ 目标:url地址 http://192.168.0.2:11434 发送域名:$http_host

为何需要反向代理?

  • 浏览器直接请求 Ollama 存在 CORS 限制
  • 通过同域名代理,前端无跨域问题
  • 隐藏真实 Ollama IP,增强安全性

Hexo 主题集成

1. 添加挂载点

编辑/www/wwwroot/myblog/themes/anzhiyu/layout/post.pug,插入:

... //- AI 摘要区域(由 ai-summary.js 动态渲染) #ai-summary.anzhiyu-ai-summary !=page.content ...

2. 引入资源文件

在主题布局中引入 CSS 和 JS:

inject: head: # 自定义css - <link rel="stylesheet" href="/cdn/css/ai-summary.css"> bottom: # 自定义js - <script defer src="/cdn/js/ai-summary.js"></script>

3. 前端核心代码

ai-summary.js—— 纯前端 Ollama 调用,支持打字机效果和本地缓存:

  • 自动提取文章正文,过滤代码块、图片等干扰内容
  • 调用 Ollama/api/generate接口生成摘要
  • localStorage 缓存:同篇文章 7 天内不再重复请求
  • 打字机效果:逐字输出,增强交互体验
  • 适配 PJAX/Turbolinks 无刷新页面切换

ai-summary.css—— 固定配色方案,支持明暗模式切换:

  • 白天模式:浅灰背景 + 白色正文框
  • 暗色模式:深色背景 + 深色正文框
  • 机器人图标 + 状态指示器(绿色呼吸灯)
  • 移动端自适应
http://www.cnnetsun.cn/news/3658089.html

相关文章:

  • 搭建SpaceOS全域空间底座,五大核心引擎构筑视频孪生闭环技术矩阵
  • 如何快速批量下载歌词?ZonyLrcToolsX跨平台歌词下载工具完整指南
  • CC13x2/CC26x2 MCU事件驱动架构:中断、唤醒与低功耗设计详解
  • 从零实现《三角洲行动》手游自动跑刀脚本:ADB 直控 + OpenCV 视觉识别 + 固定点位搜刮)三角洲自动跑刀教程
  • 数据库挂了服务就瘫?我用PostgreSQL主从流复制搭了高可用架构,cpolar打通远程访问
  • 豆包直接生成 word 效率提升优选,AI 导出鸭整合多类文档导出方式,一站式搞定办公文档转换难题
  • 百考通:AI赋能标准化的格式,让学术梳理高效又专业,实现全流程智能化支撑
  • SCALE: Upscaled Continual Learning of Large Language Models
  • 焊线机与防火墙——楔子:凌晨三点的Fab
  • MFC List Control动态数据管理:从增删改查到虚拟列表与性能优化
  • API中转站选型指南:12项关键指标评估模型服务稳定性与成本优化
  • 深入解析TI MibSPI DMA寄存器:从原理到汽车电子高可靠应用
  • UniUGG系统:3D理解技术革新Linux文件管理
  • 5步彻底解决显卡驱动残留问题:DDU深度清理终极指南
  • 第五节 为什么工程师最容易把 bit 和 Byte 算错?一个大小写,让整个Camera带宽差了8倍!
  • Unity深度冲突解决方案:Reversed-Z原理与实战配置指南
  • 如何免费突破百度网盘限速:Python直链解析工具终极指南
  • 解决Windows中mfcm90u.dll缺失问题的完整指南
  • Token 消耗量,能否成为预测经济活跃度的新指数?-龍德明宇
  • Unity构建报错MSB3774:找不到WindowsMobile SDK的四种解决方案
  • Elasticsearch与Jina AI构建混合搜索引擎实践
  • XGBoost原理与贝叶斯优化调参实战
  • AI产品经理核心能力与技术栈全解析
  • Java:Spring/SpringBoot 核心注解全景总结(附极简Demo)
  • 微信DAT文件解密与EXE工具开发:从异或加密到PyInstaller打包实战
  • 三月七小助手:星穹铁道终极自动化解决方案
  • 电力系统智能运维:配电主站日志分析与AI异常检测
  • 写放大效应WAF:为什么你写入100GB,闪存却承受了300GB的磨损?
  • OpenAI自建数据中心:AI算力基础设施的技术变革与开发者影响
  • 量子思维在AI提示优化中的突破与应用