You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LangChain的load_evaluator()对接本地LLM Ollama?

LangChain load_evaluator 对接本地Ollama模型的适配问题

问题场景

尝试用LangChain的load_evaluator()对接本地Ollama模型时,部分评估器无法正常运行,代码示例如下:

from langchain.evaluation import load_evaluator
from langchain.chat_models import ChatOllama
from langchain.llms import Ollama
from langchain.embeddings import HuggingFaceEmbeddings
# 可正常运行的代码
evaluator = load_evaluator("labeled_score_string", llm=ChatOllama(model="llama2"))
evaluator = load_evaluator("pairwise_string",  llm=Ollama(model="llama2"))
# 无法运行的代码
evaluator = load_evaluator("pairwise_embedding_distance",  llm=HuggingFaceEmbeddings())
evaluator = load_evaluator("pairwise_embedding_distance",  llm=Ollama(model="llama2"))

核心原因

不同类型的评估器对传入的模型类型要求不同,且参数名存在差异:

  • labeled_score_string、pairwise_string这类评估器依赖大语言模型的文本理解能力,因此需要传入llm参数,接受ChatOllama或Ollama实例。
  • pairwise_embedding_distance是基于向量相似度的评估器,不需要大语言模型,而是需要嵌入模型(Embeddings),且参数名应为embeddings而非llm。

修正后的代码

方法1:使用HuggingFaceEmbeddings

from langchain.embeddings import HuggingFaceEmbeddings

# 正确传入embeddings参数
evaluator = load_evaluator("pairwise_embedding_distance", embeddings=HuggingFaceEmbeddings())

方法2:使用Ollama内置的嵌入模型

如果Ollama部署的模型支持嵌入功能,可以使用OllamaEmbeddings:

from langchain.embeddings import OllamaEmbeddings

evaluator = load_evaluator("pairwise_embedding_distance", embeddings=OllamaEmbeddings(model="llama2"))

各评估器适配模型总结

  • 文本类评估器(labeled_score_string、pairwise_string):需传入llm参数,支持ChatOllama/Ollama实例。
  • 向量距离类评估器(pairwise_embedding_distance):需传入embeddings参数,支持HuggingFaceEmbeddings/OllamaEmbeddings等嵌入模型实例。

内容的提问来源于stack exchange,提问作者Sergey Agapov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:15:57