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

无法加载Llama模型报错:Llama.__init__()收到意外参数'input'

解决LangChain调用LlamaCpp时的参数错误问题

问题场景

使用LangChain调用本地Llama模型时出现加载失败,相关代码、文件夹结构及报错信息如下:

原代码

from langchain.llms import LlamaCpp
from langchain import PromptTemplate, LLMChain
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

template = """Question: {question}

Answer: Let's work this out in a step by step way to be sure we have the right answer."""

prompt = PromptTemplate(template=template, input_variables=["question"])

callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])

llm = LlamaCpp(
                model_path="./Models/llama-7b.ggmlv3.q2_K.bin",
                input={"temperature": 0.75,
                       "max_length": 2000,
                       "top_p": 1},
                callback_manager=callback_manager,
                verbose=True,
                )

llm_chain = LLMChain(prompt=prompt, llm=llm)

当前文件夹结构

当前文件夹结构

报错信息

(llm) C:\llm>python app1.py
C:\llm\lib\site-packages\langchain\utils\utils.py:155: UserWarning: 警告!input不是默认参数。
                input已被转移至model_kwargs。
                请确认input是您想要设置的参数。
  warnings.warn(
Exception ignored in: <function Llama.__del__ at 0x000001923B3AE680>
Traceback (most recent call last):
  文件 "C:\llm\lib\site-packages\llama_cpp\llama.py", line 1507, in __del__
    if self.model is not None:
AttributeError: 'Llama'对象没有属性'model'
Traceback (most recent call last):
  文件 "C:\llm\app1.py", line 14, in <module>
    llm = LlamaCpp(
  文件 "C:\llm\lib\site-packages\langchain\load\serializable.py", line 74, in __init__
    super().__init__(**kwargs)
  文件 "pydantic\main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: LlamaCpp存在1个验证错误
__root__
  无法从路径./Models/llama-7b.ggmlv3.q2_K.bin加载Llama模型。收到错误:Llama.__init__() got an unexpected keyword argument 'input' (类型=值错误)

问题原因

LangChain的LlamaCpp类已废弃input参数,模型配置参数需通过model_kwargs传递,原代码中使用input导致参数不被识别,触发初始化错误。同时新版本llama-cpp-python中,max_length参数已更名为n_ctx,需同步适配。

修复方案

  1. 将input参数替换为model_kwargs,把温度、上下文长度等配置放入该字典中
  2. 将原max_length改为n_ctx,适配新版本依赖库的参数命名

修复后完整代码

from langchain.llms import LlamaCpp
from langchain import PromptTemplate, LLMChain
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

template = """Question: {question}

Answer: Let's work this out in a step by step way to be sure we have the right answer."""

prompt = PromptTemplate(template=template, input_variables=["question"])

callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])

llm = LlamaCpp(
    model_path="./Models/llama-7b.ggmlv3.q2_K.bin",
    model_kwargs={
        "temperature": 0.75,
        "n_ctx": 2000,
        "top_p": 1
    },
    callback_manager=callback_manager,
    verbose=True,
)

llm_chain = LLMChain(prompt=prompt, llm=llm)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:55:18