AI大模型企业应用实战(14)-langchain的Embedding
2024/6/23 23:32:43
本文主要是介绍AI大模型企业应用实战(14)-langchain的Embedding,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 安装依赖
! pip install --upgrade langchain ! pip install --upgrade openai==0.27.8 ! pip install -U langchain-openai
! pip show openai ! pip show langchain ! pip show langchain-openai
2 Embed_documents
# 1. 导入所需的库 from langchain_openai import OpenAIEmbeddings # 创建 OpenAI 文本嵌入模型实例 e_model = OpenAIEmbeddings() # 将给定的文本列表嵌入到向量空间中 ebeddings = e_model.embed_documents( [ "你好", "你好啊", "你叫什么名字?", "我叫王大锤", "很高兴认识你大锤", ] ) # 打印嵌入结果 print(ebeddings)
使用了 langchain_openai 库中的 OpenAIEmbeddings 类,将文本转换为向量表示:
- 导入所需的库
- 创建一个 OpenAIEmbeddings 实例,用于将文本转换为向量表示
- 定义一个包含五个中文句子的列表
- 使用 embed_documents 方法将给定的文本列表嵌入到向量空间中,并将结果存储在 ebeddings 变量中
- 打印嵌入结果
3 embed_query
embedded_query = e_model.embed_query("这段对话中提到了什么名字?") embedded_query[:5]
4 嵌入向量缓存
!pip install -U langchain-community
# 导入所需的库 from langchain.embeddings import CacheBackedEmbeddings from langchain.storage import LocalFileStore from langchain.document_loaders import TextLoader from langchain.text_splitter import CharacterTextSplitter from langchain_openai import OpenAIEmbeddings # 初始化 OpenAI 的嵌入模型 u_embeddings = OpenAIEmbeddings() # 创建一个本地文件存储对象,用于缓存嵌入向量 fs = LocalFileStore("./cache/") # 从字节存储中创建一个缓存嵌入对象 cached_embeddings = CacheBackedEmbeddings.from_bytes_store( u_embeddings, fs, namespace=u_embeddings.model, ) # 列出缓存文件存储中的所有键 list(fs.yield_keys())
5 加载文档,切分文档
将切分文档向量化,并存储在缓存中
# 加载文档,使用 TextLoader 从文件中加载文本内容 raw_documents = TextLoader("letter.txt").load() # 创建一个字符级别的文本分割器,用于将文档切分为固定大小的块 text_splitter = CharacterTextSplitter(chunk_size=620, chunk_overlap=0) # 使用文本分割器将原始文档切分为多个小段(chunks) documents = text_splitter.split_documents(raw_documents)
- 使用 TextLoader 类从文件中加载了名为 “letter.txt” 的文档
- 然后,创建了一个 CharacterTextSplitter 对象,该对象用于将文档切分为固定大小的块(chunk),这里设置为每个块包含 620 个字符,且相邻块之间没有重叠
- 最后,使用 split_documents 方法将原始文档切分为多个小段,并将结果存储在 documents 列表中
! pip install faiss-cup
from langchain.vectorstores import FAISS %timeit -r 1 -n 1 db= FAISS.from_documents(documents,cached_embeddings)
#查看缓存中的键 list(fs.yield_keys())
关注我,紧跟本系列专栏文章,咱们下篇再续!
作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。
各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。
负责:
- 中央/分销预订系统性能优化
- 活动&券等营销中台建设
- 交易平台及数据中台等架构和开发设计
- 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
- LLM应用开发
目前主攻降低软件复杂性设计、构建高可用系统方向。
参考:
- 编程严选网
这篇关于AI大模型企业应用实战(14)-langchain的Embedding的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门