使用 Chat 类型的模型的时候,需要提供特定格式的提示文本,比如可以提供系统信息,用户信息还有人工智能的信息。在 LangChain 应用里,使用 ChatPromptTemplate 可以定义适用于 Chat 模型使用的提示文本。
在这个 Node.js 程序文件的顶部,我们先从 langchain/prompts 里面导入几样东西,要导入的是 ChatPromptTemplate,SystemMessagePromptTempalte,还有 HumanMessagePromptTemplate。
然后声明一个 promptTemplate,用一下 ChatPromptTemplate 上面的 fromPromptMessages。给它提供一个数组,里面是一组聊天信息模板。
先用一下 SystemMessagePromptTemplate.fromTemplate,用它定义一个系统信息提示模板,这个系统信息的功能主要是告诉人工智能模型的身份,能做什么不能做什么等等。提供一个字符串,“你是{organization}的客服机器人,名字叫 {name}。”
再添加一个 HumanMessagePromptTemplate.fromTemplate,一个字符串,一组大括号,里面添加一个 text。这样在使用这个提示模板生成提示文本的时候,可以设置系统信息里的 organization 还有 name 变量的值,还需要设置用户信息里的 text 这个变量的值。
声明一个 result,等于 await,用一下 promptTemplate.format 这个方法,提供一个对象,设置一下 organization 的值,比如“宁皓网”,再设置一下 name,比如“小宁”,然后再添加一个 text ,这是用户信息模板里的一个变量,“你是谁?叫什么名字?”。在控制台上输出这个 result。
在终端,运行一下应用,这里输出的东西就是使用聊天提示文本模板生成的提示文本。
formatMessages
如果想根据这个模板生成一组聊天信息,这里我们可以把 format 换成 formatMessages 这个方法。这样得到的东西就是一组聊天信息,可以把它交给聊天模型使用。