当前位置: 首页 > wzjs >正文

临朐网站建设价格广州网络推广选择

临朐网站建设价格,广州网络推广选择,丝芙兰网站做的好差,常见软件开发模型文章目录 AI(学习笔记第四课) 使用langchain进行AI开发 load documents(pdf)学习内容:1.load documents(pdf)1.1 学习url1.2 pdf文件准备1.3 准备ollama的模型1.3.1 安装ollama1.3.3 下载需要的embedding大模型 1.4 在pycharm中准备代码1.5 在…

文章目录

  • AI(学习笔记第四课) 使用langchain进行AI开发 load documents(pdf)
  • 学习内容:
    • 1.load documents(pdf)
      • 1.1 学习`url`
      • 1.2 `pdf`文件准备
      • 1.3 准备`ollama`的模型
        • 1.3.1 安装`ollama`
        • 1.3.3 下载需要的`embedding`大模型
      • 1.4 在`pycharm`中准备代码
      • 1.5 在`pycharm`中下载必要的`python library`
      • 1.6 执行代码
      • 1.7 代码解析
        • 1.7.1 准备`embed`模型
        • 1.7.2 将`pdf`进行`load`
        • 1.7.3 使用`pdf`内容创建`vector store`
        • 1.7.4 使用`vector store`进行`ai`检索
    • 2.段落分析`Layout analysis`
      • 2.1 导入必要的包
      • 2.2 需要安装的软件
        • 2.2.1 Poppler (PDF analysis)
        • 2.2.2 `Tesseract (OCR)`
      • 2.2 准备代码
      • 2.3 代码执行,对`pdf`进行分解

AI(学习笔记第四课) 使用langchain进行AI开发 load documents(pdf)

  • 使用langchain如何构建vector store
  • 使用Layout analysis

学习内容:

  • 使用构建vector store
  • 使用利用vector store进行检索
  • 使用Layout analysis进行段落分析

1.load documents(pdf)

1.1 学习url

langchain的load documents文档。

1.2 pdf文件准备

这里,想定公司需要做成知识向量库vector store文档有pdf文档,因此这里处理pdf文件,langchain的官方链接给提供了一个pdf文件。请在这里提前下载文件。

1.3 准备ollama的模型

langchainollama支持的非常好,而且国外的AI商用模型,一般国内都使用不了,因此这里准备本地的ollama

1.3.1 安装ollama

ollama的官方网站
可以deepseek一下,如何安装ollama,这里在mac系统上安装。

1. 下载安装包
访问 Ollama 官方下载页面:https://ollama.com/download,选择 macOS 版本(支持 Intel 和 Apple Silicon 芯片)。2. 运行安装程序
下载完成后,双击 .dmg 文件,将 Ollama 拖到 Applications 文件夹中。3. 启动 Ollama
打开 Launchpad 或 Applications 文件夹,点击 Ollama 图标运行。首次启动时,可能需要授予权限(在系统设置中允许)。下载安装包
访问 Ollama 官方下载页面:https://ollama.com/download,选择 macOS 版本(支持 Intel 和 Apple Silicon 芯片)。4. 运行安装程序
下载完成后,双击 .dmg 文件,将 Ollama 拖到 Applications 文件夹中。5. 启动 Ollama
打开 Launchpad 或 Applications 文件夹,点击 Ollama 图标运行。首次启动时,可能需要授予权限(在系统设置中允许)。
1.3.3 下载需要的embedding大模型

这里需要embedding的文本处理模型,所以下载nomic-embed-text模型。
在这里插入图片描述

ollama pull nomic-embed-text

1.4 在pycharm中准备代码

这里代码和pdf文件分别如下:
代码: src\document_loaders\001_load_pdf.py
pdf测试文件:src\document_loaders\examples\layout-parse-paper.pdf

在这里插入图片描述
代码如下所示:

from langchain_community.document_loaders import PyPDFLoader
import asyncio
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_ollama.embeddings import OllamaEmbeddings# 替换 OpenAIEmbeddings 配置为 Ollama 本地模型
embeddings = OllamaEmbeddings(model="nomic-embed-text",  # 或其他支持的本地模型如 "mistral", "nomic-embed-text"base_url="http://192.168.43.158:11434"  # Ollama 默认地址
)async def load_pdf():file_path = './examples/layout-parser-paper.pdf'loader = PyPDFLoader(file_path)pages = []async for page in loader.alazy_load():pages.append(page)# 后续使用方式与 OpenAIEmbeddings 完全一致vector_store = InMemoryVectorStore.from_documents(pages,embeddings)docs = vector_store.similarity_search("What is LayoutParser?", k=2)for doc in docs:print(f'Page {doc.metadata["page"]}: {doc.page_content[:300]}\n')asyncio.run(load_pdf())

1.5 在pycharm中下载必要的python library

在这里插入图片描述

1.6 执行代码

在这里插入图片描述

1.7 代码解析

1.7.1 准备embed模型
# 替换 OpenAIEmbeddings 配置为 Ollama 本地模型
embeddings = OllamaEmbeddings(model="nomic-embed-text",  # 或其他支持的本地模型如 "mistral", "nomic-embed-text"base_url="http://192.168.43.158:11434"  # Ollama 默认地址
)

这里,已经构建了ollama,直接指向本地的ollama

1.7.2 将pdf进行load
    file_path = './examples/layout-parser-paper.pdf'loader = PyPDFLoader(file_path)pages = []async for page in loader.alazy_load():pages.append(page)

pdf文件进行load,每个pdf文件的pageappendpages变量。

