LLMchain
链其实可以被视为 LangChain 中的一种基本功能单元。

相当于直接调用内部的 _call_ or run
# 导入所需的库from langchain import Prompt Template, OpenAI, LLMChain
# 原始字符串模板
template = "{flower}的花语是?"
# 创建模型实例
llm = OpenAI(temperature=0)
# 创建LLMChain
llm_chain = LLMChain( llm=llm, prompt=PromptTemplate.from_template(template))
# 调用LLMChain,返回结果
result = llm_chain("玫瑰")
print(result)
# chain(参数dict) ~ chain.__call__
prompt = PromptTemplate(
input_variables=["flower", "season"],
template="{flower}在{season}的花语是?",
)
llm_chain = LLMChain(llm=llm, prompt=prompt)
print(llm_chain({
'flower': "玫瑰",
'season': "夏季" }))
# chain.predict(flower="玫瑰")
result = llm_chain.predict(flower="玫瑰")print(result)
# apply允许您针对输入列表运行链
input_list = [ {"flower": "玫瑰",'season': "夏季"}, {"flower": "百合",'season': "春季"}, {"flower": "郁金香",'season': "秋季"}]
result = llm_chain.apply(input_list)
print(result)
generate 方法类似于 apply,只不过它返回一个 LLMResult 对象,而不是字符串。LLMResult 通常包含模型生成文本过程中的一些相关信息,例如令牌数量、模型名称等。
result = llm_chain.generate(input_list)print(result)
Sequential Chain:顺序链
from langchain.llms import OpenAIfrom langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.chains import SequentialChain # 这是总的链,我们按顺序运行这三个链 overall_chain = SequentialChain( chains=[introduction_chain, review_chain, social_post_chain], input_variables=["name", "color"], output_variables=["introduction","review","social_post_text"], verbose=True) # 运行链,并打印结果 result = overall_chain({"name":"玫瑰", "color": "黑色"}) print(result)
ReAct框架,推理与行动的协同
在 LangChain 中使用代理,我们只需要理解下面三个元素。
大模型:提供逻辑的引擎,负责生成预测和处理输入。
与之交互的外部工具:可能包括数据清洗工具、搜索引擎、应用程序等。
控制交互的代理:调用适当的外部工具,并管理整个交互过程的流程。
from langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.agents import AgentType from langchain.llms import OpenAI llm = OpenAI(temperature=0) tools = load_tools(["serpapi", "llm-math"], llm=llm) agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) agent.run("目前市场上玫瑰花的平均价格是多少?如果我在此基础上加价15%卖出,应该如何定价?")