🔥🔥【干货满满】带你盘点OpenAI的最全知识点(第二篇)

前言

大家好,这里是知了,这里是我们《盘点OpenAI的最全知识点》 系列的第二篇内容。

不知道大家平时有没有对chatgpt以及其他聊天机器人的运作方式感到疑惑?它到底如何发展到这么智能的呢? 今天我们就来讲讲GPT如何通过自然语言生成能力实现 AI客服情感分析图片识别这三个实例。

一、使用前的准备工作

Colaboratory

在开始之前,我们要注册登录 colab.research.google.com/ 这个网站,我们今天讲的所有操作都是在这个平台上进行的。

Colab是一个由Google提供的免费GPU的Jupyter云服务平台。在个人电脑没有足够计算资源的情况下,可以登录这个平台进行一些较小规模的计算。

API Key

另外我们还需要一个chatgpt的api-key,这个是应用程序编程接口的密钥,是我们访问网站的必要条件之一,它通常用于防止未经授权的访问。

要获得GPT的API,我们可以按照以下步骤进行操作:

  1. 注册ChatGPT账号
  2. 创建API密钥:在OpenAI控制台中,找到"API Keys"选项卡,点击"Create New Key",输入密钥名称和描述,选择密钥类型(个人或组织),确认设置后点击"Create Key"按钮。
  3. 安装OpenAI提供的API客户端库。在OpenAI官方文档中可以找到相关的安装指南和示例代码。
  4. 调用API进行文本生成

二、AI客服

准备工作完成之后,我们就可以在 colab 上写我们的代码啦~

首先,我们看看如何基于 openai 的大模型来强化ai客服。 我们知道,GPT可以模拟人类客服员的答复方式,为人们提供类似人类的对话服务。在客服领域,GPT可以帮助企业自动回答用户的问题,提高客户服务的效率和质量。

我们添加一个COMPLETION模型中的 text-davinci-003 达芬奇模型,这个模型可以生成比其前身text-davinci-002更自然、更准确且更长的文本。它还可以用于各种领域,如自然语言处理、机器翻译、聊天机器人、语音识别等。

然后我们给后台提供一个prompt参数,其中可以写我们对这个客服的需求。

python 复制代码
import openai
# api_key 这里我们添加自己的api_key
openai.api_key = ""
# 常量 文本生成的模型
COMPLETION_MODEL = "text-davinci-003"
# 系统后台生成了一条记录,再调用我们这个 AIGC 来生成客服
prompt = """请你使用朋友的语气回复到客户,并称他为亲,他的订单已经发货在路上了,预计在3天之内会送达,订单号2021AEDG,我们很抱歉因为天气的原因物流时间比原来长,感谢他选购我们的商品。"""

下一步,我们定义了一个函数get_response,这个函数接收一个prompt(即文本提示)和一个可选的temperature参数(控制生成文本的随机性)。然后,这个函数通过调用OpenAI库的Completion模块的create方法来生成回复。

python 复制代码
# 封装了 openai 回复的功能 
def get_response(prompt, temperature=1.0):
  completions = openai.Completion.create(
      engine=COMPLETION_MODEL,
      prompt=prompt,
      max_tokens=1024,
      n=1,
      stop=None,
      temperature=temperature
  )
  # JSON choices text
  print(completions)
  message = completions.choices[0].text
  return message

这里我们输出一下

python 复制代码
print(get_response(prompt))

此时,输出结果为:

python 复制代码
亲,您的订单号2021AEDG已经发货在路上了,我们会尽最大努力确保按时为您配送,预计3个工作日之内到达,很抱歉由于天气的原因使物流受到影响,让您等得有些久了。感谢您对我们产品的支持。

如果我们对这个客服说的话不满意,我们再生成一次。

python 复制代码
亲爱的客户,

您好!感谢您购买我们的商品,您的订单2021AEDG已发出,目前正在路上,预计在3天之内会送达,但因为天气的原因,物流时间比原来长了一些。请您耐心等待,祝您愉快!
抱歉给您带来不便,感谢您的耐心等待,客官放心,我们一定会尽力满足您的需求!

三、情感分析

接下来我们学习如何使用transformers库对我们的语句进行情感分析。transformers我们之前的文章就有涉及到它的优点以及使用,有需要大家也可以去看看。

该命令安装了transformers库,用于在自然语言处理中使用预训练模型。

python 复制代码
!pip install transformers  #来自抱抱脸

这一行从transformers库导入了pipeline模块。pipeline模块使您能够轻松使用预训练模型执行各种自然语言处理任务。

python 复制代码
from transformers import pipeline # pipeline 派发模块

这一行创建了一个情感分析的pipeline,使用了一个预训练的情感分析模型。默认使用的模型可能是一个通用情感分析模型。

python 复制代码
classifer = pipeline('sentiment-analysis') # 情感分析

到这里我们就可以对语句进行情感分析了。现在我们分析英文文本"i love you"的情感,并打印结果

python 复制代码
result = classifer('i love you')
result

结果输出为:[{'label': 'POSITIVE', 'score': 0.9998656511306763}]

在这里score 表示模型对某个文本情感的置信度或概率分数

模型预测为:积极情感

python 复制代码
result = classifer('thank you')
result

输出:[{'label': 'POSITIVE', 'score': 0.9998352527618408}]

python 复制代码
result = classifer('shut up')
result

输出:[{'label': 'NEGATIVE', 'score': 0.9992936849594116}]

