不同的调用方法
所有继承自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
对象轻松集成到Agent
的Tool
中。查看这里的示例。