一、目的
在上一篇文章《基于开源软件本地搭建视频语音转文字》中,实现了在本地通过 FFmpeg + Whisper 的技术方案将视频中的语音提取出来形成文字。但生成的文字内容口语化比较严重,所以想通过大语言模型将这些冗长的文字内容整理成学习笔记,便于保存和回顾。
二、技术路线
编写一段 Python 代码,把视频讲解的文案文本交给大语言模型,让 AI 帮忙把这些文案总结成结构化的学习笔记。
- 大语言模型使用 智谱清言 大语言模型提供的 Python API
三、技术实现
技术实现路径:
- 读取视频文案文本(支持本地 txt 文件或直接传入字符串);
- 构造清晰的提示词(Prompt),引导 AI 按 "学习笔记" 的格式总结;
- 调用大语言模型 API,提交文案和提示词;
- 接收并保存 / 输出 AI 生成的学习笔记。
完整代码实现
首先需要安装智谱清言的依赖库:
bash
# 安装最新版本
pip install zai-sdk
# 或指定版本
pip install zai-sdk==0.2.0
以下是完整代码(包含详细注释):
python
#!/usr/bin/env python3
import os
from zai import ZhipuAiClient
def summarize_to_notes (script_text, model="glm-4.7", save_to_file=False, save_file_path="note.md"):
"""
将视频文案总结为结构化的学习笔记
:param script_text: 视频讲解的文案文本(字符串)
:param model: 使用的大语言模型
:param save_to_file: 是否将笔记保存到本地文件
:return: AI 生成的学习笔记文本
"""
# 初始化智谱清言服务的客户端(兼容 OpenAI 官方 API)
client = ZhipuAiClient(api_key="your-api-key")
# 构造提示词:明确要求 AI 按学习笔记的格式总结,包含核心知识点、重点、易错点等
prompt = f"""
你是一位资深的教育内容设计师,擅长将冗长的讲座或视频内容提炼为结构清晰、易于理解的学习笔记。
你的核心任务是将我提供的视频文字稿(口语化转录文本)转化为一份结构化的课程笔记。这份笔记需逻辑严谨、通俗易懂,并明确展现内容间的推导关系。
请严格按照以下格式和要求生成笔记:
**输出格式:**
1. 生成一个主标题,格式为 `# 学习笔记:[根据内容提炼的主题]`。
2. 将内容组织成带有层级的章节(使用 `##`、`###`、`-` 等Markdown语法)。
3. 对核心知识点,如不同概念的层级关系、定义、案例等,使用表格、列表等形式进行清晰归纳和对比。
4. **【关键要求】** 在每个主要章节或知识模块的末尾,必须添加一个"> **逻辑衔接:**"段落。该段落需主动说明:接下来要介绍的内容是为了解决什么问题或疑问,从而引出下一章节。这解释了内容安排的合理性与逻辑性。
**语言风格:**
- 语言通俗易懂,避免晦涩术语堆砌。
- 多使用比喻、类比或生活案例来解释抽象概念。
- 保持叙述的连贯性和亲和力,如同一位导师在引导读者。
请基于我接下来提供的文字稿内容,开始生成笔记。
输入内容(视频文字稿):
{script_text}
"""
try:
# 调用大语言模型 API
response = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "你是一位资深的教育课程设计师和知识架构师,擅长将口语化的视频文字稿转化为结构清晰、逻辑严密、易于复习的 Markdown 格式学习笔记。"},
{"role": "user", "content": prompt}
],
# stream=True,
temperature=0.3, # 降低随机性,让总结更严谨
max_tokens=10000 # 限制输出长度(可根据文案长度调整)
)
# for chunk in response:
# if chunk.choices[0].delta.content:
# print(chunk.choices[0].delta.content, end='')
# 提取 AI 生成的学习笔记
learning_notes = response.choices[0].message.content.strip()
# learning_notes = ""
# 如果需要保存到本地文件
if save_to_file:
with open(save_file_path, "w", encoding="utf-8") as f:
f.write(learning_notes)
print("学习笔记已保存到:{save_file_path}")
return learning_notes
except Exception as e:
print(f"调用 API 时出错:{e}")
return None
def read_text_file(file_path):
"""读取文本文件为字符串"""
try:
with open(file_path, "r", encoding="utf-8") as file:
return file.read()
except Exception as e:
print(f"读取文件失败:{e}")
return None
# ------------------- 示例使用 -------------------
if __name__ == "__main__":
# 读取视频文案文件
script_text = read_text_file("07-机器学习上.txt")
if script_text:
notes = summarize_to_notes(script_text)
if notes:
print("\n=== 生成的学习笔记 ===")
print(notes)
最终效果
将上一篇文章《基于开源软件本地搭建视频语音转文字》中生产的 "视频文案.txt" 提交给大语言模型处理后,得到了不错的课程笔记(包括课程内容,以及内容的总结,知识点的逻辑关系和前后衔接),便于后续反复阅读和复习。
改进方向
实现中发现,提交给大语言的提示词对生产结果有巨大影响,同样使用智谱清言的模型,好的提示词和简单的提示词生成的结果差别很大。大家可以更具自己要总结的视频文案内容对提示词进行有正对性的调整。希望得到更多惊喜。