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

LangChain调用HuggingFace LLM响应被截断问题求助

解决LangChain调用HuggingFace模型响应截断问题

核心解决方案

在HuggingFaceHub的model_kwargs中添加**max_new_tokens**参数,指定模型生成的最大新token数量,即可解决响应被截断的问题。默认情况下该参数值较小,导致生成内容提前终止。

修改后的代码示例

from langchain.llms import HuggingFaceHub
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
from langchain.schema.runnable import RunnablePassthrough

repo_id = 'HuggingFaceH4/zephyr-7b-alpha'

template = """Answer the question.

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)

llm = HuggingFaceHub(
    repo_id=repo_id, 
    model_kwargs={
        "temperature": 0.5, 
        "use_cache": False,
        "max_new_tokens": 500  # 新增参数控制生成内容长度
    },
    huggingfacehub_api_token=HUGGINGFACEHUB_API_TOKEN
)

chain = (
    {"question": RunnablePassthrough()} 
    | prompt 
    | llm 
    | StrOutputParser()
)

chain.invoke("Write a rap battle between Stephen Colbert and John Oliver")

补充说明

  • max_new_tokens:控制模型在输入prompt之外额外生成的token数量,可根据需求调整(如1000、2000等,需注意模型本身的最大上下文长度限制)。
  • 部分模型支持max_length参数(控制prompt+生成内容的总token数),但max_new_tokens更直接聚焦生成内容长度,推荐优先使用。

内容的提问来源于stack exchange,提问作者kevin.w.johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:02:44