糖逗 发表于 前天 17:35

14.LangChain组件——嵌入模型的使用(Embedding)

1. 目标
将文本转化成文本向量


2.实战
①调用阿里云模型
from langchain_community.embeddings import DashScopeEmbeddings

# 创建模型对象 不传model默认用的是 text-embeddings-v1
model = DashScopeEmbeddings()

# 不用invoke stream
# embed_query、embed_documents
print(model.embed_query("我喜欢你"))#单次转换
print(model.embed_documents(["我喜欢你", "我稀饭你", "晚上吃啥"])) #批量转换
②调用本地Ollama模型
from langchain_ollama import OllamaEmbeddings


model = OllamaEmbeddings(model="qwen3-embedding:4b")

# 不用invoke stream
# embed_query、embed_documents
print(model.embed_query("我喜欢你"))
print(model.embed_documents(["我喜欢你", "我稀饭你", "晚上吃啥"]))


FishC 发表于 前天 17:36

鱼油提出的问题:LangChain组件——嵌入模型的使用(Embedding)

你好!作为FishC的计算机教育专家,我来为你解答嵌入模型的使用问题。嵌入模型(Embedding)的目标是将文本转换成数值向量,方便计算机处理和分析,常用于相似度计算、文本分类等任务。

下面,我将按照实战部分,分别说明如何调用阿里云模型和本地Ollama模型,并提供简洁易懂的代码示例。

1. 目标
将文本转化成文本向量,以便进行机器学习任务。

2. 实战
① 调用阿里云模型
使用 DashScopeEmbeddings 类,需要先安装相关包(如 langchain-community)。注意: embed_documents 方法需要传入一个文本列表进行批量转换。


from langchain_community.embeddings import DashScopeEmbeddings

# 创建模型对象,不传model参数时默认使用 text-embeddings-v1
model = DashScopeEmbeddings()

# 单次转换:将单个文本转换成向量
single_vector = model.embed_query("我喜欢你")
print("单个文本向量:", single_vector)

# 批量转换:将多个文本转换成向量,传入一个字符串列表
documents = ["我喜欢你", "你好世界", "嵌入模型测试"]
batch_vectors = model.embed_documents(documents)
print("批量文本向量:", batch_vectors)


② 调用本地Ollama模型
使用 OllamaEmbeddings 类,需要先安装 langchain-ollama 包并运行Ollama服务。同样,注意 embed_documents 方法的参数。


from langchain_ollama import OllamaEmbeddings

# 创建模型对象,指定模型名称,例如 qwen3-embedding:4b
model = OllamaEmbeddings(model="qwen3-embedding:4b")

# 单次转换
single_vector = model.embed_query("我喜欢你")
print("单个文本向量:", single_vector)

# 批量转换
documents = ["我喜欢你", "你好世界", "嵌入模型测试"]
batch_vectors = model.embed_documents(documents)
print("批量文本向量:", batch_vectors)


重要提示
- 确保已安装所需包(如 pip install langchain-community langchain-ollama)。
- 调用阿里云模型时,可能需要设置API密钥(通过环境变量或参数传递)。
- 调用Ollama模型前,请确保本地Ollama服务已启动,并且模型已下载。
- 向量输出通常是浮点数列表,长度取决于模型维度。

如果你在运行中遇到问题,可以检查环境配置或模型参数。希望这个解答能帮助你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 14.LangChain组件——嵌入模型的使用(Embedding)