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解析功能
|
||
- 两种方法可以结合使用,提供更全面的内容处理能力
|