我们再操作两次,能看出我们的结果置信度还是比较高的。

python 复制代码
result = classifer('遥遥领先')
result

输出:[{'label': 'NEGATIVE', 'score': 0.8616330027580261}]

但是当我们输入'遥遥领先'这个语句时,我们就可以发现问题了,为什么遥遥领先这样一个正面词汇会反映为负面呢?

这个时候我们聪明的小伙伴一定反应过来了,因为遥遥领先是中文啊,我们导入的数据库是以英文为底层基础的。

这个要怎么解决呢?我们只要导入一个中文模型不就解决了嘛

python 复制代码
# 中文模型 大众点评的数据训练出来的
classifer = pipeline('sentiment-analysis',
  model="uer/roberta-base-finetuned-dianping-chinese")
python 复制代码
result = classifer('遥遥领先')
result

这次的结果就对啦:[{'label': 'positive (stars 4 and 5)', 'score': 0.941333532333374}]

四、图片分析

这里我们仍然使用transformers模型。

python 复制代码
!pip install transformers

查看 Transformers Pipelines 支持的任务,SUPPORTED_TASKS 是一个包含了transformers库中支持的不同任务的字典。每个任务都对应一个键值对。

python 复制代码
from transformers.pipelines import SUPPORTED_TASKS
SUPPORTED_TASKS

我们打印一下它支持的任务

python 复制代码
print(SUPPORTED_TASKS.items()) 

这一段代码遍历了支持任务的字典,打印出每个任务的键。

python 复制代码
for k, v in SUPPORTED_TASKS.items():
print(k)

这一段代码使用了 transformers.pipelines 模块,同时使用了 requests 库下载图像并使用 PIL 库打开图像。这里通过 requests.get 获取图像数据,Image.open 打开图像。

总体而言,这个代码片段展示了如何使用transformers库中的pipelines模块来执行自然语言处理任务,以及如何使用其他库进行图像处理。

python 复制代码
  from transformers.pipelines import pipeline
  import requests #python的http 请求库
  from PIL import Image # PIL python 图片的专业库

url = "https://unsplash.com/photos/oj0zeY2Ltk4/download?ixid=MnwxMjA3fDB8MXxzZWFyY2h8MTR8fHBpY25pY3xlbnwwfHx8fDE2Nzc0OTE1NDk&force=true&w=640"
# requests.get python 同步语言
img = Image.open(requests.get(url, stream=True).raw)
img

于是我们到这里就能够看见我们的图片了。

但是我们只是将图片抓取出来,还没来得及对图片做任何操作。

接下来我们的操作才是重点。

该段代码我们使用了预训练的图像物体检测模型,检测图像中的帽子 ,太阳镜 ,书本,并返回预测结果,包括每个检测到的对象的边界框、标签和置信度分数

python 复制代码
predictions = detector(
    img,
    # 候选对象
    candidate_labels=["hat","sunglasses","book"]
)
predictions

这一部分使用了PIL库的ImageDraw模块,根据模型的预测结果在图像上绘制边界框和标签,并将置信度分数显示在图像上。

python 复制代码
from PIL import ImageDraw

draw = ImageDraw.Draw(img)

for prediction in predictions:
    box = prediction["box"]
    label = prediction["label"]
    score = prediction["score"]
    xmin, ymin, xmax, ymax = box.values()  # 解构
    draw.rectangle((xmin, ymin, xmax, ymax), outline="red", width=1)
    draw.text((xmin, ymin), f"{label}: {round(score, 2)}", fill="red")
img

那我们想要的结果就出来了,图中将我们想要扫描到的结果帽子 ,太阳镜 ,书本 全部以方形圈出,并且按照我们想要的效果将位置也标明了。

总体而言,这段代码使用了transformers库的pipelines模块进行图像物体检测,然后使用PIL库在图像上绘制了检测结果。

结语

那么今天的分享就结束啦,点赞收藏不迷路,咱们下期再见ヾ( ̄▽ ̄)ByeBye~

相关推荐
jia V iuww5206 分钟前
数据分析
人工智能·数据挖掘·数据分析
Flying_Fish_roe19 分钟前
Spring Boot-RESTful API相关问题
spring boot·python·restful
AI第一基地1 小时前
推荐系统-电商直播 多目标排序算法探秘
人工智能·深度学习·排序算法·transformer·知识图谱·word2vec
叫我:松哥1 小时前
基于机器学习的癌症数据分析与预测系统实现,有三种算法,bootstrap前端+flask
前端·python·随机森林·机器学习·数据分析·flask·bootstrap
我是瓦力1 小时前
球形包围框-Bounding Sphere-原理-代码实现
人工智能·python·深度学习·计算机视觉·3d
开MINI的工科男1 小时前
【笔记】自动驾驶预测与决策规划_Part1_自动驾驶决策规划简介
人工智能·笔记·自动驾驶
网络研究院1 小时前
企业急于采用人工智能,忽视了安全强化
网络·人工智能·安全·工具·风险·企业
jndingxin1 小时前
OpenCV特征检测(3)计算图像中每个像素处的特征值和特征向量函数cornerEigenValsAndVecs()的使用
人工智能·opencv·计算机视觉
byxdaz1 小时前
基于OpenCV的YOLOv5图片检测
人工智能·opencv·yolo
jndingxin1 小时前
OpenCV特征检测(4)检测图像中的角点函数cornerHarris()的使用
人工智能·opencv·计算机视觉