字
字节笔记本
2026年2月22日
Everyday Story Generator - AI 每日故事生成器
Everyday Story Generator 是一个基于多 LLM 模型的创意故事生成工具,能够自动获取金山词霸每日一句,并使用 AI 将其扩展成完整的微型小说。该项目支持 DeepSeek、智谱清言、Kimi、豆包、通义千问等多种大语言模型,通过 GitHub Actions 实现每日自动化生成,并内置精美的 VitePress 文档站点展示生成的故事。
项目简介
Everyday Story Generator 的核心理念是"让经典名言焕发新生"。它从金山词霸获取每日一句经典名言,然后利用多种 AI 大模型(DeepSeek、智谱清言、Kimi、豆包、通义千问等)将这句名言扩展成一个跌宕起伏的微型小说。项目采用时空胶囊式的存储结构,按照年/月/日三维归档,自动生成时光隧道般的故事索引。
截至目前,该项目在 GitHub 上已获得 60+ stars,由 Liao-Ke 开发维护,采用 MIT 开源协议。
核心特性
- 智能续写引擎:基于 DeepSeek、智谱清言等多个 AI 引擎,将金句拓展成跌宕起伏的微型小说
- 时空胶囊式存储:采用
年/月/日三维归档系统,自动生成时光隧道般的故事索引 - 沉浸式文档站点:内置精美 VitePress 知识库,支持实时故事画廊浏览
- 云端自动化:GitHub Actions 每日定时生成故事,打造永不间断的文学瀑布流
- 多模型并发支持:支持同时调用多个 AI 模型生成不同版本的故事
- 词云分析功能:内置中文词云生成器,可分析故事文本的关键词分布
技术栈
后端技术
- Python 3.11 - 核心开发语言
- OpenAI SDK - 统一调用各大 LLM API
- Requests - HTTP 请求处理
- Jieba - 中文分词处理
- Matplotlib + WordCloud - 词云可视化
- python-dotenv - 环境变量管理
- ruamel.yaml - YAML 配置文件解析
前端技术
- VitePress 1.6.4 - 静态文档站点生成器
- TypeScript - 类型安全的 JavaScript
- Medium Zoom - 图片缩放插件
- vite-plugin-compression - 资源压缩插件
部署与自动化
- GitHub Actions - 定时自动化任务
- Cloudflare Pages - 静态站点托管
安装指南
前置要求
- Python >= 3.11
- Node.js >= 18
- Conda(推荐用于 Python 环境管理)
步骤 1:克隆仓库
bash
git clone https://github.com/Liao-Ke/everyday.git
cd everyday步骤 2:创建 Python 虚拟环境
bash
conda create -n storygen python=3.11
conda activate storygen
pip install -r requirements.txt步骤 3:配置 API 密钥
创建 .env 文件,添加以下 API 密钥(至少需要一个):
bash
# 智谱清言 API 密钥
API_KEY=your_zhipu_api_key
# DeepSeek API 密钥
API_KEY_DS=your_deepseek_api_key
# Kimi API 密钥
API_KEY_KIMI=your_kimi_api_key
# 豆包 API 密钥
API_KEY_DOUBAO=your_doubao_api_key
# 通义千问 API 密钥
API_KEY_QWEN=your_qwen_api_key获取 API 密钥:
步骤 4:运行故事生成器
bash
python main.py快速开始
启动文档站点(本地预览)
bash
# 安装依赖
npm install
# 启动开发服务器
npm run docs:dev访问 http://localhost:5173 查看故事展示站点。
构建生产版本
bash
npm run docs:build
npm run docs:preview使用示例
单模型生成故事
python
from main import story_generator
# 使用 DeepSeek 模型生成故事
result = story_generator("deepseek")
print(result)多模型并发生成
python
from main import run_multi_thread
# 指定要使用的模型
models_to_use = [
"deepseek",
"zhipu",
"qwen",
"gemini"
]
# 并发生成,最多 4 个线程
results = run_multi_thread(models_to_use, max_workers=4)
# 查看各模型生成结果
for model_name, story in results.items():
print(f"\n=== {model_name} ===")
print(story)词云分析
bash
python wordcloud_analysis.py该脚本会分析 story 目录下的所有 Markdown 文件,生成词云图片展示高频词汇。
项目结构
text
everyday/
├── story/ # 生成的故事存储目录
│ ├── 2025年/ # 按年份组织
│ │ ├── 01月/ # 按月份组织
│ │ │ └── 05日/ # 按日期组织
│ │ │ └── story.md # 当日生成的故事
│ ├── images/ # 故事配图存储
│ └── .vitepress/ # VitePress 配置和主题
├── config/ # 配置文件目录
├── model_configs/ # AI 模型配置文件
├── preprocessor/ # 前置处理器
├── processors/ # 后置处理器
├── utils/ # 工具函数
├── chat_logs/ # AI 对话日志
├── .github/workflows/ # GitHub Actions 工作流
├── main.py # 主程序入口
├── wordcloud_analysis.py # 词云分析脚本
└── requirements.txt # Python 依赖支持的 AI 模型
项目目前支持以下大语言模型:
| 模型名称 | 配置标识 | 特点 |
|---|---|---|
| DeepSeek V3 | deepseek_v3 | 推理能力强,性价比高 |
| 智谱清言 | zhipu | 中文理解优秀 |
| 智谱 4.5 Flash | zhipu_4_5_flash | 快速响应 |
| 豆包 | doubao | 字节跳动出品 |
| 豆包-思考 | doubao_think | 深度思考模式 |
| 通义千问 | qwen | 阿里云大模型 |
| Gemini | gemini | Google 大模型 |
| ModelScope 体验模型 | experience_modelscope | 免费体验 |
配置自定义模型
在 model_configs/ 目录下创建新的模型配置文件,例如 my_model_config.py:
python
import os
from preprocessor.my_preprocessor import my_preprocessor
from processors.my_processor import my_processor
from processors.file_processors import save_to_markdown
API_KEY = os.getenv("MY_MODEL_API_KEY")
CLIENT_PARAMS = {
"base_url": "https://api.my-model.com/v1",
"timeout": 60
}
CHAT_PARAMS = {
"model": "my-model-name",
"temperature": 0.8,
"max_tokens": 2000,
"stream": True
}
# 前置处理器(在调用 API 前执行)
PREPROCESSORS = [my_preprocessor]
# 后置处理器(在获取响应后执行)
POSTPROCESSORS = [my_processor]
# 文件处理器(保存到文件)
POSTPROCESSOR_FILES = [save_to_markdown]自动化工作流
项目使用 GitHub Actions 实现每日自动故事生成:
yaml
name: Daily Story Generator
on:
schedule:
# 每天 UTC 时间 02:00 运行(北京时间 10:00)
- cron: '0 2 * * *'
workflow_dispatch: # 支持手动触发
jobs:
generate-story:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Generate story
env:
API_KEY: ${{ secrets.API_KEY }}
API_KEY_DS: ${{ secrets.API_KEY_DS }}
# ... 其他 API 密钥
run: python main.py
- name: Deploy to Cloudflare Pages
run: npm run docs:build && deploy...在线预览
- 故事展示站点:https://story-aii.pages.dev/
- GitHub 仓库:https://github.com/Liao-Ke/everyday
贡献指南
欢迎各种形式的贡献:
- 提交新的故事生成算法(Issue/PR)
- 优化 VitePress 主题样式
- 创作配套视觉元素
- 改进文档和说明
许可证
本项目遵循 MIT 开放协议,您可以自由使用、修改和分享这些故事结晶,唯需保留原创魔法印记。
特别鸣谢
- 智慧之源:金山词霸每日一句
- 灵感催化剂:DeepSeek、智谱 AI、Kimi、豆包、通义千问
- 时空建筑师:VitePress
- 自动化工程师:GitHub Actions
- 魔法绽放平台:Cloudflare Pages
让每个平凡的日子,都有不平凡的故事 ✨
分享: