langchain FlashrankRerank validate_environment 创建了一个 Ranker 客户端,即使传递了自定义客户端,

rur96b6h  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(64)

检查其他资源

  • 为这个问题添加了一个非常描述性的标题。
  • 使用集成搜索在LangChain文档中进行搜索。
  • 使用GitHub搜索查找类似的问题,但没有找到。
  • 我确信这是LangChain中的一个bug,而不是我的代码。
  • 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。

示例代码

以下代码用于创建一个Ranker对象,该对象将模型下载到自定义目录中,然后初始化FlashrankRerank。

def create_ms_marco_mini_llm():
    logger.info("Download model ms_marco_mini_llm")
    model_name = "ms-marco-MiniLM-L-12-v2"
    ranker = Ranker(model_name=model_name, max_length=1024, cache_dir=model_dir)
    return FlashrankRerank(client=ranker, model=model_name)

FlashrankRerank中的validate_environment方法会创建另一个Ranker对象,导致它将模型下载到不同的目录

@root_validator(pre=True)
   def validate_environment(cls, values: Dict) -> Dict:
       """Validate that api key and python package exists in environment."""
       try:
           from flashrank import Ranker
       except ImportError:
           raise ImportError(
               "Could not import flashrank python package. "
               "Please install it with `pip install flashrank`."
           )

       values["model"] = values.get("model", DEFAULT_MODEL_NAME)
       values["client"] = Ranker(model_name=values["model"])
       return values

错误信息和堆栈跟踪(如有适用)

  • 无响应*

描述

FlashrankRerank应在创建排名器之前检查客户端是否已初始化。

系统信息

langchain==0.2.5
langchain-anthropic==0.1.15
langchain-aws==0.1.6
langchain-community==0.2.5
langchain-core==0.2.7
langchain-experimental==0.0.61
langchain-openai==0.1.8
langchain-text-splitters==0.2.1
openinference-instrumentation-langchain==0.1.19

相关问题