【Prompt Engineering】4 推断

一、引言

  • 推断任务涉及模型接收文本输入并执行分析,如提取标签、实体、理解情感等。
  • 传统机器学习需要大量工作:收集数据、训练模型、部署模型。
  • LLM(大型语言模型)允许通过编写Prompt快速开始任务,无需大量工作。
  • 可以使用单一模型和API执行多种任务,无需训练和部署多个模型。
python 复制代码
from zhipuai import ZhipuAI
# 导入第三方库

key = " "
zhipu_client = ZhipuAI(api_key = key)
python 复制代码
def get_completion(prompt, model="glm-3-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = zhipu_client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=0, # this is the degree of randomness of the model's output
    )
    return response.choices[0].message.content

二、情感推断与信息提取

2.1 情感分类
  • 电商平台台灯评论的情感二分类(正向/负向)。
  • 使用Prompt分类情感,输出结果为"积极"或"消极"。
python 复制代码
# 中文
lamp_review_zh = """
我需要一盏漂亮的卧室灯,这款灯具有额外的储物功能,价格也不算太高。\
我很快就收到了它。在运输过程中,我们的灯绳断了,但是公司很乐意寄送了一个新的。\
几天后就收到了。这款灯很容易组装。我发现少了一个零件,于是联系了他们的客服,他们很快就给我寄来了缺失的零件!\
在我看来,Lumina 是一家非常关心顾客和产品的优秀公司!
"""
python 复制代码
# 中文
prompt = f"""
以下用三个反引号分隔的产品评论的情感是什么?

评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)
python 复制代码
prompt = f"""
以下用三个反引号分隔的产品评论的情感是什么?

用一个单词回答:「正面」或「负面」。

评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)
2.2 识别情感类型
  • 识别评论中的情感类型,输出不超过五项的情感列表。
python 复制代码
# 中文
prompt = f"""
识别以下评论的作者表达的情感。包含不超过五个项目。将答案格式化为以逗号分隔的单词列表。

评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)
2.3 识别愤怒
  • 判断评论作者是否表达愤怒,输出"是"或"否"。
python 复制代码
# 中文
prompt = f"""
以下评论的作者是否表达了愤怒?评论用三个反引号分隔。给出是或否的答案。

评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)
2.4 商品信息提取
  • 从评论中提取购买物品和制造物品的公司名称。

  • 输出格式化为JSON对象,包含"Item"和"Brand"键。

    python 复制代码
    # 中文
    prompt = f"""
    从评论文本中识别以下项目:
    - 评论者购买的物品
    - 制造该物品的公司
    
    评论文本用三个反引号分隔。将你的响应格式化为以 "物品" 和 "品牌" 为键的 JSON 对象。
    如果信息不存在,请使用 "未知" 作为值。
    让你的回应尽可能简短。
      
    评论文本: ```{lamp_review_zh}```
    """
    response = get_completion(prompt)
    print(response)
2.5 综合完成任务
  • 编写单个Prompt提取情感、愤怒、物品和品牌信息。
  • 输出格式化为JSON对象,包含"Sentiment"、"Anger"、"Item"和"Brand"键。
python 复制代码
# 中文
prompt = f"""
从评论文本中识别以下项目:
- 情绪(正面或负面)
- 审稿人是否表达了愤怒?(是或否)
- 评论者购买的物品
- 制造该物品的公司

评论用三个反引号分隔。将您的响应格式化为 JSON 对象,以 "Sentiment"、"Anger"、"Item" 和 "Brand" 作为键。
如果信息不存在,请使用 "未知" 作为值。
让你的回应尽可能简短。
将 Anger 值格式化为布尔值。

评论文本: ```{lamp_review_zh}```
"""
response = get_completion(prompt)
print(response)

三、主题推断

  • 推断长文本的主题,如新闻报道。
python 复制代码
# 中文
story_zh = """
在政府最近进行的一项调查中,要求公共部门的员工对他们所在部门的满意度进行评分。
调查结果显示,NASA 是最受欢迎的部门,满意度为 95%。

一位 NASA 员工 John Smith 对这一发现发表了评论,他表示:
"我对 NASA 排名第一并不感到惊讶。这是一个与了不起的人们和令人难以置信的机会共事的好地方。我为成为这样一个创新组织的一员感到自豪。"

NASA 的管理团队也对这一结果表示欢迎,主管 Tom Johnson 表示:
"我们很高兴听到我们的员工对 NASA 的工作感到满意。
我们拥有一支才华横溢、忠诚敬业的团队,他们为实现我们的目标不懈努力,看到他们的辛勤工作得到回报是太棒了。"

调查还显示,社会保障管理局的满意度最低,只有 45%的员工表示他们对工作满意。
政府承诺解决调查中员工提出的问题,并努力提高所有部门的工作满意度。
"""
3.1 推断讨论主题
  • 确定文本中讨论的五个主题,每个主题用1-2个单词描述,输出为逗号分隔的列表。
python 复制代码
# 中文
prompt = f"""
确定以下给定文本中讨论的五个主题。

每个主题用1-2个单词概括。

输出时用逗号分割每个主题。

给定文本: ```{story_zh}```
"""
response = get_completion(prompt)
print(response)
3.2 为特定主题制作新闻提醒
  • 确定特定主题列表中的每个项目是否是文本中的主题,输出为0或1的答案列表。
  • 根据输出结果,可以生成新闻提醒,例如关于NASA的新消息。
python 复制代码
# 中文
prompt = f"""
判断主题列表中的每一项是否是给定文本中的一个话题,

以列表的形式给出答案,每个主题用 0 或 1。

主题列表:美国航空航天局、当地政府、工程、员工满意度、联邦政府


给定文本: ```{story_zh}```
"""
response = get_completion(prompt)
print(response)
python 复制代码
topic_dict = {}
for i in response.split('\n'):
    words = i.split(': ')
    if len(words) > 1 and words[1].strip():
        topic_dict[words[0].strip()] = words[1].strip()
print(topic_dict)
if topic_dict['- 美国航空航天局'] == '1':
    print("提醒: 关于美国航空航天局的新消息")

总结

  • 使用LLM和Prompt可以快速构建用于文本推理的系统,无需传统机器学习的复杂流程。
  • 可以快速执行情感分析、信息提取和主题推断等NLP任务。
  • 这种方法对于熟练的机器学习开发人员和新手都非常有用,可以显著提高开发速度。
相关推荐
Latchh6 分钟前
前端导出的JPEG红字发糊,质量要拉到100才清楚
前端·图像处理·人工智能·计算机视觉
思考着亮9 分钟前
2.skill
人工智能
code_slave(码畜)12 分钟前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
码上观世界13 分钟前
Paseo 是如何统一管理 Claude Code 和 Codex 的?
人工智能·codex
长弓三石13 分钟前
把 AgentScope Harness 装进 RuoYi-Vue-Plus:纯 Java AI 平台的集成实践
java·人工智能·agent
思考着亮15 分钟前
3.什么是Harness Engineering?什么又是Loop Engineering?
人工智能
蜗牛互联网15 分钟前
MongoDB Atlas Agent Engine之后,如何用版本门禁防止陈旧写入
java·数据库·人工智能·后端·mongodb
长弓三石16 分钟前
企业级智能体的权限到底怎么落地?以 BizBuddy 为例
java·人工智能·agent
慢云智慧空间17 分钟前
从智能终端到空间AI,慢云科技如何重新定义智慧建筑的核心能力?
人工智能·python·科技
合调于形18 分钟前
Jusshen zhzzneng《具身智能》词条汉语拼音字母标调拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法