|
|
鱼油提出的问题: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 小助理,如未能正确解答您的问题,请继续追问。 |
|