【定位】:Datawhale AI 夏令营 第四期 Task3 应用练手demo
【学习手册链接】:https://linklearner.com/activity/14/11/25
【练手材料来源】:《三体》 https://github.com/JessyTsui/awesome_LLM_beginner.git
- 本文不会按照baseline和代码顺序讲解代码,而是以项目实践顺序来讲解,推荐先阅读学习手册后有各个模块的简易理解,再阅读本篇笔记。(偷一个流程图充下场面。)
- 这篇baseline很有特点,没有调用什么langchain框架,文档处理那些步骤几乎都是很原始的。
文章目录
1. 数据准备与预处理
当我们顺利跑通baseline之后,由于baseline的测试knowledge仅为一个三行文本。
我们是否可以直接基于baseline的代码应用于其他材料?
碰巧同组队友推荐了上述练手材料,故下载仓库
# 切换到Task3位置,再新建终端
git clone https://github.com/JessyTsui/awesome_LLM_beginner.git
完成后直接修改文档地址:
我们可以看到此时的文件编码不对,是因为再构建索引的时候是指定utf-8读取的。
解决方案:
- 方案1:确认源文档的编码方式后,在向量库索引构建时指定对应的编码方式,不过遇到其他的编码方式可能得再次修改代码。
- 方案2:靠代码去读取并且转为utf-8编码。我们新增一个格式转化的代码块进行处理。
import codecs
file_list = ["./awesome_LLM_beginner/resource/三体1疯狂年代.txt",
"./awesome_LLM_beginner/resource/三体2黑暗森林.txt",
"./awesome_LLM_beginner/resource/三体3死神永生.txt",
]
def convert_to_utf8(file_list):
for file_path in file_list:
try:
# 尝试以 utf-8 编码读取文件
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
# 如果读取成功,则以 utf-8 编码写入同一个文件
with open(file_path, 'w', encoding='utf-8') as file:
file.write(content)
print(f"文件 '{
file_path}' 已经是 UTF-8 编码。")
except UnicodeDecodeError:
# 如果出现 UnicodeDecodeError,尝试使用其他常见编码读取
common_encodings = ['gbk', 'iso-8859-1', 'windows-1252']
for encoding in common_encodings:
try:
with open(file_path, 'r', encoding=encoding) as file:
content = file.read()
# 如果读取成功,则以 utf-8 编码写入文件
with open(file_path, 'w', encoding='utf-8'