187 lines
3.9 KiB
Markdown
187 lines
3.9 KiB
Markdown
|
|
# AI Content Analyzer & Markdown Converter
|
|||
|
|
|
|||
|
|
一个集成了AI内容分析和Markdown转换功能的完整工具集。
|
|||
|
|
|
|||
|
|
## 核心逻辑链
|
|||
|
|
|
|||
|
|
**AI处理 → 生成Markdown → Markdown转JSON**
|
|||
|
|
|
|||
|
|
1. **AI内容分析器** (`json_openai.py`) - 使用AI分析文章并生成Markdown格式
|
|||
|
|
2. **Markdown转换器** (`markdownToJSON.ts`) - 将AI生成的Markdown转换为JSON树形结构
|
|||
|
|
|
|||
|
|
## 项目功能
|
|||
|
|
|
|||
|
|
### 1. AI内容分析器 (`json_openai.py`)
|
|||
|
|
- 使用智谱AI API分析文章结构
|
|||
|
|
- 将分析结果转换为标准Markdown格式
|
|||
|
|
- 支持标题层级和列表项生成
|
|||
|
|
- 支持流式响应处理
|
|||
|
|
|
|||
|
|
### 2. Markdown转换器 (`markdownToJSON.ts`)
|
|||
|
|
- 将Markdown文本转换为JSON树形结构
|
|||
|
|
- 支持标题层级解析(# ## ###)
|
|||
|
|
- 处理列表项和嵌套结构(- 列表项)
|
|||
|
|
- TypeScript实现,类型安全
|
|||
|
|
|
|||
|
|
## 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装Python依赖
|
|||
|
|
pip install openai
|
|||
|
|
|
|||
|
|
# 安装Node.js依赖
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 完整流程演示
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# 运行完整流程测试
|
|||
|
|
python3 test_simple_pipeline.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### AI内容分析(生成Markdown)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from json_openai import llm_format_text, EXTRACT_OUNTLINE_SYSTEM_PROMPT
|
|||
|
|
|
|||
|
|
# 配置API
|
|||
|
|
model = "glm-4.5"
|
|||
|
|
base_url = "https://open.bigmodel.cn/api/paas/v4/"
|
|||
|
|
api_key = "your_api_key"
|
|||
|
|
|
|||
|
|
# 分析内容并生成Markdown
|
|||
|
|
messages = [
|
|||
|
|
{"role": "system", "content": EXTRACT_OUNTLINE_SYSTEM_PROMPT},
|
|||
|
|
{"role": "user", "content": "你的文章内容"}
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
markdown_result = llm_format_text(model, base_url, api_key, messages, 2000)
|
|||
|
|
print(markdown_result) # 输出Markdown格式
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Markdown转换
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { markdownToJSON } from './markdownToJSON.js';
|
|||
|
|
|
|||
|
|
const markdown = `# 主标题
|
|||
|
|
## 第一章
|
|||
|
|
内容...
|
|||
|
|
- 列表项`;
|
|||
|
|
|
|||
|
|
const result = markdownToJSON(markdown);
|
|||
|
|
console.log(JSON.stringify(result, null, 2));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 运行测试
|
|||
|
|
|
|||
|
|
### 完整流程测试
|
|||
|
|
```bash
|
|||
|
|
python3 test_simple_pipeline.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 单独测试
|
|||
|
|
|
|||
|
|
#### Python测试(AI生成Markdown)
|
|||
|
|
```bash
|
|||
|
|
python3 test_json_openai.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### TypeScript测试(Markdown转JSON)
|
|||
|
|
```bash
|
|||
|
|
npm run build
|
|||
|
|
npm test
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ai-content-analyzer/
|
|||
|
|
├── json_openai.py # AI内容分析主函数
|
|||
|
|
├── test_json_openai.py # Python测试文件
|
|||
|
|
├── markdownToJSON.ts # Markdown转换函数
|
|||
|
|
├── test_markdown.ts # TypeScript测试文件
|
|||
|
|
├── tsconfig.json # TypeScript配置
|
|||
|
|
├── package.json # Node.js项目配置
|
|||
|
|
├── dist/ # 编译输出目录
|
|||
|
|
│ ├── markdownToJSON.js
|
|||
|
|
│ ├── test_markdown.js
|
|||
|
|
│ └── *.d.ts
|
|||
|
|
└── README.md # 项目说明
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 输出格式
|
|||
|
|
|
|||
|
|
### AI生成的Markdown格式
|
|||
|
|
```markdown
|
|||
|
|
# 文章主标题
|
|||
|
|
|
|||
|
|
## 第一章
|
|||
|
|
这是第一章的内容概述。
|
|||
|
|
|
|||
|
|
### 1.1 小节
|
|||
|
|
这是小节的具体内容。
|
|||
|
|
|
|||
|
|
- 要点1
|
|||
|
|
- 要点2
|
|||
|
|
- 子要点2.1
|
|||
|
|
- 子要点2.2
|
|||
|
|
|
|||
|
|
## 第二章
|
|||
|
|
这是第二章的内容概述。
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Markdown转换结果
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"nodeData": {
|
|||
|
|
"id": "root",
|
|||
|
|
"topic": "主标题",
|
|||
|
|
"root": true,
|
|||
|
|
"expanded": true,
|
|||
|
|
"children": [
|
|||
|
|
{
|
|||
|
|
"topic": "章节标题",
|
|||
|
|
"id": "unique_id",
|
|||
|
|
"direction": 0,
|
|||
|
|
"expanded": true,
|
|||
|
|
"children": []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"linkData": {}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
### AI API配置
|
|||
|
|
- **模型**: glm-4.5 (智谱AI)
|
|||
|
|
- **基础URL**: https://open.bigmodel.cn/api/paas/v4/
|
|||
|
|
- **需要**: 有效的API密钥
|
|||
|
|
|
|||
|
|
### TypeScript配置
|
|||
|
|
- **目标**: ES2020
|
|||
|
|
- **模块**: ES2020
|
|||
|
|
- **严格模式**: 启用
|
|||
|
|
|
|||
|
|
## 功能特点
|
|||
|
|
|
|||
|
|
✅ **AI驱动的内容分析**
|
|||
|
|
✅ **智能结构识别**
|
|||
|
|
✅ **多层级标题解析**
|
|||
|
|
✅ **写作风格分析**
|
|||
|
|
✅ **Markdown到JSON转换**
|
|||
|
|
✅ **类型安全的TypeScript实现**
|
|||
|
|
✅ **完整的错误处理**
|
|||
|
|
✅ **流式响应支持**
|
|||
|
|
|
|||
|
|
## 开发说明
|
|||
|
|
|
|||
|
|
- Python代码使用OpenAI库调用智谱AI API
|
|||
|
|
- TypeScript代码提供本地Markdown解析功能
|
|||
|
|
- 两种方法可以结合使用,提供更全面的内容处理能力
|