说明
本文使用openai提供的embedding模型作为框架基础模型,知识库的搭建目的就是为了让大模型减少幻觉出现,实现起来也很简单,假如你要做一个大模型的客服问答系统,那么就把历史客服问答数据整理好,先做数据处理,在做数据向量化,最后保存到向量库中就可以了,下面文章中只是一个简单工作流程,只能用来参考,希望对大家有所帮助!
流程
上传知识库的文档不限于txt,pdf,markdown等数据格式,不同的数据格式用不同的方法来处理,文章内仅使用pdf文件做测试
1.数据加载
def load_data():
from langchain.document_loaders.pdf import PyMuPDFLoader
# 本地pdf文档路径
loader = PyMuPDFLoader("./knowledge_db/pumkin_book/pumpkin_book.pdf")
pdf_pages = loader.load()
print(f"载入后的变量类型为:{type(pdf_pages)},", f"该 PDF 一共包含 {len(pdf_pages)} 页")
pdf_page = pdf_pages[1]
page_content = pdf_page.page_content
print(f"每一个元素的类型:{type(pdf_page)}.",
f"该文档的描述性数据:{pdf_page.metadata}",
f"查看该文档的内容:\n{pdf_page.page_content}",
sep="\n------\n")
return page_content,pdf_pages
2.数据清洗
def clean_data(pdf_content):
# 匹配非中文字符和换行符
pattern = re.compile(r'[^\u4e00-\u9fff](\n)[^\u4e00-\u9fff]', re.DOTALL)
# 将匹配到的换行符替换为空字符串
new_pdf_content = re.sub(pattern, lambda match: match.<