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

酒店 深圳 网站建设新项目首码对接平台

酒店 深圳 网站建设,新项目首码对接平台,网站域名使用怎么做分录,网站开发工作室文章目录 前言1、数据连接定义#xff1f;2、数据的加载、拆分过程2.1 TextLoader 加载文档2.2 拆分文档2.2.1 字符拆分2.2.2 拆分代码2.2.3 Markdown文档拆分2.2.4 按字符递归拆分2.2.5 按token拆分 3 文本向量化和向量数据库存储查询3.1 文本向量化分块3.2 向量化存储、检索… 文章目录 前言1、数据连接定义2、数据的加载、拆分过程2.1 TextLoader 加载文档2.2 拆分文档2.2.1 字符拆分2.2.2 拆分代码2.2.3 Markdown文档拆分2.2.4 按字符递归拆分2.2.5 按token拆分 3 文本向量化和向量数据库存储查询3.1 文本向量化分块3.2 向量化存储、检索存储检索本地加载代码 前言 上一期里学会LangChian 里的 hello world算是跑通了个pipeline。所以讲道理我们这期该回到人工智能最重要的血肉基础这一扒数据部分 1、数据连接定义 LLM应用往往需要用户特定的数据微调但这些数据并不属于模型的训练集例如私有数据或行业数据等。 LangChain 的数据连接就是解决这些数据与LLM之间连接的如果没有这些数据连接只能通过LLM训练学习这成本非常高于是langchain的五大组件就实现这种用户数据的加载、转换、存储和查询 1 文档加载器 可以从不同的数据源加载文档例如pdf、json、Excel等这在企业落地的时候提供很大的便利。当然这也可以线上或本地的等下会详细讲 2 文档转换器 拆分文档将文档转换为问答格式去除冗余文档等 3文本嵌入模型 将非结构化文本转换为浮点数数组表现形式也称为向量的过程 4 向量存储 存储和搜索嵌入数据向量 5 检索器 提供数据查询的通用接口 2、数据的加载、拆分过程 LLM应用连接用户数据时一般会有以下步骤 加载文档对应Load 拆分文档 向量化文档分块 向量数据存储 这样4步实现通过向量数据的检索器来查询用户数据。 2.1 TextLoader 加载文档 TextLoader 是一种最基本的加载器用来加载本地文件系统中的文档。 from langchain.document_loaders import TextLoaderloader TextLoader(./README.md) docs loader.load()我们可以通过Document对象的page_content属性来访问文档的原始内容。 2.2 拆分文档 顾名思义拆分文档的目的就是将文档拆分为更小的文档块。 Langchain 提供了多种文档0拆分器用于将文档拆分为更小的文档块。每一种拆分器对应着不同的拆分方法我们简单罗列以下几种方法 2.2.1 字符拆分 CharacterTextSplitter 是最简单的文档拆分器它将文档拆分为固定长度的文本块。代码如下 from langchain.text_splitter import CharacterTextSplittertext_splitter CharacterTextSplitter( separator \n\n,chunk_size 1000,chunk_overlap 200,length_function len, )split_docs text_splitter.split_documents(docs)2.2.2 拆分代码 RecursiveCharacterTextSplitter 的 from_language 函数可以根据编程语言的特性将代码拆分为合适的文本块。代码如下 PYTHON_CODE def hello_langchain():print(Hello, Langchain!)#Call the functionhello_langchain()python_splitter RecursiveCharacterTextSplitter.from_language(languageLanguage.PYTHON, chunk_size50, chunk_overlap0 ) python_docs python_splitter.create_documents([PYTHON_CODE]) python_docs2.2.3 Markdown文档拆分 MarkdownHeaderTextSplitter 可以将Markdown文档按照段落结构基于Markdown语法进行文档分块。代码如下 from langchain.text_splitter import MarkdownHeaderTextSplittermarkdown_document # Chapter 1\n\n ## Section 1\n\nHi this is the 1st section\n\nWelcome\n\n ### Module 1 \n\n Hi this is the first module \n\n ## Section 2\n\n Hi this is the 2nd sectionheaders_to_split_on [(#, Header 1),(##, Header 2),(###, Header 3), ]splitter MarkdownHeaderTextSplitter(headers_to_split_onheaders_to_split_on) splits splitter.split_text(markdown_document)2.2.4 按字符递归拆分 这也是对于普通文本的推荐拆分方式。它通过一组字符作为参数按顺序尝试使用这些字符进行拆分直到块的大小足够小为止。默认的字符列表是[“\n\n”, “\n”, , “”]。它尽可能地保持段落句子单词的完整因此尽可能地保证语义完整。 from langchain.text_splitter import RecursiveCharacterTextSplitter text_splitter RecursiveCharacterTextSplitter(# Set a really small chunk size, just to show.chunk_size 100,chunk_overlap 20,length_function len, ) texts text_splitter.split_documents(docs)2.2.5 按token拆分 语言模型例如OpenAI有token限制。在API调用中不应超过token限制。看来在将文本分块时根据token数来拆分也是不错的主意。有许多令牌化工具因此当计算文本的token数时应该使用与语言模型相同的令牌化工具。 注OpenAI所使用的是tiktoken。 from langchain.text_splitter import CharacterTextSplitter text_splitter CharacterTextSplitter.from_tiktoken_encoder(chunk_size100, chunk_overlap0 ) split_docs text_splitter.split_documents(docs)3 文本向量化和向量数据库存储查询 3.1 文本向量化分块 好比图像识别或者推荐算法一样同样文本里也是需要把多维的数据量化 那接下来我们需要把这些数据在Langchain里面进行向量化为了做向量化langchain和LLM模型里面都有一个接口这就是Embeddings类接口。 当前市场上有许多嵌入模型提供者如OpenAI、Cohere、Hugging Face等等。 嵌入模型创建文本片段的向量表示。这意味着我们可以在向量空间中处理文本并进行语义搜索等操作从而查找在向量空间中最相似的文本片段而不是整个文档了提升我们的效率和结果准确度 当使用OpenAI的文本嵌入模型时我们使用如下代码来创建文本片段的向量表示 向量化前 from langchain.embeddings import OpenAIEmbeddings embeddings_model OpenAIEmbeddings(openai_api_key你的有效openai api key) embeddings embeddings_model.embed_documents([hello!,Langchain!,world] )embeddings 向量化后 [[0.001767348474591444,-0.016549955833298362,0.009669921232251705,-0.024465152668289573,-0.04928377577655549,...],[...-0.026084684286027195,-0.0023797790465254626,0.006104789779720747,...]]3.2 向量化存储、检索 向量数据存储或成为向量数据库负责存储文本嵌入的向量表现并提供向量检索的能力。Langchain 提供了多种开源或商业向量数据存储包括Chroma, FAISS, Pinecone等等我们可以理解为网盘把数据存到上面去 本讲以Chroma为例。 存储 在进行以下代码执行前需要安装Chroma的包 pip install -q chromadbfrom langchain.document_loaders import TextLoader from langchain.embeddings.openai import OpenAIEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.vectorstores import Chromatext_splitterCharacterTextSplitter(chunk_size1000, chunk_overlap0) documents text_splitter.split_documents(docs) db Chroma.from_documents(documents, OpenAIEmbeddings())检索 向量数据库提供的重要接口就是相似性查询。如上述内容提到文本相似性的衡量由文本的向量表示的欧几里得或者其他距离来衡量。 向量数据库提供了该接口用于查询与给定文本最相似的文本。 query “什么是Langchain” docs db.similarity_search(query) print(docs[0].page_content) 本地加载代码 安装langchain pip install -q langchain0.0.235 openai 注意 原项目地址https://github.com/langchain-ai/langchain 讲义统一使用V0.0.235版本 从数据的接入、数据的分割到向量的构建、向量的存储、向量的搜索每一步可供选择的有很多具体还是要结合实际的业务当然这也是我们后续学习中需要掌握的 这里有很多不懂的可以在群里切磋
http://www.zqtcl.cn/news/365333/

