当前位置: 首页 > news >正文

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

这里写目录标题

    • 分类
      • 理解 SYSTEM 和 USER 在 AI 对话中的角色
      • System Message
      • User Message
      • 工作原理
      • 示例
      • 分类示例
      • 更多分类示例
      • 理论问题
      • 理论

在这里插入图片描述

分类

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

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

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

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

System Message

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

User Message

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 (设定上下文或提供指令)
    {'role': 'system', 'content': "您是一位以幽默诗人风格回答的助手。"}
    
  • User Message (提出问题或请求)
    {'role': 'user', 'content': "给我写一首关于快乐胡萝卜的短诗。"}
    

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

分类示例

以下是完整的示例代码:

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 提供足够的上下文,以便将其准确地分类到预定义的类别中。

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

相关文章:

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

这里写目录标题 分类理解 SYSTEM 和 USER 在 AI 对话中的角色System MessageUser Message工作原理示例分类示例更多分类示例理论问题理论 分类 理解 SYSTEM 和 USER 在 AI 对话中的角色 在分类任务中,通常需要向模型提供一个需要将其分类到预定义类别中的文本场景…...

仓颉 -- 标识符 , 变量以及数据类型详解

仓颉 – 标识符 , 变量以及数据类型 一. 标识符 1. 普通标识符 由数字 , 字母 , 下划线构成 – cangjie , cangjie_2024由英文字母开头,后接零至多个英文字母、数字或下划线。由一至多个下划线开头,后接一个英文字母,最后可接零至多个英文…...

CC++:贪吃蛇小游戏教程

❀创作不易,关注作者不迷路❀😀😀 目录 😀贪吃蛇简介 😃贪吃蛇的实现 🐍生成地图 🐍生成蛇模块 ❀定义蛇的结构体 ❀初始化蛇的相关信息 ❀初始化食物的相关信息 🐍光标定位和…...

C#中投影运算的深入解析与实例应用

文章目录 1、投影运算的基本语法2、投影运算的高级用法3、投影运算在向量空间中的运用4、投影运算在数据库和XML中的实际应用5、投影运算能用于哪些实际场景?6、结论 在C#编程中,投影运算是一种常用的数据操作技术,它可以将一个数据集合转换成…...

HTML+CSS練習---空隙產生記錄

1.第一層和第二層之間的間隙&#xff1a;以為導航欄超過高度朝下擠下來了 2.第2層兩個div中的空隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>font-face {f…...

【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构、LeetCode专栏 &#x1f4da;本系…...

Linux系统窗口水印难点分析

给应用程序加水印是保护数据的一种方式&#xff0c;window上可以通过给进程通过注入的方法给进程的窗口创建一个同大小的副窗口&#xff0c;在副窗口上绘制水印内容&#xff0c;同时设置副窗口透明同时透传事件&#xff0c;这样就可以达到在源窗口上显示水印的效果且不影响程序…...

LabVIEW与CANopen实现自动化生产线的设备控制与数据采集

在某工厂的自动化生产线上&#xff0c;多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC&#xff0c;它们共同负责监测和控制生产过程中的关键参数&#xff0c;如温度、压力、速度等。为了实现对整个生产线的集中监控和管理&#xff0c;工厂决定使用La…...

吃惊!这个Windows双系统方法逆天了|UEFI篇

前言 最近小白在折腾别的系统教程&#xff0c;偶然间发现居然有一个很nice的Windows双系统教程。于是于是&#xff0c;果断尝试了一下&#xff0c;发现真的很可行&#xff01; 这个双系统的办法并不需要使用到WinPE系统&#xff0c;因此并不需要使用到U盘&#xff0c;只需要在…...

【C语言基础】C语言试题复习

1. 执行下面的程序段后&#xff0c;k 的值是_______。 int k1,n325; do { k*n%10;n/10;}while(n); 解析&#xff1a; 给定 n 325 和初始 k 1&#xff0c;代码中的循环将会进行如下操作&#xff1a; 第一次循环:n % 10 得到 5&#xff0c;因此 k * 5&#xff0c;即 k 1 * 5 …...

一拖三无线充底座-带给你极致的便利生活

随着科技的不断进步&#xff0c;无线充电技术已经逐渐渗透到我们日常生活的方方面面&#xff0c;一拖三无线充底座作为其中的佼佼者&#xff0c;以其高效、便捷的特点受到广大用户的青睐。本文将从电磁感应原理、多线圈设计、频率匹配、电能传输、功率分配以及充电管理六个方面…...

探索 Electron:打造深度书籍挖掘机的搜索体验

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…...

tomato靶场

扫描网址端口 访问一下8888 我们用kali扫描一下目录 访问这个目录 产看iofo.php源码&#xff0c;发现里面有文件包含漏洞 访问/etc/passwd/发现确实有文件包含漏洞 远程连接2211端口 利用报错&#xff0c;向日志文件注入木马&#xff0c;利用文件包含漏洞访问日志文件 http:/…...

【Vue】computed计算对象不生效问题?

问题描述 最近使用vuex来管理全局状态&#xff0c;遇到了computed计算state中数据却不生效的问题。 原因分析&#xff1a; 先看vue官网示例&#xff1a; computed接收的是一个getter函数&#xff0c;但是这个getter函数是懒加载并且有缓存的&#xff0c;当计算属性最终计算…...

算法小白的进阶之路(力扣9~12)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

DOCKER容器中安装JDK1. 8 详细步骤

1.通过查找JDK8的远程镜像 docker search jdk 2.选择一个远程镜像下载到本地仓库 #拉取镜像 docker pull kdvolder/jdk8#查看镜像 docker images 可以看到REPOSITORY列下面出现了kdvolder/jdk8 3.在docker容器中运行jdk8的镜像 docker run -di --namejdk1.8 kdvolder/jdk…...

计算机毕业设计Python+Tensorflow股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

1、用pycharm打开项目&#xff0c;一定要打开包含manage.py文件所在文件夹 2、配置解释器&#xff1a;建议使用Anaconda(Python 3.8(base))&#xff0c;低于3.8版本的&#xff0c;页面会不兼容 3、安装依赖库&#xff1a;打开pycharm的终端&#xff0c;输入&#xff1a; pip in…...

深度学习常见的卷积和注意力机制文章集锦(持续更新)

卷积 友好链接1 卷积原理&#xff1a;几种常用的卷积&#xff08;标准卷积、深度卷积、组卷积、扩展卷积、反卷积&#xff09; 友好链接2 一文看尽深度学习中的20种卷积&#xff08;附源码整理和论文解读&#xff09; 友好链接3 深度学习中组卷积(Group convolution)、深度卷积…...

如何在立创EDA的PCB电路板导入logo图案

1、首先制作好logo图案&#xff0c;一般为公司logo图标&#xff0c;如下图 2、打开立创EDA的PCB文件&#xff0c;如下图 3、将PCB的图层切换到丝印层&#xff1a; 4、然后选择EDA菜单栏的放置---图片&#xff1a; 5、进入后点击选择图片&#xff0c;将logo图片导入&#xff0c;…...

springboot集成canal

目录 一、打开mysql的binlog1.1 打开 MySQL 配置文件 my.cnf&#xff08;通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf&#xff09;并添加或修改以下设置&#xff1a;1.2 重启mysql服务1.3 验证是否生效 二、 部署canal 服务端&#xff08;docker&#xff09;2.1 下载启动脚本(可…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...