1.7.3 使用pdf内容创建vector store
    # 后续使用方式与 OpenAIEmbeddings 完全一致vector_store = InMemoryVectorStore.from_documents(pages,embeddings)

这里,需要执行参数pagesembeddings,即文档以及embedding模型。

1.7.4 使用vector store进行ai检索
    docs = vector_store.similarity_search("What is LayoutParser?", k=2)for doc in docs:print(f'Page {doc.metadata["page"]}: {doc.page_content[:300]}\n')

在这里插入图片描述

2.段落分析Layout analysis

有时候,pdf文件不能只按照page进行load,而是按照段落,通常包括:

  • paragraphs 段落
  • titles 题目
  • tables 表格
  • other structures 其他结构
    接下来进行段落的解析,如下这样,将一个文件进行分解。
    在这里插入图片描述

2.1 导入必要的包

  • unstructured系列
    • langchain-unstructured
    • unstructured
    • unstructured-api-tools
    • unstructured-client
    • unstructured-inference
    • unstructured-paddleocr
    • unstructured.pytesseract
  • pdf系列
    • pdf2image
    • pdfminer.six
    • PyMyPDF
    • PyPDF2
    • pyPdfium2

2.2 需要安装的软件

2.2.1 Poppler (PDF analysis)

这个pdf analysis的软件,这里需要安装。这里给出了三种系统的安装方法。

Linux: apt-get install poppler-utils
Mac: brew install poppler
Windows: https://github.com/oschwartz10612/poppler-windows/releases/tag/v24.08.0-0

这里是windows安装,所以下载windows的软件包,之后直接解压,放在如下路径
D:\01_software\27_pdf_unstructured\poppler-24.08.0
在这里插入图片描述
继续设定环境变量PATH。将如下命令设定到PATH中。当然这里需要和自己的路径一致即可。
D:\01_software\27_pdf_unstructured\poppler-24.08.0\Library\bin
在这里插入图片描述

2.2.2 Tesseract (OCR)

这里还需要安装Tesseract (OCR),这是一个windows的安装包。
https://github.com/UB-Mannheim/tesseract/wiki#tesseract-installer-for-windows
在这里插入图片描述

  • 这里安装到如下目录
    D:\01_software\27_pdf_unstructured\tesseract
    -同样设定PATH目录
    D:\01_software\27_pdf_unstructured\tesseract设定到PATH,过程和上面的poppler类似。
    在这里插入图片描述

2.2 准备代码

os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["TESSDATA_PREFIX"] = r"D:\01_software\27_pdf_unstructured\tesseract\tessdata"
os.environ["PATH"] += r";D:\01_software\27_pdf_unstructured\tesseract\\"
os.environ["OCR_AGENT"] = r"D:\01_software\27_pdf_unstructured\tesseract\\"
file_path = r'D:\00_study\07_python\PythonProject\src\document_loaders\examples\layout-parser-paper.pdf'
loader_local = UnstructuredLoader(file_path=file_path,strategy="hi_res",ocr_languages="eng+chi_sim"  # 添加OCR语言支持
)
docs_local = []
for doc in loader_local.lazy_load():docs_local.append(doc)
print(len(docs_local))
first_page_docs = [doc for doc in docs_local if doc.metadata.get("page_number") == 1]
for doc in first_page_docs:print(doc.page_content)

这里,按照如下过程处理pdf文件。注意,在执行过程中,还可能报错,可能出现错误,这时候引入提示的python包即可

  • 使用UnstructuredLoader类进行pdf文件的解析
  • 之后打印出整个pdf文件分解出来的doc的数量
  • 最后根据每个doc对象的metadata中的page_number,来打印出page_number=1的所有doc的内容

2.3 代码执行,对pdf进行分解

在这里插入图片描述
可以看出,这里将第一个page_number进行了完美的划分,之后都保存在doc对象里面。

http://www.dtcms.com/wzjs/313622.html

相关文章:

  • 网站设置子目录外链网盘源码
  • 网站源码区别企业网站营销的实现方式
  • 网站怎么看被百度收录品牌seo培训
  • 网站内容创意交换链接或称互惠链接
  • 网站开发能怎么赚钱seo优化诊断工具
  • 深圳电子商城网站建设baud百度一下
  • 泉州有哪些做网站的软文推广发布
  • 京美建站百度竞价排名是什么方式
  • 网站是先解析还是先备案媒体网络推广价格优惠
  • 一个门户网站的建设流程百度贴吧网页版登录
  • 做网站定制手机系统优化软件哪个好
  • 找人做个网站大概多少钱百度第三季度财报2022
  • 家居网站建设渠道免费域名解析
  • 谁用fun域名做网站了职业培训学校加盟
  • 做网站需要花钱吗郑州做网站公司排名
  • 在新西兰做兼职的网站网络运营具体做什么
  • 网页设计与网站建设中国十大流量网站
  • 学做ps的软件的网站河北网络推广技术
  • 企业大学网站建设计划老域名
  • 如何做线上赌博的网站网络服务商电话
  • 威海做网站泰州网站建设优化
  • 谁做的新闻网站比较好pc端网页设计公司
  • 做网站怎样设置搜索引擎益阳网站seo
  • 宽带办理多少钱云优化软件
  • 代理IP做网站重庆森林经典台词图片
  • 克隆网站首页做单页站几个文件夹中国十大广告公司排行榜
  • 棋牌类网站怎么做写软文一篇多少钱合适
  • 提供网站建设哪家好端口扫描站长工具
  • 中山最好的网站建设公司哪家好阿里指数查询官网
  • 商业设计网站优化百度搜索