【大模型从入门到精通4】openAI API 分类

这里写目录标题

分类

理解 SYSTEM 和 USER 在 AI 对话中的角色

在分类任务中,通常需要向模型提供一个需要将其分类到预定义类别中的文本场景。以下是设置 system_messageuser_message 的方法:

  • system_message: 这部分应该解释当前的任务,包括可用的分类类别。它设定了 AI 预期行为的上下文。
  • user_message: 这应该包含需要分类的文本。这是 AI 进行分类的基础。

假设任务是将客户反馈分为"正面"、"负面"或"中立"等类别。

System Message

plaintext 复制代码
system_message = """将客户反馈分类为以下类别之一:正面、负面或中立。"""

User Message

plaintext 复制代码
user_message = """我最近从你们商店购买了一件产品。购物体验非常棒,产品质量超出了我的期望!"""

工作原理

当通过 Chat Completion API 与 OpenAI 的 GPT 模型交互时,对话中的消息被结构化以准确模拟用户与 AI 系统之间的交流。每条消息都是一个至少包含两个关键组件的字典:角色和内容。角色键指定了消息的来源,而内容键则包含了消息的实际文本。区分 {role: 'system'}{role: 'user'} 对于设计能够引发所需响应的交互至关重要。

  • {role: 'user'}

带有 {role: 'user'} 标记的消息表明该消息来自用户的视角,类似于用户向 AI 提问或陈述。这些通常是查询、命令或输入,AI 预期对此作出回应。通过标记消息为来自用户,您是在模拟对话中用户的角色,指导 AI 如何构建其响应。

  • {role: 'system'}

相反,带有 {role: 'system'} 标记的消息为 AI 模型提供了指令、上下文或约束条件,模拟系统生成的消息。这些可以规定 AI 的行为、个性或响应风格,比如指示 AI 以特定作者的风格回答问题或遵守某些指南。系统消息影响 AI 如何理解和回应后续的用户消息。

消息序列中的系统和用户角色引导 AI 生成与上下文相关且符合直接用户输入及总体系统指令的响应。这种动态交换允许 AI 根据提供的上下文和指令调整其响应,从而实现更加细腻和互动的对话。

示例

假设您希望 AI 以一种幽默诗人的风格创作一首关于快乐胡萝卜的小诗。消息序列可能如下所示:

  • System Message (设定上下文或提供指令)

    plaintext 复制代码
    {'role': 'system', 'content': "您是一位以幽默诗人风格回答的助手。"}
  • User Message (提出问题或请求)

    plaintext 复制代码
    {'role': 'user', 'content': "给我写一首关于快乐胡萝卜的短诗。"}

这种对话流程允许构建细腻且具有上下文意识的 AI 交互,使语言模型在各种应用中得到创造性和有效的利用。

分类示例

以下是完整的示例代码:

python 复制代码
import os
import openai
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())  # 读取本地 .env 文件

openai.api_key = os.environ['OPENAI_API_KEY']

def classify(messages, model="gpt-3.5-turbo", temperature=0, max_tokens=500):
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=temperature, 
        max_tokens=max_tokens,
    )
    return response.choices[0].message["content"]

delimiter = "####"
system_message = """将客户反馈分类为以下类别之一:正面、负面或中立。"""

user_message = """我最近从你们商店购买了一件产品。购物体验非常棒,产品质量超出了我的期望!"""

messages = [
    {'role':'system', 'content': system_message},
    {'role':'user', 'content': f"{delimiter}{user_message}{delimiter}"}
]

response = classify(messages)
print(response)

更多分类示例

下面是针对分类任务设计的十个示例,涵盖了各种话题和类别。每个示例包括简要的任务描述和分类类别,随后是具体的 system_message 和通用的 user_message,它们将被分类。

  1. 电子邮件分类

    类别:工作、个人、垃圾邮件

    System Message : "将下列电子邮件分类为工作、个人或垃圾邮件。"
    User Message: "我们最新的电子产品优惠巨大!现在点击节省大量费用。"

  2. 电影评论情感分析

    类别:正面、负面、中立

    System Message : "确定以下电影评论的情感是正面、负面还是中立。"
    User Message: "这部电影的画面令人惊叹,但故事情节可预测且缺乏深度。"

  3. 新闻文章主题分类

    类别:政治、科技、体育、娱乐

    System Message : "将新闻文章的主题分类为政治、科技、体育或娱乐。"
    User Message: "最新的智能手机型号采用突破性的技术,有望改变整个行业。"

  4. 产品评论评级

    类别:1 星、2 星、3 星、4 星、5 星

    System Message : "根据产品评论的内容,将其分类为 1 星至 5 星的等级。"
    User Message: "虽然产品设计创新,但频繁故障和糟糕的客户服务使其难以推荐。"

  5. 客户咨询意图

    类别:账单、技术支持、销售、一般咨询

    System Message : "识别客户咨询的意图是账单、技术支持、销售还是一般咨询。"
    User Message: "您可以解释一下不同的套餐及其正在进行的促销活动吗?"

  6. 文本体裁识别

    类别:小说、非小说、诗歌、新闻

    System Message : "识别以下文本的体裁是小说、非小说、诗歌还是新闻。"
    User Message: "在城市的中心,繁忙的街道之中,有一个静谧的花园,仿佛未被时间触及。"

  7. 社交媒体帖子语气

    类别:严肃、幽默、励志、愤怒

    System Message : "将下列社交媒体帖子的语气分类为严肃、幽默、励志或愤怒。"
    User Message: "没有什么比以微笑开始一天更好的了。记住,快乐是会传染的!"

  8. 研究论文领域

    类别:生物学、计算机科学、心理学、数学

    System Message : "将下列研究论文摘要的领域分类为生物学、计算机科学、心理学或数学。"
    User Message: "本研究探讨了排序机制的算法复杂性和计算效率。"

  9. 食品评论风味特征

    类别:甜、咸、酸、苦、鲜

    System Message : "将食品评论中描述的风味特征分类为甜、咸、酸、苦或鲜。"
    User Message: "这道菜呈现了一个完美的鲜味平衡,微妙的甜味增强了整体口感。"

  10. 紧急呼叫类型

    类别:火灾、医疗、犯罪、其他

    System Message : "根据下列通话记录的内容,将紧急事件类型分类为火灾、医疗、犯罪或其他。"
    User Message: "隔壁大楼冒出大量烟雾,我们能看到火焰。请尽快派救援人员来!"

