文章目录
- 上一节内容:LangChain学习二:提示-实战(下半部分)
- 学习目标:明白链是什么?有哪些?怎么用?
- 学习内容一:介绍
- 学习内容二:有那些
- 学习内容三:实战
- 3.1 LLMChain
- 3.1.1 声明:接入大模型、声明PromptTemplate、LLMChain
- 3.1.2 送入大模型
- 3.1.3.多个参数
- 3.2 顺序链
上一节内容:LangChain学习二:提示-实战(下半部分)
LangChain学习二:提示-实战(下半部分)
学习目标:明白链是什么?有哪些?怎么用?
学习内容一:介绍
链允许我们将多个组件组合
在一起,创建一个单一的、一致的应用程序。
例如,我们可以创建一个链,该链接接受用户输入,使用 PromptTemplate 对其进行格式化,然后将格式化后的响应传递给 LLM。我们可以通过将多个链组合在一起,或者通过将链与其他组件组合在一起,来构建更复杂的链。
学习内容二:有那些
- LLMChain:是一个简单的链,它接受一个提示模板,使用用户输入对其进行格式化,并从 LLM 返回响应。
学习内容三:实战
3.1 LLMChain
LLMChain:是一个简单的链,它接受一个提示模板,使用用户输入对其进行格式化,并从 LLM 返回响应。
3.1.1 声明:接入大模型、声明PromptTemplate、LLMChain
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)
3.1.2 送入大模型
#只运行指定输入变量的链
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("各种颜色的袜子"))
效果也是一样的
3.1.3.多个参数
在上面的情况我们只是定义了一个product变量,如果我们有多个变量呢,这时候我们可以传一个字典进去
字典格式{‘变量名’:变量值,‘变量名’:变量值}
- chain.run(字典):直接出结果
- chain(inputs=字典):变量和结果,可以
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)
3.2 顺序链
未完成待续