本地Langchain运行ollama的嵌入模型进行向量化

80 阅读2分钟

本地Langchain运行ollama的嵌入模型进行向量化

用最少的文字来实现功能, 以需求为向导来学习

一. 明确需求

我想要使用本地的嵌入模型来进行文本的向量化, 但是为了运行方便我并没有使用huggingface来运行而是使用ollama 可以实现一行命令启动非常方便

但是由于本人在网络上找教程的时候 一直都没有找到合适的教程, 并且自己解决之后, 决定记录下来

二. 操作流程

  1. 首先本地安装ollama 这一步跳过 安装都是exe一键安装的 官网有安装包 附上地址https://ollama.com/download
  2. 下载模型访问网站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))

五. 总结

其实网上也有很多教程, 但是都没有说到注意点, 导致我踩坑花了很久 重点有两个

  1. langchain的导包一定要注意
  2. 嵌入模型在ollama里面是不用运行的, 等你使用api调用之后, 就可以使用ollama ps看到已经在运行了 最后 感谢观看 如果有问题也欢迎提问, 也可以加我v: yirc99 全网同名交流学习

六. 致谢

感谢https://george.betterde.com/cn/technology/20240929/ 内容部分参考这篇文章