5.4集成多个任务
一个提示来识别情绪,判断客户是否生气,然后提取商品名称和品牌。提取所有这些信息的方法是,使用3个或4个提示,并调用3次或4次get_completion函数,每次提取一个不同的字段。除去上述方法,还可以只编写一个提示来同时提取所有这些信息。例如,识别以下的项目:提取情绪,是否在表达愤怒,购买的商品,商品的制造商。然后,还将要求它将愤怒情绪表示为布尔值的格式。
prompt = f"""
从评论文本中识别以下项目:
- 情绪(正面或负面)
- 审稿人是否表达了愤怒?(是或否)
- 评论者购买的物品
- 制造该物品的公司
评论用三个反引号分隔。将您的响应格式化为 JSON 对象,以 “Sentiment”、“Anger”、“Item” 和 “Brand” 作为键。
如果信息不存在,请使用 “未知” 作为值。
让你的回应尽可能简短。
将 Anger 值格式化为布尔值。
评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)
# >>>>>>> 输出 <<<<<<<
{
"Sentiment": "正面",
"Anger": false,
"Item": "卧室灯",
"Brand": "Lumina"
}
然后运行它。这将输出为 JSON 格式,其中情绪是正面的。愤怒,false 没有加引号,因为输出格式是布尔值。商品 item 被提取为“带有额外存储的灯”,而不仅仅是“灯”。通过这种方式,只需要使用一个提示就可以从一段文本中提取多个字段。
5.5文本主题推断
大型语言模型的一个酷炫的应用是推断主题。
给定一段很长的文本,这段文本是关于什么的?有哪些主题? 这是一篇虚构的报纸文章,关于政府工作人员对他们所工作机构的感受,最近由政府进行了一项调查,结果是 NASA 是一个受欢迎的部门,满意度很高。
story = """
在政府最近进行的一项调查中,要求公共部门的员工对他们所在部门的满意度进行评分。
调查结果显示,NASA 是最受欢迎的部门,满意度为 95%。
一位 NASA 员工 John Smith 对这一发现发表了评论,他表示:
“我对 NASA 排名第一并不感到惊讶。这是一个与了不起的人们和令人难以置信的机会共事的好地方。我为成为这样一个创新组织的一员感到自豪。”
NASA 的管理团队也对这一结果表示欢迎,主管 Tom Johnson 表示:
“我们很高兴听到我们的员工对 NASA 的工作感到满意。
我们拥有一支才华横溢、忠诚敬业的团队,他们为实现我们的目标不懈努力,看到他们的辛勤工作得到回报是太棒了。”
调查还显示,社会保障管理局的满意度最低,只有 45%的员工表示他们对工作满意。
政府承诺解决调查中员工提出的问题,并努力提高所有部门的工作满意度。
"""
上面是一篇虚构的关于政府工作人员对他们工作机构感受的报纸文章。我们可以让它确定五个正在讨论的主题,用一两个字描述每个主题,并将输出格式化为逗号分隔的列表。
prompt = f"""
确定以下给定文本中讨论的五个主题。
每个主题用1-2个单词概括。
输出时用逗号分割每个主题。
给定文本: ```{story_zh}```
"""
response = get_completion(prompt)
print(response)
# >>>>>>> 输出 <<<<<<<
调查结果, NASA, 社会保障管理局, 员工满意度, 政府承诺
所以,总的来说,我认为很好地提取了主题列表。当然,你也可以把这个输出进行拆分,就可以得到,包含这篇文章所涉及的五个主题的 Python 列表。
response.split(sep=',')
结果如下。
[调查结果, NASA, 社会保障管理局, 员工满意度, 政府承诺]
除了上述介绍的这几种典型的推理任务应用外,基于大模型的推理任务还可以控制输出的样式、文本主题索引以及主题内容提醒等任务,具体可以参考本章的参考扩展资料进行学习。