对于这些示例中的每一个,您可以根据具体要分类的场景调整 user_message,确保 AI 模型获得清晰的上下文和任务说明。

理论问题

  1. 消息的关键组成部分以及区分它们的重要性是什么?

    消息的关键组成部分是角色(role)和内容(content)。角色指明了消息的来源,而内容包含了实际的文本信息。区分这两个组成部分很重要,因为它们指导 AI 理解对话的结构和目的,从而更好地生成适当的响应。

  2. 在 AI 对话中,'system' 消息的作用与 'user' 消息有何不同?

    'system' 消息为 AI 提供背景信息、指导和规则,用于设定 AI 的行为方式。'user' 消息代表用户的问题或陈述,AI 将基于这些消息生成相应的回答。

  3. 举例说明如何通过 'system' 消息控制 AI 的行为或回答风格?

    例如,'system' 消息可以这样设置:"您是一位以幽默诗人风格回答的助手。"这样的消息将指导 AI 以幽默诗人的风格来回答用户的问题。

  4. 系统和用户角色之间消息序列如何影响 AI 模型的响应?

    系统消息为 AI 设定背景和规则,而用户消息提供具体问题或信息。这种序列让 AI 明确了解上下文,并根据上下文生成相关的响应。

  5. 在分类任务示例中,有哪些可供选择的客户反馈类别?

    可供选择的客户反馈类别包括:正面、负面、中立。

  6. 描述一个分类电影评论情感有益的情景。可以使用哪些类别进行分类?

    在电影评论网站上,分类评论情感可以帮助过滤正面或负面的反馈,帮助用户快速了解电影的整体评价。类别可以是正面、负面、中立。

  7. 分类新闻文章主题如何帮助内容管理和推荐系统?给出一些可以使用的类别示例。

    分类新闻文章有助于组织和推荐相关内容给感兴趣的读者。例如,类别可以是政治、科技、体育、娱乐。

  8. 在商业环境中,分类客户咨询为何重要?可以使用哪些类别来简化客户服务流程?

    分类客户咨询可以帮助快速转接到正确的部门或代表,提高服务效率。类别可以是账单、技术支持、销售、一般咨询。

  9. 在 AI 分类任务中,'user_message' 的作用是什么?应该如何构造以帮助 AI 准确分类?

    'user_message' 包含了待分类的信息。它应该清晰地表达出需要分类的内容,以便 AI 能够理解并准确分类。

  10. 分类社交媒体帖子的语气如何有利于内容审核或营销策略?给出一些可以使用的语气类别示例。

    分类社交媒体帖子的语气可以帮助识别有害内容或确定营销策略的有效性。语气类别可以是严肃、幽默、励志、愤怒。

理论

在与 OpenAI 的 GPT 模型交互的上下文中,消息的关键组成部分是角色和内容。角色指定了消息是否来自系统或用户,指导 AI 如何构建其响应。区分这两者对于模拟动态交流至关重要,并帮助 AI 理解并适当地响应当前的任务。

  • 'System' 消息提供了指令、上下文或约束条件,塑造了 AI 的行为、个性或响应风格。
  • 'User' 消息则是来自用户视角的输入,如查询或陈述,AI 将对此作出响应。这种区别有助于构建能够引发所需响应的交互。

一个例子说明了 'system' 消息如何控制 AI 的行为:指示 AI 以幽默诗人的风格回答。这样的消息设定了基调和风格,确保 AI 的回答与用户所要求的幽默诗意的上下文相符。

消息序列通过提供丰富的上下文背景来影响 AI 模型的响应。它确保 AI 的回答既与用户的直接输入一致,也与系统提供的总体指令或上下文保持一致,从而实现更加细腻的对话。

在提供的示例中,可用于分类客户反馈的类别是"正面"、"负面"或"中立"。这种分类有助于理解顾客满意度以及需要改进的地方。

对电影评论的情感进行分类对于汇总消费者对电影的意见是有益的,这有助于潜在观众做出明智的选择。分类类别可以包括"正面"、"负面"和"中立"。

对新闻文章的主题进行分类有助于内容管理,通过将文章组织成类别便于导航;同时,在推荐系统中,可以根据读者的兴趣推荐相关文章。类别示例包括"政治"、"科技"、"体育"和"娱乐"。

在商业环境中,对客户咨询进行分类至关重要,可以高效地将查询导向合适的部门,提高响应时间和客户满意度。类别可以包括"账单"、"技术支持"、"销售"和"一般咨询"。

在 AI 分类任务中,'user_message' 应该包含需要分类的文本。它应该被清晰简洁地结构化,为 AI 提供足够的上下文,以便将其准确地分类到预定义的类别中。

对社交媒体帖子的语气进行分类有助于内容审核,通过识别和管理不当内容,并通过分析受众参与度来通知营销策略。语气类别可以包括"严肃"、"幽默"、"励志"和"愤怒"。

相关推荐
B站计算机毕业设计超人31 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条36 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客40 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon43 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨2 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神2 小时前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow