langchain 0.3.x 版本如何初始化本地模型
langchain 0.3.25
本地模型使用Xinference 搭建,地址为http://127.0.0.1:9997/v1
langchain 0.3.25 创建本地模型
from langchain.chat_models import init_chat_model
model = init_chat_model(model="qwen2.5-instruct", model_provider="openai")
其中"qwen2.5-instruct" 是本地模型的名称
这么创建,没有错,但是在调用的时候
model.invoke([HumanMessage(content="hi!,who are you ?")])
会报 connection error,是本地模型的url 和api_key 没有传进来,还是会调openai公开的接口
查看init_chat_model 源码
在***/site-packages/langchain/chat_models/base_client.py 函数里
def _init_chat_model_helper(
model: str, *, model_provider: Optional[str] = None, **kwargs: Any
) -> BaseChatModel:
model, model_provider = _parse_model(model, model_provider)
if model_provider == "openai":
_check_pkg("langchain_openai")
from langchain_openai import ChatOpenAI
return ChatOpenAI(model=model, **kwargs)
model_provider 为openai ,其底层还是使用的ChatOpenAI,然后kwargs 代表默认的参数,这样的话,我们把其他必要参数再传进来基本就可以了
model = init_chat_model(model="qwen2.5-instruct", model_provider="openai",temperature=0,base_url="http://127.0.0.1:9997/v1", openai_api_key="unknown")
这样再使用model.invoke([HumanMessage(content="hi!,who are you ?")]),就不会报错了
nit_chat_model 提供了多种模型初始化方式,功能比较强大,还在等待进一步学习
参考资料:
1 init_chat_model — 🦜🔗 LangChain documentation
2 https://python.langchain.ac.cn/docs/how_to/chat_models_universal_init/