论坛网站开发框架angular,网站代码有哪些,百度上做优化,游戏ui设计师工资一般多少文章目录 前言一、语句分析二、 举例解释三、 完整代码总结 前言
之前的代码里有下面这句话#xff0c;可能有看不明白的读者。
vectors [embeddings.embed(doc.page_content) for doc in docs]今天一起来看下这句话。
一、语句分析
这句话实际上是一个列表推导式#x… 文章目录 前言一、语句分析二、 举例解释三、 完整代码总结 前言
之前的代码里有下面这句话可能有看不明白的读者。
vectors [embeddings.embed(doc.page_content) for doc in docs]今天一起来看下这句话。
一、语句分析
这句话实际上是一个列表推导式它的作用是遍历 docs 列表中的每个 Document 对象并将每个 Document 对象的 page_content 属性通过 embeddings.embed 方法转换为向量然后将所有这些向量组成一个新的列表 vectors。
具体的步骤如下
遍历 docs 列表for doc in docs 表示依次取出 docs 列表中的每个 Document 对象并赋值给 doc。提取 page_content对于每个 Document 对象 doc提取其 page_content 属性即文档的文本内容。嵌入转换将提取到的文本内容通过 embeddings.embed 方法转换为向量。embeddings.embed(doc.page_content) 返回的是一个向量表示。生成向量列表将所有转换得到的向量组成一个新的列表并将该列表赋值给 vectors 变量。
这句话不会替换原来的 doc 值而是生成一个新的向量列表。每个向量对应于 docs 列表中每个 Document 对象的 page_content 的向量表示。
二、 举例解释
假设我们有以下 docs 列表
docs [Document(page_contentMachine learning is a method of data analysis., metadata{title: ML Intro}),Document(page_contentLangChain is a powerful framework., metadata{title: LangChain Overview})
]执行这句代码后
vectors [embeddings.embed(doc.page_content) for doc in docs]假设 embeddings.embed 方法将文本转换为一个简单的数值向量那么 vectors 可能是
vectors [[0.1, 0.2, 0.3, 0.4], # 向量表示 Machine learning is a method of data analysis.[0.5, 0.6, 0.7, 0.8] # 向量表示 LangChain is a powerful framework.
]三、 完整代码
以下是一个完整的示例展示了从文档到向量转换的过程大家可以一起练一练
from langchain_core.documents import Document
from langchain.embeddings import OpenAIEmbeddings# 创建文档对象列表
docs [Document(page_contentMachine learning is a method of data analysis., metadata{title: ML Intro}),Document(page_contentLangChain is a powerful framework., metadata{title: LangChain Overview})
]# 初始化嵌入模型
embeddings OpenAIEmbeddings()# 将文档内容转换为向量
vectors [embeddings.embed(doc.page_content) for doc in docs]# 输出向量列表
for i, vector in enumerate(vectors):print(fVector for doc {i1}: {vector})总结
这句话的主要目的是将每个 Document 对象的文本内容转换为向量并将所有这些向量组成一个新的列表 vectors方便后续的向量存储和检索操作。它不会修改原来的 Document 对象而是生成一个新的向量列表。