最简单的链式架构-顺序链
顺序链是最简单、也是最常用的的链式架构,它的作用是将多个链按照顺序串起来。
顺序链-SimpleSequentialChain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
from langchain.chat_models import ChatOpenAI # 从 langchain 导入 ChatOpenAI,用于与 OpenAI 的聊天模型交互
from langchain.prompts import PromptTemplate # 从 langchain 导入 PromptTemplate,用于定义提示模板
from langchain.chains import LLMChain # 从 langchain 导入 LLMChain,用于封装单个链
from langchain.chains import SimpleSequentialChain # 从 langchain 导入 SimpleSequentialChain,用于将多个链按顺序连接
import os # 导入 os 模块,用于操作系统相关功能
OPENAIKEY = os.getenv("OPENAI_API_KEY") # 从环境变量中获取 OpenAI 的 API 密钥
# 初始化一个 ChatOpenAI 对象,指定模型、温度、API 密钥和代理地址。因为openAi国内没有办法直接访问,这里我们使用代理地址。
llm = ChatOpenAI(model='gpt-3.5-turbo-0125', temperature=0.9, api_key=OPENAIKEY,
base_url="https://api.openai-proxy.org/v1")
# 定义一个提示模板,用于为公司生成中文名字
name_prompt = PromptTemplate(
input_variables=["company"], # 定义输入变量为 "company"
template="为这家{company}公司取一个中文名字:", # 提示模板内容
)
# 创建一个 LLMChain,将提示模板与聊天模型绑定
name_chain = LLMChain(llm=llm, prompt=name_prompt)
# 定义另一个提示模板,用于为公司生成 Slogan
slogan_prompt = PromptTemplate(
input_variables=["name"], # 定义输入变量为 "name"
template="为名为{name}的公司起一个Slogan,输出格式 name:slogan", # 提示模板内容
)
# 创建另一个 LLMChain,将提示模板与聊天模型绑定
slogan_chain = LLMChain(llm=llm, prompt=slogan_prompt)
# 创建一个顺序链,将 name_chain 和 slogan_chain 按顺序连接
overall_chain = SimpleSequentialChain(
chains=[name_chain, slogan_chain], # 定义链的顺序
verbose=True # 设置为 True,打印链的执行过程
)
# 运行顺序链,输入 "咨询",并打印结果
print(overall_chain.run("咨询"))
|
输出:
1
2
3
4
5
6
|
> Entering new SimpleSequentialChain chain...
智慧咨询consulting
智慧咨询consulting: 解决问题,创造价值
> Finished chain.
智慧咨询consulting: 解决问题,创造价值
|
可以看到,顺序链使用十分简单,前一个链的输出作为后一个链的输入,直到所有的链都执行完毕,输出最终结果。
但是,要注意,如果链比较多,可能会出现超时的情况。这个怎么处理,咱们后面再说。
微信打赏
支付宝打赏