# ai-blog **Repository Path**: flex-gitee/ai-blog ## Basic Information - **Project Name**: ai-blog - **Description**: Personal AI Blog with Ollama chatbot and Payload CMS - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My AI Blog 个人 AI 博客,集成 Ollama 聊天机器人和 Payload CMS 后台管理。 ## 功能特性 - **AI 聊天助手** - 基于本地 Ollama 模型的智能对话 - **博客管理** - 通过 Payload CMS 后台管理文章、分类和媒体 - **知识图谱** - D3.js 可视化文章关联关系 - **命令面板** - Cmd+K 快速搜索博客内容 - **响应式设计** - 完美适配桌面和移动设备 - **暗色主题** - 支持暗色/亮色主题切换 - **Markdown 渲染** - 支持 Mermaid 图表、LaTeX 数学公式、代码高亮 ## 技术栈 - **前端框架**: Next.js 16 + React 19 - **UI 组件**: shadcn/ui + Radix UI + Tailwind CSS v4 - **CMS**: Payload CMS v3 - **AI SDK**: Vercel AI SDK + Ollama - **数据库**: PostgreSQL - **包管理器**: Bun ## 快速开始 ### 1. 克隆仓库 ```bash git clone https://gitee.com/flex-gitee/ai-blog.git cd ai-blog/web ``` ### 2. 安装依赖 ```bash bun install ``` ### 3. 配置环境变量 复制 `.env.example` 为 `.env` 并配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env # Payload CMS DATABASE_URI=postgresql://localhost:5432/blog PAYLOAD_SECRET=your-secret-key-here # Ollama OLLAMA_BASE_URL=http://localhost:11434/v1 OLLAMA_MODEL=your-distilled-model ``` ### 4. 运行预构建 ```bash bun scripts/prebuild.ts ``` ### 5. 启动开发服务器 ```bash bun run dev ``` 访问 http://localhost:3000 查看博客。 ## 项目结构 ``` web/ ├── app/ │ ├── (payload)/admin/ # Payload CMS 后台管理 │ ├── api/chat/route.ts # Ollama 聊天 API │ ├── chat/page.tsx # AI 聊天页面 │ ├── blog/ # 博客页面 │ └── page.tsx # 首页 ├── collections/ # Payload CMS 数据集合 │ ├── Posts.ts # 博客文章 │ ├── Categories.ts # 分类 │ ├── Media.ts # 媒体文件 │ └── Users.ts # 用户 ├── components/ # React 组件 │ ├── chat-page.tsx # 聊天页面组件 │ ├── home-chat.tsx # 首页聊天组件 │ └── ui/ # shadcn/ui 组件 ├── lib/ai/ │ └── ollama-provider.ts # Ollama 配置 ├── payload.config.ts # Payload CMS 配置 └── content/ # 博客内容(Markdown) ``` ## 功能说明 ### AI 聊天 - 访问 `/chat` 进入完整聊天界面 - 首页也集成了聊天组件 - 支持流式响应和打字机效果 - 可复制消息内容 ### 后台管理 - 访问 `/admin` 进入 Payload CMS 后台 - 支持文章的创建、编辑、删除 - 分类和标签管理 - 媒体文件上传 - 草稿/发布状态切换 ### 博客功能 - 支持 Obsidian 兼容的 Markdown 语法 - 知识图谱可视化 - 文章反向链接 - 命令面板搜索(Cmd+K) - 阅读时间估算 - 目录导航 ## 配置 Ollama 1. 安装 Ollama:https://ollama.ai 2. 拉取模型:`ollama pull llama3.2` 3. 启动 Ollama 服务:`ollama serve` 4. 在 `.env` 中配置模型名称 ## 部署 ### 本地开发 ```bash bun run dev ``` ### 生产构建 ```bash bun run build bun run start ``` ### Docker 部署 ```dockerfile FROM oven/bun:latest WORKDIR /app COPY package.json bun.lock ./ RUN bun install COPY . . RUN bun run build EXPOSE 3000 CMD ["bun", "run", "start"] ``` ## 许可证 MIT License