【2024最全最细Langchain教程-3 】Langchain模型I/O之提示Prompt(一)-CSDN博客
Prompt的其他两种写法
在上一节课里,我们初步介绍了langchain的模型I/O,并介绍了提示词或模板 prompt,今天我们继续加深对prompt的理解,了解prompt的几种其他的生成方式,首先,我们还是引入必要的包,然后建立一个llm模型:
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"
)
上一节课,我们是用from_messages()方法来创建的模板,这次我们使用一个更常用的方法from_template()来创建提示词模板:
prompt = (
ChatPromptTemplate.from_template("给我讲一个关于{topic}的笑话")
+ "\n\n 并且用 {language} 来讲"
)
chain = prompt | llm
chain.invoke({"topic":"爱情","language":"英文"})
比较简单的模板可以直接以“str + {parameter}”的形式插入进from_template()的输入,而且在这个方法的之后可以加上其他的说明,运行的结果如下:
提示词工程初识
如果是比较长的template内容,可以这样进行设置更加清晰(这种形式是使用的最多的),注意,你可以在你的提示词里加入明确的对大模型的要求,比如这里的template中就加入了对输出的要求,希望大模型不仅要回答正确的问题,还要用诗一样的语言来描述这个答案,这个就是提示词工程的雏形,就是你可以用prompt去引导大语言模型如何思考和输出,这个对于我们来说是非常重要的:
from langchain import PromptTemplate
template = """
你是一个旅游销售员,你不仅要告诉用户正确的答案,还要用诗一样的语言来描述这个答案!
请告诉我{country}的首都是那座城市?
"""
prompt3 = PromptTemplate(template = template, input_variables=["country"])
chain3 = prompt3 | llm
chain3.invoke({"country":"英国",})
以下是运行结果,可以看到大模型不仅不回答了问题,而且还根据template的要求进行了输出:
项目git地址:https://github.com/jerry1900/jupyter
项目视频地址:06:00【2024最全最细】langchain之prompt提示模板(二)_哔哩哔哩_bilibili
如需openai国内节点账号请与我/联/系/:15652965525(/微/信/)