File size: 4,109 Bytes
4d48c94 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# 内容生成脚本使用指南
## 概述
本目录包含三个用于生成和导入知识内容的脚本:
1. **generate-content.js** - 使用 LLM API 批量生成知识文章
2. **import-content.js** - 将生成的文章导入数据库
3. **seed-cases.js** - 生成示例案例数据
## 使用步骤
### 1. 生成知识文章
```bash
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. 导入文章到数据库
```bash
npm run import-content
```
该脚本将:
- 读取 `scripts/generated-articles.json`
- 导入所有文章到 `knowledge_articles` 表
- 使用 `INSERT OR REPLACE` 避免重复
**前置条件:**
- 必须先运行 `generate-content` 生成文章
- 数据库必须已初始化(运行过 `npm run dev` 或 `npm start`)
### 3. 生成示例案例
```bash
npm run seed-cases
```
该脚本将:
- 生成 3 个典型案例(早发型、晚成型、大起大落型)
- 每个案例包含完整的 K 线数据(1-80 岁)
- 带有关键节点标注(highlights)
- 导入到 `cases` 表
## 文章分类说明
### quickstart - 快速入门(6篇)
面向新手用户的基础概念和操作指南
### kline - K线逻辑(6篇)
解释人生K线图的核心逻辑和解读方法
### bazi - 八字基础(8篇)
命理学基础概念的通俗讲解
### dayun - 大运流年(6篇)
大运和流年的原理与应用
### method - 方法误区(4篇)
常见误区和正确使用方法
## 数据库结构
### knowledge_articles 表
```sql
- id: 文章ID
- slug: URL友好的唯一标识符
- title: 标题
- category: 分类
- level: 难度等级(1=入门, 2=进阶, 3=高级)
- tags: 标签数组(JSON)
- summary: 摘要(60字内)
- content: 正文(Markdown格式)
- view_count: 浏览次数
- created_at: 创建时间
- published: 是否发布(1=是, 0=否)
```
### cases 表
```sql
- 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` 数组:
```javascript
const ARTICLES_TO_GENERATE = [
{ topic: '你的主题', category: 'quickstart' },
// ... 更多主题
];
```
### 修改案例数据
编辑 `seed-cases.js` 中的 `CASES` 数组:
```javascript
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 范围内
## 扩展功能
可以基于这些脚本扩展更多功能:
- 添加文章更新脚本
- 实现增量生成(只生成新主题)
- 添加内容质量检查
- 实现批量标签管理
- 添加文章版本控制
|