为Langchain创建load_summarize_chain,指定chain_type=map_reduce。使用提示时出现错误

Mic*_*ick 4 python openai-api chatgpt-api langchain

我正在尝试使用我自己创建的提示为 Langchain 创建 load_summarize_chain 。

\n
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)\nPROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])\nchain = load_summarize_chain(llm, chain_type="refine", verbose=True, prompt=PROMPT)\n
Run Code Online (Sandbox Code Playgroud)\n

但是,只有当 chain_type 设置为“stuff”时,我才能成功创建链。当我尝试将其指定为“map_reduce”或“refine”时,我收到如下错误消息:

\n
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)\nPROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])\nchain = load_summarize_chain(llm, chain_type="refine", verbose=True, prompt=PROMPT)\n
Run Code Online (Sandbox Code Playgroud)\n

这是怎么回事\xef\xbc\x9f

\n

我认为这可能是因为“map_reduce”或“refine”无法直接在load_summarize_chain,或者其他一些原因。

\n

小智 8

当您的chain_type='map_reduce',您应该传递的参数是map_prompt并且combine_prompt您的最终代码将如下所示

chain = load_summarize_chain(llm, chain_type="map_reduce",verbose=True,map_prompt=PROMPT,combine_prompt=COMBINE_PROMPT)
Run Code Online (Sandbox Code Playgroud)

其中 PROMPT 和 COMBINE_PROMPT 是使用生成的自定义提示PromptTemplate

并且当您的chain_type='refine',您应该传递的参数是refine_prompt并且您的最终代码块看起来像

chain = load_summarize_chain(llm, chain_type="refine",verbose=True,refine_prompt=PROMPT)
Run Code Online (Sandbox Code Playgroud)