前文:ChatGPT 沦为了我的打工仔
最近在学吴恩达和Langchain合作开发了JavaScript 生成式 AI 短期课程:《使用 LangChain.js 构建 LLM 应用程序》 课程地址:https://learn.deeplearning.ai/build-llm-apps-with-langchain-js
课程简介如下:
GitHub 最近报告称 JavaScript 再次成为世界上最流行的编程语言。为了支持 Web 开发人员探索和开发生成式 AI,我们刚刚推出了一个新的 JavaScript 短期课程,由 @LangChainAI 的创始工程师 @Hacubu 教授。在使用 LangChain.js 构建 LLM 应用程序中,您将学习人工智能开发中常见的元素,包括:
(i) 使用数据加载器从 PDF、网站和数据库等常见来源提取数据 (ii) 提示,用于提供 LLM 上下文 (iii) 支持 RAG 的模块,例如文本分割器以及与向量存储的集成 (iv) 使用不同的模型来编写不特定于供应商的应用程序 (v) 解析器,提取并格式化输出以供下游代码处理
我对这门课非常感兴趣,但是deeplearning官网还没有字幕,学起来非常困难
已经有up搬运并配了机翻字幕,但是感觉很多地方翻译的不是很准确
所以我准备一边学习一边翻译并上传,但是这个字幕翻译工作还是蛮费功夫的,原本更了一期就弃疗了
但是有点不甘心,又摸索了一下,目前已找到一个相对完美的工作流,效率和效果还算满意,准备继续翻译下去了
感兴趣的同学可以关注一下:https://www.bilibili.com/video/BV1Te411m7ys
这里GPT-4帮了我两个大忙,一个是翻译,一个是让它帮我写了一段Python脚本整理翻译的文案
我的提问如下**:
我有两个文本
一个是
代码语言:javascript复制1
00:00:00,000 --> 00:00:07,000
In this lesson, you'll learn some of the basic building blocks of LLM applications, namely prompt templates, models, and parsers.
2
00:00:07,000 --> 00:00:12,000
And you'll learn a bit about how to combine them together to create chains with Langchain Expression Language.
3
00:00:12,000 --> 00:00:13,000
Let's dive in.
另一个是
代码语言:javascript复制[
"在这节课中,你将学习LLM应用的一些基础组成部分,即提示模板、模型和解析器。",
"你还会了解一些如何将它们结合起来,使用Langchain表达式语言创建链条。",
"让我们开始吧。",
]
请帮我写一段Python,将其整理为
代码语言:javascript复制1
00:00:00,000 --> 00:00:07,000
在这节课中,你将学习LLM应用的一些基础组成部分,即提示模板、模型和解析器。
2
00:00:07,000 --> 00:00:12,000
你还会了解一些如何将它们结合起来,使用Langchain表达式语言创建链条。
3
00:00:12,000 --> 00:00:13,000
让我们开始吧。
GPT-4 给了我完美可执行代码:
代码语言:javascript复制你可以使用Python来读取这两个文本,然后把它们结合在一起,输出最终的格式。以下是一个简单的Python脚本,它将执行这个任务:
# 假设第一个文本储存在english_subtitles.srt中,第二个文本储存在translated_texts.json中
# 读取SRT文件
with open('english_subtitles.srt', 'r', encoding='utf-8') as file:
english_subtitles = file.readlines()
# 读取翻译后的JSON文件
with open('translated_texts.json', 'r', encoding='utf-8') as file:
translated_texts = eval(file.read())
# 确保翻译文本的数量与SRT文件中的条目数量相同
assert len(translated_texts) == english_subtitles.count('n') / 2
# 初始化索引和结果列表
index = 0
result = []
# 遍历英文字幕列表
for line in english_subtitles:
if '-->' in line:
# 时间轴保持不变
result.append(line)
elif line.strip().isdigit():
# 序号保持不变
result.append(line)
elif line.strip() == '':
# 翻译文本替换原文本
result.append(translated_texts[index].strip() 'n')
index = 1
result.append('n')
# 写入最终的翻译字幕文件
with open('translated_subtitles.srt', 'w', encoding='utf-8') as file:
file.writelines(result)
print("翻译字幕已经成功保存为translated_subtitles.srt")
这个脚本会做以下工作:
- 读取英文字幕文件(SRT格式)
- 读取翻译后的文本(JSON格式)
- 遍历SRT文件的每一行,当遇到时间轴或序号时,保持原样输出
- 当遇到英文文本时,用对应的中文翻译替换
- 将最终结果写入新的SRT文件
确保你的文件名与脚本中的文件名相匹配,或者根据你的文件名修改脚本中的路径。此外,确保你有权限读取和写入这些文件。
ok,继续学习去了,88