LangChain学习三:链-实战
2023-12-15 18:47:47
文章目录
上一节内容: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 顺序链
未完成待续
文章来源:https://blog.csdn.net/huiguo_/article/details/134995402
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!