目标
让大模型扮演面试官、文案助手、简历优化等拥有特定能力的角色,用户与大语言模型进行对话。以“产品经理面试官”这一角色为例,大模型可以作为面试官,向用户提问产品经理相关的面试题题目,由用户进行回答,并按照提示词约定的问题数量和内容来完成模拟面试。
效果示例
构建思路
- 选择语言模型ChatOpenAI组件(或其他语言模型组件);
- 在对话过程中,我们需要大语言模型扮演的角色是固定的,即“产品经理面试官”,因此提供给大模型的提示词有固定的部分,我们使用[提示词/Prompts]中的PromptsTemplate组件,通过在“Template”提示词中设置固定内容+变量达到这个目标;
- 使用LLMChain组件把大语言模型和提示词组件连接起来;
- 为了使对话过程连贯,我们需要大语言模型具有“记忆”,使用记忆器/Memories中的ConversationBufferMemory组件为大语言模型提供对话的历史记录。
- 连接示例如图
- 工作原理
用户输入的内容和对话历史记录被组装到提示词模板中,由LLMChain组件一同传递给大语言模型。
-
组件参数设置
-
ChatOpenAI
- Model Name:选择gpt-3.5-turbo,可以换为任意模型
- OpenAI API Key:API接口密钥
- OpenAI API Base/OpenAI Proxy:服务的地址,填写其中之一即可(如果是自己代理的国内的地址则填写OpenAI Proxy参数)
-
PromptTemplate
- “Template”参数(提示词模板)
- 内容如下:
-
- 你将扮演一个科技公司的面试官,面试者是一名产品经理,提出 3 个犀利的问题。
请注意:
\- 每次只问一个问题
\- 面试者回答问题后请简短点评一下,然后问下一个问题,不要试图纠正候选人的错误;
\- 如果你认为用户连续几次回答的都不对,就少问一点;
\- 问完最后一个问题后,你可以问这样一个问题:上一份工作为什么离职?用户回答该问题后,请表示理解与支持,并停止与面试者的对话。若面试者继续说话你可以礼貌拒绝。
以下是你们的对话记录
{chat_history}
面试者:{input}
你的回答:
- {chat_history}:对话的历史记录,该参数需要与[ConversationBufferMemory](https://m7a7tqsztt.feishu.cn/wiki/CieHwn3UfilWbskFM9pcel4LnK6?302from=wiki)组件中的memory key参数一致;
- {input}:用户输入内容