??链允许我们将多个组件组合
在一起,创建一个单一的、一致的应用程序。
例如,我们可以创建一个链,该链接接受用户输入,使用 PromptTemplate 对其进行格式化,然后将格式化后的响应传递给 LLM。我们可以通过将多个链组合在一起,或者通过将链与其他组件组合在一起,来构建更复杂的链。
LLMChain:是一个简单的链,它接受一个提示模板,使用用户输入对其进行格式化,并从 LLM 返回响应。
from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
streaming=True,
verbose=True,
temperature=0,
# callbacks=[callback],
openai_api_key='none',
openai_api_base='http://localhost:8000/v1',
model_name="Qwen-7B-Chat"
)
prompt = PromptTemplate(
input_variables=["product"],
template="一个制造{product}产品的公司的好名字是什么?中文",
)
from langchain.chains import LLMChain
# 将llm和prompt 进行和LLMChain关联
chain = LLMChain(llm=llm, prompt=prompt)
#只运行指定输入变量的链
print(chain.run("各种颜色的袜子"))
当然上面我们直接用PromptTemplate模板的,如果是聊天模型,可以是以下做法
from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
streaming=True,
verbose=True,
temperature=0,
# callbacks=[callback],
openai_api_key='none',
openai_api_base='http://localhost:8000/v1',
model_name="Qwen-7B-Chat"
)
from langchain.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
)
human_message_prompt = HumanMessagePromptTemplate(
prompt=PromptTemplate(
template="一个制造{product}产品的公司的好名字是什么?中文",
input_variables=["product"],
)
)
chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=chat_prompt_template)
print(chain.run("各种颜色的袜子"))
效果也是一样的
在上面的情况我们只是定义了一个product变量,如果我们有多个变量呢,这时候我们可以传一个字典进去
字典格式{‘变量名’:变量值,‘变量名’:变量值}
return_only_outputs=True
只输出结果from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
streaming=True,
verbose=True,
temperature=0,
# callbacks=[callback],
openai_api_key='none',
openai_api_base='http://localhost:8000/v1',
model_name="Qwen-14B-Chat"
)
from langchain.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
)
human_message_prompt = HumanMessagePromptTemplate(
prompt=PromptTemplate(
template="一个制造{product}产品的{name}公司的好名字是什么?中文",
input_variables=["product","name"],
)
)
chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=chat_prompt_template)
print(chain.run({'product':"食品",'name':"提供"}))
out=chain(inputs={'product':"食品",'name':"提供"})
print(out)
out=chain(inputs={'product':"食品",'name':"提供"},return_only_outputs=True)
print(out)
未完成待续