首页 > 其他分享 >RAG学习--pdf读取

RAG学习--pdf读取

时间:2024-05-12 22:20:22浏览次数:17  
标签:RAG -- text paragraphs pdf line page buff

RAG流程:

线下:

1、文档加载

2、文档切分

3、向量化

4、向向量数据库灌数据

线上:

1、获取用户问题

2、用户问题向量化

3、检索向量数据库

4、将检索结果和问题填充到pomp模板

5、用最终获得的pomp调用LLM

6、最终由LLM生成回复

本篇完成文档加载与切割(pdf加载与切割)

1、文档加载

加载PDF:

llama2.pdf   安装pdf读取包 pip install pdfminer.six     from pdfminer.high_level import extract_pages from pdfminer.layout import LTTextContainer
#从pdf中提取文本extract_text_from_pdf def extract_text_from_pdf(pdf_path,page_numbers=None,min_line_length =1):     paragraphs =[]     buff =''     full_text = ''     for i , page_layout in enumerate(extract_pages(pdf_path)):         if page_numbers is not None and i  not in page_numbers:             continue         for element in page_layout:             if isinstance(element,LTTextContainer):                 full_text += element.get_text() +'\n'         lines = full_text.split('\n')     for line in lines:         if len(line) >= min_line_length:             buff += (' '+line) if not line.endswith('-') else line.strip('-')         elif buff:             paragraphs.append(buff)             buff = ''     if buff:         paragraphs.append(buff)
    return paragraphs   #以上是pdf读取方法extract_text_from_pdf #调用程序,并显示前四行 paragraphs = extract_text_from_pdf('llama2.pdf',min_line_length=4)
for page in paragraphs[:4]:     print(page+'\n')

在terminal执行:py .\pdfread.py显示结果

 pdf加载与切割完毕。

标签:RAG,--,text,paragraphs,pdf,line,page,buff
From: https://www.cnblogs.com/goldball/p/18181318

相关文章

  • CodePen 的国内替代「笔.COOL」,一个功能完备、使用便捷的在线HTML代码编辑和作品分享
    笔.COOL,是一个在线HTML代码编辑和作品分享平台。笔.COOL提供了一个在线的HTML、CSS和JavaScript代码编辑器。无需任何安装,你只需打开网站,就可以开始编写前端代码。编辑器支持代码高亮、自动补全等功能,提高编码效率。笔.COOL还提供了实时预览功能,预览界面会随着你的代码更......
  • BMP格式图片缩放及在LCD屏幕展示练习
    /***@brief:实现bmp格式图片的2倍缩小功能,并输出新的目标bmp格式文件。最后利用800*480的开发板,展示缩放后的bmp文件因为只是进行函数练习,未采用函数封装的做法*@[email protected]*@date2024/05/12*CopyRight(c)2023-2024ni456xinmie@1......
  • 初识PostgreSql
    前言PostgreSql常被称为Postgres,简称PG,后文中以PG称呼。是当今非常流行的一种数据库。为什么使用PG在分析这个问题之前,我认为有必要说一说Oracle和MySql这两家数据库。OracleOracle作为占有率最高的数据库,由Oracle公司开发,提供商业支持,其流行的原因在于其强大的性能......
  • 升力产生的原理——向下挥动翅膀产生的压力差计算
    向下挥动翅膀:获得向上的反作用力收回翅膀:反作用力为0向下挥动翅膀:获得向上的反作用力收回翅膀:反作用力为0……   除了向上的升力,还需要向前的推动力:向后的力会产生向前的力。由于在空气中,空气摩擦力很小,所以向前的力容易获得,因为只要克服了重力,那空气摩擦力就很容易......
  • vcf文件中如何确定文件是否已经phasing(定相)
     001、未定相[root@PC1test2]#lstest1.vcftest2.vcf[root@PC1test2]#grep-v"^#"test1.vcf|head|cut-f1-16##为定相是斜杠155910s64199.1G...PRGT0/00/00/00/00/0......
  • abc_353_b题解
    这道题怎么说呢……开始看题目翻译也是一脸懵,然后直接就看了样例解释,然后:瞬间明白!所以:样例解释YYDS!样例解释YYDS!!样例解释YYDS!!!停停停不开玩笑了。仍旧是分步解决问题(诶不是怎么突然联想到了加法原理):输入(每道题几乎都有的东西~~~),不用多说,按照题目要求解决。循环。这一步......
  • shell-函数
    一、无参函数[root@vm-paasscwyfy]#catfunNoParamReturn.sh#!/bin/bashdemo(){echo"无入参返参函数执行..."}#执行函数demo二、无参有返回值函数[root@vm-paasscwyfy]#catfunYesReturn.sh#!/bin/bashdemo(){read-p"请输入第一个数字:"number1re......
  • # 如何优雅的写出二分
    二分查找二分法查找单个值题目:给定一个n个有序的(升序)数组nums和一个目标值target,写一个函数搜索nums中target,如果目标值存在返回下标,否则返回-1;关键词:有序数组,无重复元素难点:区间选择及循环不变量在每次循环中要坚持循环不变量原则(名字不重要,怎么做很重要)  如果我们在......
  • Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
    1.Spring6的JdbcTemplate的JDBC模板类的详细使用说明@目录1.Spring6的JdbcTemplate的JDBC模板类的详细使用说明每博一文案2.环境准备3.数据准备4.开始4.1从数据表中插入(添加)数据4.2从数据表中修改数据4.3从数据表中删除数据4.4从数据表中查询一个对象4.5从数据表中......
  • 怎么使用 MarsEdit 来管理博客园的博客
    MarsEdit可以管理任何支持MetaWeblog协议的博客。这点来说,比iawriter这类只支持wordpress,ghost这些主流博客架构的文本编辑器还是强很多的。要用MarsEidt来管理博客园,需要以下几步:1.在博客园上申请访问令牌2.在MarsEdit上添加博客园网址3.添加账号、密码4.......