开发 LLM 应用的时候,我们一般不会直接把用户写的提示文本发给模型,而是需要在应用里组织一下,再把组织好的提示文本发给模型去处理,LangChain 提供了一些工具可以在应用里管理这些提示文本。下面我们先试一下提示模板。
在这个文件的顶部,导入一样东西,要导入的是 PromptTemplate,它来自 langchain/prompts 。
在程序里声明一个 promptTemplate 表示提示模板,新建一个 PromptTemplate,提供一个对象,里面添加一个 template 属性,它的值是提示模板文本,比如 “写一首描写{subject}的诗歌”,这行文本里的大括号里面的东西就是这个模板里的参数。再添加一个 inputVariables ,它是一个数组,里面可以列出模板里的输入变量,这里需要添加一个 subject。
要使用这个提示模板写一段提示,可以这样,先声明一个 prompt 表示提示文本,等于 await,用一下 promptTemplate 上面的 format 这个方法,提供一个对象,里面设置一下 subject 这个属性,值可以是“春天”。
下面在控制台上输出这个组织好的提示文本,这里就是这个 prompt。然后可以修改一下调用模型的时候提供的这个提示文本,换成 prompt。
在终端,执行一下 node index.mjs ,你会发现在控制台上会输出使用了提示模板组织好的一行提示文本。“写一首描写春天的诗歌”,这里的“春天”就是提示模板里的 subject 参数的值。
假设我们做的是一个可以根据用户输入生成指定主题的诗歌的应用,在用户界面那里可以直接问用户想要写的主题就行了,比如春天,秋天,大海等等。