内容生成脚本使用指南
概述
本目录包含三个用于生成和导入知识内容的脚本:
- generate-content.js - 使用 LLM API 批量生成知识文章
- import-content.js - 将生成的文章导入数据库
- seed-cases.js - 生成示例案例数据
使用步骤
1. 生成知识文章
npm run generate-content
该脚本将:
- 使用 LLM API 生成 30 篇知识文章
- 覆盖 5 个分类:快速入门(quickstart)、K线逻辑(kline)、八字基础(bazi)、大运流年(dayun)、方法误区(method)
- 生成的内容保存到
scripts/generated-articles.json - 输出 SQL 插入语句到控制台
注意事项:
- 确保
.env文件中配置了正确的API_KEY - 生成过程约需 1-2 分钟(包含 2 秒延迟防止 rate limit)
- 如果某篇文章生成失败,会显示错误但继续生成其他文章
2. 导入文章到数据库
npm run import-content
该脚本将:
- 读取
scripts/generated-articles.json - 导入所有文章到
knowledge_articles表 - 使用
INSERT OR REPLACE避免重复
前置条件:
- 必须先运行
generate-content生成文章 - 数据库必须已初始化(运行过
npm run dev或npm start)
3. 生成示例案例
npm run seed-cases
该脚本将:
- 生成 3 个典型案例(早发型、晚成型、大起大落型)
- 每个案例包含完整的 K 线数据(1-80 岁)
- 带有关键节点标注(highlights)
- 导入到
cases表
文章分类说明
quickstart - 快速入门(6篇)
面向新手用户的基础概念和操作指南
kline - K线逻辑(6篇)
解释人生K线图的核心逻辑和解读方法
bazi - 八字基础(8篇)
命理学基础概念的通俗讲解
dayun - 大运流年(6篇)
大运和流年的原理与应用
method - 方法误区(4篇)
常见误区和正确使用方法
数据库结构
knowledge_articles 表
- id: 文章ID
- slug: URL友好的唯一标识符
- title: 标题
- category: 分类
- level: 难度等级(1=入门, 2=进阶, 3=高级)
- tags: 标签数组(JSON)
- summary: 摘要(60字内)
- content: 正文(Markdown格式)
- view_count: 浏览次数
- created_at: 创建时间
- published: 是否发布(1=是, 0=否)
cases 表
- id: 案例ID
- title: 标题
- persona: 角色类型(创业者、企业家等)
- curve_type: 曲线类型(早发、晚成等)
- chart_data: K线数据(JSON数组)
- highlights: 关键节点(JSON数组)
- narrative: 案例叙述
- tags: 标签数组(JSON)
- view_count: 浏览次数
- created_at: 创建时间
- published: 是否发布(1=是, 0=否)
自定义内容
修改文章主题
编辑 generate-content.js 中的 ARTICLES_TO_GENERATE 数组:
const ARTICLES_TO_GENERATE = [
{ topic: '你的主题', category: 'quickstart' },
// ... 更多主题
];
修改案例数据
编辑 seed-cases.js 中的 CASES 数组:
const CASES = [
{
title: '案例标题',
persona: '角色',
curveType: '类型',
narrative: '案例描述',
chartData: generateCustomChart(), // 自定义K线数据
highlights: [
{ age: 30, type: 'peak', note: '关键事件' }
]
}
];
故障排除
生成失败
- 检查 API_KEY 是否正确
- 检查 API_BASE_URL 是否可访问
- 查看错误信息中的具体原因
导入失败
- 确保数据库文件存在(
server/data/lifekline.db) - 检查
generated-articles.json文件格式是否正确 - 确保数据库表已创建(重启服务器会自动创建)
案例数据异常
- K线数据必须是 1-80 岁的完整数组
- 每个数据点必须包含 age, open, close, high, low, score, isGreen 字段
- highlights 中的 age 必须在 1-80 范围内
扩展功能
可以基于这些脚本扩展更多功能:
- 添加文章更新脚本
- 实现增量生成(只生成新主题)
- 添加内容质量检查
- 实现批量标签管理
- 添加文章版本控制