本地Langchain运行ollama的嵌入模型进行向量化
用最少的文字来实现功能, 以需求为向导来学习
一. 明确需求
我想要使用本地的嵌入模型来进行文本的向量化, 但是为了运行方便我并没有使用huggingface来运行而是使用ollama 可以实现一行命令启动非常方便
但是由于本人在网络上找教程的时候 一直都没有找到合适的教程, 并且自己解决之后, 决定记录下来
二. 操作流程
- 首先本地安装ollama 这一步跳过 安装都是exe一键安装的 官网有安装包 附上地址
https://ollama.com/download - 下载模型访问网站
https://ollama.com/search?c=embedding, 选着嵌入模型的选项选择合适的模型, 直接下载就好
最后就是组合成这样的命令
ollama pull qwen3-embedding:8b
3. 检查本地的模型 使用 查看列表 ollama list
4. ==重点注意 !== 注意:Text Embedding 模型不需要使用 run 命令手动运行,当模型 Pull 下来以后,Ollama 服务启动后,可以直接访问 API 调用 Text Embedding 模型!
比如这样
至此 环境部分的配置就已经成功了 下面开始使用Langchain来执行向量化
三. 使用Langchain进行向量化
import logging
import time
# 注意一定是这个包下的OllamaEmbeddings
# 不要使用!!! from langchain_ollama import OllamaEmbeddings 这个不行 请求地址是无效的
from langchain_community.embeddings import OllamaEmbeddings
# 打印langchain的日志
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
# 新建模型 默认是本地 其他主机的ollama 也可以输入base_url指定地址
embeddings = OllamaEmbeddings(model="qwen3-embedding:0.6b")
# 待嵌入的文本句子
text = "hello yirc99"
# 生成一个嵌入向量
embedded_query = embeddings.embed_query(text = text)
# 使用embedded_query[:5]来查看前5个元素的值
print(embedded_query[:5])
print(len(embedded_query))
五. 总结
其实网上也有很多教程, 但是都没有说到注意点, 导致我踩坑花了很久 重点有两个
- langchain的导包一定要注意
- 嵌入模型在ollama里面是不用运行的, 等你使用api调用之后, 就可以使用
ollama ps看到已经在运行了 最后 感谢观看 如果有问题也欢迎提问, 也可以加我v: yirc99 全网同名交流学习
六. 致谢
感谢https://george.betterde.com/cn/technology/20240929/ 内容部分参考这篇文章