相关文章:

  • 岳阳市住房和城乡建设局网站上海专业网站建设网
  • 营销型网站建设设定包括哪些方面网站建设后的心得
  • 建立网站来网上销售的英文潢川城乡建设局网站
  • 仿站建站教程网站怎么接广告
  • 免费下载代码项目的网站长春网站建设找新生科技
  • 博兴县建设局网站做网站要用什么服务器吗
  • 成都中小企业网站建设公司怎么挑选网站建设公司
  • 万源网站建设在ppt里面做网站链接
  • 做网站时怎么添加动态信息中铁航空港建设集团网站
  • 文化礼堂建设情况网站网站建设运行
  • 自己做网站很难asp网站开发四酷全书:新闻_论坛_电子商城_博客
  • 网站建设入什么会计科目从网络安全角度考量请写出建设一个大型电影网站规划方案
  • 品牌建设+网站网站建设 淘宝客末班
  • 建设商业网站学校建设门户网站的好处
  • 男女朋友在一起做那个的网站公司建设网站
  • 营销型网站的类型有哪些相册网站怎么做
  • 河南建设监理协会网站电话erp管理系统官网
  • 视频网站seo实战做企业网站一般用什么服务器
  • icp备案 网站负责人免费直播sdk
  • 网站制作和如何推广动画专业学什么
  • 北京一家专门做会所的网站基于ssh框架的网站开发流程
  • 可以在自己的电脑上做网站吗陕西商城网站建设
  • 深圳网站建设工作室郴州有什么好玩的地方
  • 用dw做的网站怎么发到网上竹妃怎么在公众号里做网站
  • 杭州网站优化搜索黑龙江公共资源交易网官网
  • 动易网站 首页模板修改平台网站是什么
  • 营销网站更受用户欢迎的原因是英文网站的建设意义
  • 学网站建设基础河北省建设网站的网站首页
  • 铜仁市住房和城乡建设部网站延边有没有做网站的
  • 如何做ppt的模板下载网站移动端网站的优点