【2024最全最细Langchain教程-3 】Langchain模型I/O之提示Prompt(一)

【2024最全最细Langchain教程-1 】调用openai实现人工智能时代的hello_world-CSDN博客

【2024最全最细Langchain教程-2 】Langchain模型I/O之模型包装器-CSDN博客

        在上一节课中,我们开始使用 response = llm.invoke("") 这个命令开始进行大模型的调用,但是用户的输入可能很复杂、还可能带参数,所以我们要学会使用模板来进行输入内容的组织,因此我们就需要使用Prompt(模板 or  提示)。

        langchain官网是这样解释prompt的: "提示" 指的是模型的输入。这个输入通常不是硬编码的,而是通常由多个组件构成的。我们来看一个最简单的模板

初识模板Prompt

        我们引入了langchain_core.prompts  里面 ChatPromptTemplate 模板,注意我们引入的模型是一个聊天模型包装器ChatOpenAI,因此对应的模板也应该使用ChatPromtTemplate而不是PromtTemplate

import langchain
import os

from langchain_openai import ChatOpenAI

# 引入模板 ChatPromptTemplate
from langchain_core.prompts import ChatPromptTemplate

api_key = os.getenv("OPENAI_API_KEY")

llm = ChatOpenAI(
    openai_api_key=api_key,
    temperature = 0.5,
    base_url = "https://apejhvxcd.cloud.sealos.io/v1"
)



prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个中国历史专家."),
    ("user", "{input}")
])

chain = prompt | llm

chain.invoke({"input":"中国改革开放的总设计师是谁?"})

       运行结果:

在这里,我们实例化了一个ChatPromtTemplate,并使用它的from_messages()方法来接受信息输入。这个方法获取一个List列表,List里有两个元组,第一个元组是system系统消息,这个是对语言模型响应的定义和限制,我们看下面一个示例:

prompt2 = ChatPromptTemplate.from_messages([
    ("system", "你是一个中国历史专家.你只负责回答历史问题,你对历史之外的知识不予以回答"),
    ("user", "{input}")
])

chain2 = prompt2 | llm

chain2.invoke({"input":"python是什么类型的语言?"})

        我们构造了第二个模板,构造了第二个chain2然后进行调用,我们看下运行结果:

        如果我们把system消息置空,再看下效果:

        可以看到是否设置模板提示词里的system消息,所得到的回答差异巨大,这个也是为什么Prompt Engineering 这么火的原因,原因就在于使用不用的Prompt得到的大模型响应完全不同。

GITHUB和视频教学地址

        B站视频地址:【2024最全最细】langchain之prompt提示模板(一)_哔哩哔哩_bilibili

        github地址:https://github.com/jerry1900/jupyter

        如需openai国内节点账号请与我联系:15652965525(微信)

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值