Skip to main content

不同的调用方法

所有继承自Chain的类都提供了几种运行链式逻辑的方式。最直接的方法是使用__call__

chat = ChatOpenAI(temperature=0)
prompt_template = "Tell me a {adjective} joke"
llm_chain = LLMChain(llm=chat, prompt=PromptTemplate.from_template(prompt_template))

llm_chain(inputs={"adjective": "corny"})

输出结果为:

{'adjective': 'corny',
'text': 'Why did the tomato turn red? Because it saw the salad dressing!'}

默认情况下,__call__方法返回输入和输出的键值对。你可以通过将return_only_outputs设置为True来配置它只返回输出的键值对。

llm_chain("corny", return_only_outputs=True)

输出结果为:

{'text': 'Why did the tomato turn red? Because it saw the salad dressing!'}

如果Chain只输出一个输出键(即其output_keys中只有一个元素),你可以使用run方法。注意,run方法输出的是一个字符串而不是一个字典。

# llm_chain只有一个输出键,所以我们可以使用run
llm_chain.output_keys

输出结果为:

['text']
llm_chain.run({"adjective": "corny"})

输出结果为:

'Why did the tomato turn red? Because it saw the salad dressing!'

对于只有一个输入键的情况,你可以直接输入字符串而不需要指定输入映射。

# 这两种方式是等价的
llm_chain.run({"adjective": "corny"})
llm_chain.run("corny")

# 这两种方式也是等价的
llm_chain("corny")
llm_chain({"adjective": "corny"})

输出结果为:

{'adjective': 'corny',
'text': 'Why did the tomato turn red? Because it saw the salad dressing!'}

提示:你可以通过run方法将Chain对象轻松集成到AgentTool中。查看这里的示例。