杭州网站开发后端招福步外贸论坛网官网

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

杭州网站开发后端招,福步外贸论坛网官网,百度统计数据,正规的网站建设学习网构建 LLM 应用为什么需要文本加载器#xff0c;langchain 中如何使用文本加载器#xff1f; 在不同的应用场景中需要使用不同的文本内容作为内容的载体#xff0c;针对不同的类型的文本#xff0c;langchain 提供了多种文本加载器来帮助我们快速的将文本切片#xff0c;从…构建 LLM 应用为什么需要文本加载器langchain 中如何使用文本加载器 在不同的应用场景中需要使用不同的文本内容作为内容的载体针对不同的类型的文本langchain 提供了多种文本加载器来帮助我们快速的将文本切片从而使我们将更多的精力放在主要功能的是线上。下面我们介绍这些 Document loader. 使用文档加载器将源中的数据加载为DocumentDocument 是一段文本和关联的元数据。例如有用于加载简单 .txt 文件、加载任何网页的文本内容甚至用于加载 YouTube 视频的转录的文档加载器。 文档加载器提供了加载方法用于从配置的源中将数据作为文档加载器。他们还可以选择实现“延迟加载” 以延迟将数据加载到内存中。 加载txt文档 from langchain_community.document_loaders import TextLoader​loader TextLoader(./index.md)loader.load() response: [Document(page_content—\nsidebar_position: 0\n—\n# Document loaders\n\nUse document loaders to load data from a source as Documents. A Document is a piece of text\nand associated metadata. For example, there are document loaders for loading a simple .txt file, for loading the text\ncontents of any web page, or even for loading a transcript of a YouTube video.\n\nEvery document loader exposes two methods:\n1. Load: load documents from the configured source\n2. Load and split: load documents from the configured source and split them using the passed in text splitter\n\nThey optionally implement:\n\n3. Lazy load: load documents into memory lazily\n, metadata{source: ../docs/docs/modules/data_connection/document_loaders/index.md})] CSV 逗号分隔值 CSV 文件是使用逗号分隔值的分隔文本文件。文件的每一行都是一条数据记录。每条记录由一个或多个字段组成用逗号分隔。 加载每个文档一行的 CSV 数据 from langchain_community.document_loaders.csv_loader import CSVLoader​loader CSVLoader(file_path./example_data/mlb_teams_2012.csv)data loader.load() Response: print(data)[Document(page_contentTeam: Nationals\nPayroll (millions): 81.34\nWins: 98, lookup_str, metadata{source: ./example_data/mlb_teams_2012.csv, row: 0}, lookup_index0), Document(page_contentTeam: Reds\nPayroll (millions): 82.20\nWins: 97, lookup_str, metadata{source: ./example_data/mlb_teams_2012.csv, row: 1}, lookup_index0), Document(page_contentTeam: Yankees\nPayroll (millions): 197.96\nWins: 95, lookup_str, metadata{source: ./example_data/mlb_teams_2012.csv, row: 2}, lookup_index0), Document(page_contentTeam: Giants\nPayroll (millions): 117.62\nWins: 94, lookup_str, metadata{source: ./example_data/mlb_teams_2012.csv, row: 3}, lookup_index0), Document(page_contentTeam: Braves\nPayroll (millions): 83.31\nWins: 94, lookup_str, metadata{source: ./example_data/mlb_teams_2012.csv, row: 4}, lookup_index0), Document(page_contentTeam: Athletics\nPayroll (millions): 55.37\nWins: 94, lookup_str, ……] 自定义 CSV 解析和加载 有关支持哪些 csv 参数的更多信息请参阅 csv 模块文档 loader CSVLoader(file_path./example_data/mlb_teams_2012.csv, csv_args{delimiter: ,,quotechar: ,fieldnames: [MLB Team, Payroll in millions, Wins]})data loader.load() 指定用于标识文档源的列 使用该 source_column 参数指定从每一行创建的文档的源。否则 file_path 将用作从 CSV 文件创建的所有文档的源。 当使用从 CSV 文件加载的文档时这很有用因为链使用源来回答问题。 loader CSVLoader(file_path./example_data/mlb_teams_2012.csv, source_columnTeam)data loader.load() 文件目录加载器 DirectoryLoader 加载目录中的所有文档 from langchain_community.document_loaders import DirectoryLoaderloader DirectoryLoader(../, glob/*.md)docs loader.load() 我们可以使用该 glob 参数来控制要加载的文件。请注意这里它不会加载 .rst 文件或 .html 文件。 显示加载进度条 默认情况下不会显示文档加载的进度如果要显示文档加载的进度条需要安装tqdmpip install tqdm并将 show_progress 参数设置为 True 。 loader DirectoryLoader(../, glob/.md, show_progressTrue)docs loader.load() Requirement already satisfied: tqdm in /Users/jon/.pyenv/versions/3.9.16/envs/microbiome-app/lib/python3.9/site-packages (4.65.0)0it [00:00, ?it/s] 使用多线程加载文档 默认情况下加载文档是单线程的我们可以使用多线程加载文档提升文档的加载速度为了利用多线程我们可以设置use_multithreadingTrue 来使用多线程加载器。 loader DirectoryLoader(../, glob**/.md, use_multithreadingTrue) docs loader.load() 更改加载程序类 默认情况下会加载器使用UnstructuredLoader类但是我们也可以很轻松的修改文档加载器的类型. from langchain_community.document_loaders import TextLoader loader DirectoryLoader(../, glob/*.md, loader_clsTextLoader) docs loader.load() 如果需要加载Python代码我们使用PythonLoader from langchain_community.document_loaders import PythonLoader loader DirectoryLoader(../../../../../, glob/.py, loader_clsPythonLoader) docs loader.load() 文件编码 如果我们加载的目录中文档有多种不同的编码方式我们在执行load()函数的时候回失败并显示一条有用的消息指示哪个文件 example-non-utf8.txt 解码失败。 在默认情况下 TextLoader 任何未能加载任何文档都将使整个加载过程失败并且不会加载任何文档。如果要解决部分失败的情况我们可以使用一下方法 1、可以将参数silent_errors传递 DirectoryLoader,跳过无法加载的文档并继续执行加载过程。 loader DirectoryLoader(path, glob**/.txt, loader_clsTextLoader, silent_errorsTrue) docs loader.load() 2、我们可以配置文档加载器自动检测编码 我们还可以通过将autodetect_encoding 传递给加载器类来要求 TextLoader 在失败之前自动检测文件编码。 text_loader_kwargs{autodetect_encoding: True} loader DirectoryLoader(path, glob*/.txt, loader_clsTextLoader, loader_kwargstext_loader_kwargs) docs loader.load() HTML loader 我们可以按以下方式去加载一个HTML网页文档 from langchain_community.document_loaders import UnstructuredHTMLLoader loader UnstructuredHTMLLoader(example_data/fake-content.html) data loader.load() 使用 BeautifulSoup4 加载 HTML 我们还可以使用 BeautifulSoup4 BSHTMLLoader .这会将 HTML 中的文本提取到 page_content 中并将页面标题提取为 title metadata from langchain_community.document_loaders import BSHTMLLoader loader BSHTMLLoader(example_data/fake-content.html) data loader.load() JSON格式 JSONJavaScript 对象表示法是一种开放的标准文件格式和数据交换格式它使用人类可读的文本来存储和传输由属性值对和数组或其他可序列化值组成的数据对象。JSON 行是一种文件格式其中每行都是一个有效的 JSON 值。 JSONLoader 使用指定的 jq 模式来解析 JSON 文件。它使用 jq python 包。 #!pip install jq from langchain_community.document_loaders import JSONLoader import json from pathlib import Path from pprint import pprintfile_path./example_data/facebook_chat.json data json.loads(Path(file_path).read_text()) 如果我们需要提取 json数据中某个字段的数据可以通过下面的示例轻松提取JSONLoader loader JSONLoader(file_path,file_path./example_data/facebook_chat.json,jq_schema.messages[].content,text_contentFalse, ) data loader.load() JSON 行文件 如果要从 JSON 行文件加载文档请传递 json_linesTrue 并指定 jq_schema page_content 从单个 JSON 对象中提取。 file_path ./example_data/facebook_chat_messages.jsonl pprint(Path(file_path).read_text()) loader JSONLoader(file_path./example_data/facebook_chat_messages.jsonl,jq_schema.content,text_contentFalse,json_linesTrue)data loader.load() 设置 jq_schema. 另一个选项并提供 content_key
loader JSONLoader(file_path./example_data/facebook_chat_messages.jsonl,jq_schema.,content_keysender_name,json_linesTrue)data loader.load() JSON 中提取元数据 通常我们希望将JSON文件中可用的元数据包含在我们从内容创建的文档中 加载Markdown Markdown 是一种轻量级标记语言用于使用纯文本编辑器创建格式化文本。 # !pip install unstructured /dev/null from langchain_community.document_loaders import UnstructuredMarkdownLoader markdown_path ../../../../../README.md loader UnstructuredMarkdownLoader(markdown_path) data loader.load() Unstructured 为不同的文本块创建不同的“元素”。默认情况下我们将这些组合在一起但可以通过指定 modeelements 来轻松保持这种分离。 loader UnstructuredMarkdownLoader(markdown_path, modeelements) data loader.load() 加载PDF 使用 PyPDF 使用 pypdf 将 PDF 加载到文档数组中其中每个文档都包含页面内容和带有 page 编号的元数据。 pip install pypdf from langchain_community.document_loaders import PyPDFLoaderloader PyPDFLoader(example_data/layout-parser-paper.pdf) pages loader.load_and_split() 这种方法的一个优点是可以使用页码检索文档。 我们想要使用 OpenAIEmbeddings 所以我们必须获得 OpenAI API 密钥。 import os import getpassos.environ[OPENAI_API_KEY] getpass.getpass(OpenAI API Key:) from langchain_community.vectorstores import FAISS from langchain_openai import OpenAIEmbeddingsfaiss_index FAISS.from_documents(pages, OpenAIEmbeddings()) docs faiss_index.similarity_search(How will the community be engaged?, k2) for doc in docs:print(str(doc.metadata[page]) :, doc.page_content[:300]) 提取PDF中的图像 使用该 rapidocr-onnxruntime 包我们也可以将图像提取为文本 pip install rapidocr-onnxruntime loader PyPDFLoader(https://arxiv.org/pdf/2103.15348.pdf, extract_imagesTrue) pages loader.load() pages[4].page_content 使用MathPix from langchain_community.document_loaders import MathpixPDFLoader loader MathpixPDFLoader(example_data/layout-parser-paper.pdf) data loader.load() 使用非结构化 from langchain_community.document_loaders import UnstructuredPDFLoader loader UnstructuredPDFLoader(example_data/layout-parser-paper.pdf) data loader.load() 保留元素 UnstructuredPDFLoader为不同的文本块创建不同的“元素“,默认情况下我们将这些组合在一起但您可以通过指定 modeelements 来轻松保持这种分离。 loader UnstructuredPDFLoader(example_data/layout-parser-paper.pdf, modeelements) data loader.load() 使用非结构化方式获取远程 PDF 很多时候我们需要读取远程网络的pdf文件并解析以加载到我们下游使用的文档格式所有其他 PDF 加载器也可用于获取远程 PDF但这是 OnlinePDFLoader 旧功能专门用于 UnstructuredPDFLoader . // todo from langchain_community.document_loaders import OnlinePDFLoader loader OnlinePDFLoader(https://arxiv.org/pdf/2302.03803.pdf) data loader.load() 使用 PyPDFium2 from langchain_community.document_loaders import PyPDFium2Loader loader PyPDFium2Loader(example_data/layout-parser-paper.pdf) data loader.load() 使用 PDFMiner from langchain_community.document_loaders import PDFMinerLoader loader PDFMinerLoader(example_data/layout-parser-paper.pdf) data loader.load() 使用 PDFMiner 生成 HTML 文本 使用 PDFMiner 生成 HTML 文本有助于在语义上将文本分块。可以通过解析输出html内容BeautifulSoup 来获取有关字体大小、页码、PDF 页眉/页脚等的更结构化和丰富的信息。 from langchain_community.document_loaders import PDFMinerPDFasHTMLLoader loader PDFMinerPDFasHTMLLoader(example_data/layout-parser-paper.pdf) data loader.load()[0] # entire PDF is loaded as a single Document from bs4 import BeautifulSoup soup BeautifulSoup(data.page_content,html.parser) content soup.find_all(div) 总结 本文主要介绍了 langchain 中已经提供的文本加载器 txt, csv, pdf,markdown,html,json 以及基本的使用方式和使用场景。 这些不同类型的文本加载器加载完成文本后 langchain 都统一为 Document 对象提供 embedding-model 使用。 如果你有特殊的文本类型那基本的思路就是 将文本拆分 - 切片langchain Document - 向量化 - 向量存储 如何学习AI大模型 我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。 我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。 第一阶段 从大模型系统设计入手讲解大模型的主要方法 第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用 第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统 第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统 第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型 第六阶段 以SD多模态大模型为主搭建了文生图小程序案例 第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。 学会后的收获 • 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力 • 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求 • 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握 • 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。 1.AI大模型学习路线图 2.100套AI大模型商业化落地方案 3.100集大模型视频教程 4.200本大模型PDF书籍 5.LLM面试题合集 6.AI产品经理资源合集 获取方式 有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】