Openai+Coursera: ChatGPT Prompt Engineering(二)

这是我写的ChatGPT Prompt Engineerin的第二篇博客,如何还没看过第一篇的请先看我写的第一篇博客:

ChatGPT Prompt Engineerin(一)

Summarizing(总结/摘要)


今天我们的重点关注按特定主题来总结文本。

设置参数

import openai
openai.api_key ='YOUR_OPENAI_API_KEY'
def get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}]response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, )return response.choices[0].message["content"]

文本总结

下面我们来定义一段文本,该文本来自于一个电商网站的客户评论,我们要让ChatGPT来对这段文本进行总结,由于原文本内容是英文的,我将它的中文翻译文也罗列出来,这样便于大家理解原文的意思:

prod_review = """
Got this panda plush toy for my daughter's birthday, \
who loves it and takes it everywhere. It's soft and \ 
super cute, and its face has a friendly look. It's \ 
a bit small for what I paid though. I think there \ 
might be other options that are bigger for the \ 
same price. It arrived a day earlier than expected, \ 
so I got to play with it myself before I gave it \ 
to her.
"""prod_review1="""
这个熊猫毛绒玩具是我女儿生日的礼物,她很喜欢,走到哪里都带着它。
它很柔软,超级可爱,它的脸看起来很友好。不过相对于我付的钱来说有点小了。
我想同样的价格可能还有其他更大的选择。它比预期提前了一天到达,所以我在给她之前自己玩了一下。
"""

指定用一个单词/句子/字符的限制来总结文本

prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site. Summarize the review below, delimited by triple 
backticks, in at most 30 words. Review: ```{prod_review}```
"""response = get_completion(prompt)
print(response)

这里我们要ChatGPT使用不超过30个词语来总结前面给的文档,ChatGPT用非常简短的一句话对原文做出了总结。

将总结的重点放在配送和交付方面

prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site to give feedback to the \
Shipping deparmtment. Summarize the review below, delimited by triple 
backticks, in at most 30 words, and focusing on any aspects \
that mention shipping and delivery of the product. Review: ```{prod_review}```
"""response = get_completion(prompt)
print(response)

之前的总结我们只是要求了一个字数限制(最多30个词语),没有其他别的要求了,所以ChatGPT在总结是把重点放在了玩具质量和价格方面,配送方面只是简略的提了一下: Arrived early 。现在我们要求ChatGPT将总结的重点放在配送和交付方面,从结果上看ChatGPT的总结非常符合我们的要求。

以价格和价值为重点进行总结

prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site to give feedback to the \
pricing deparmtment, responsible for determining the \
price of the product.  Summarize the review below, delimited by triple 
backticks, in at most 30 words, and focusing on any aspects \
that are relevant to the price and perceived value. Review: ```{prod_review}```
"""response = get_completion(prompt)
print(response)

 从ChatGPT答复的内容上来看也符合我们的要求。

尝试用“内容抽取”来替代“总结”

除了总结以外我们还可以让ChatGPT从文章“抽取”相关内容,可以用这种方式来替代“总结”。

prompt = f"""
Your task is to extract relevant information from \ 
a product review from an ecommerce site to give \
feedback to the Shipping department. From the review below, delimited by triple quotes \
extract the information relevant to shipping and \ 
delivery. Limit to 30 words. Review: ```{prod_review}```
"""response = get_completion(prompt)
print(response)

 总结多个产品评论

接下来我们要让ChatGPT总结多个产品的评论:

review_1 = prod_review # review for a standing lamp
review_2 = """
Needed a nice lamp for my bedroom, and this one \
had additional storage and not too high of a price \
point. Got it fast - arrived in 2 days. The string \
to the lamp broke during the transit and the company \
happily sent over a new one. Came within a few days \
as well. It was easy to put together. Then I had a \
missing part, so I contacted their support and they \
very quickly got me the missing piece! Seems to me \
to be a great company that cares about their customers \
and products. 
"""# review for an electric toothbrush
review_3 = """
My dental hygienist recommended an electric toothbrush, \
which is why I got this. The battery life seems to be \
pretty impressive so far. After initial charging and \
leaving the charger plugged in for the first week to \
condition the battery, I've unplugged the charger and \
been using it for twice daily brushing for the last \
3 weeks all on the same charge. But the toothbrush head \
is too small. I’ve seen baby toothbrushes bigger than \
this one. I wish the head was bigger with different \
length bristles to get between teeth better because \
this one doesn’t.  Overall if you can get this one \
around the $50 mark, it's a good deal. The manufactuer's \
replacements heads are pretty expensive, but you can \
get generic ones that're more reasonably priced. This \
toothbrush makes me feel like I've been to the dentist \
every day. My teeth feel sparkly clean! 
"""# review for a blender
review_4 = """
So, they still had the 17 piece system on seasonal \
sale for around $49 in the month of November, about \
half off, but for some reason (call it price gouging) \
around the second week of December the prices all went \
up to about anywhere from between $70-$89 for the same \
system. And the 11 piece system went up around $10 or \
so in price also from the earlier sale price of $29. \
So it looks okay, but if you look at the base, the part \
where the blade locks into place doesn’t look as good \
as in previous editions from a few years ago, but I \
plan to be very gentle with it (example, I crush \
very hard items like beans, ice, rice, etc. in the \ 
blender first then pulverize them in the serving size \
I want in the blender then switch to the whipping \
blade for a finer flour, and use the cross cutting blade \
first when making smoothies, then use the flat blade \
if I need them finer/less pulpy). Special tip when making \
smoothies, finely cut and freeze the fruits and \
vegetables (if using spinach-lightly stew soften the \ 
spinach then freeze until ready for use-and if making \
sorbet, use a small to medium sized food processor) \ 
that you plan to use that way you can avoid adding so \
much ice if at all-when making your smoothie. \
After about a year, the motor was making a funny noise. \
I called customer service but the warranty expired \
already, so I had to buy another one. FYI: The overall \
quality has gone done in these types of products, so \
they are kind of counting on brand recognition and \
consumer loyalty to maintain sales. Got it in about \
two days.
"""reviews = [review_1, review_2, review_3, review_4]
for i in range(len(reviews)):prompt = f"""Your task is to generate a short summary of a product \ review from an ecommerce site. Summarize the review below, delimited by triple \backticks in at most 20 words. Review: ```{reviews[i]}```"""response = get_completion(prompt)print(i, response, "\n")

 当我们通过循环遍历的方式来调用ChatGPT的API时,我们会收到一个异常的报错信息:"Rate limit", 从这里我们可以发现OpenAI似乎对API调用做了频率上的限制,即每分钟不能超过3次的api调用,这里我们的文档数量是4篇,因此在第4次循环调用API时超过了次数限制因此抛出了异常错误信息。

解决Rate limit的方法

由于openai官方对api的调用有着严格的限制,对于免费用户每分钟调用API次数不能超过3次,大家可以参考官方对 Rate limits的官方说明:

 同事官方也给出了三种针对Rate limit 解决方案,经过我的验证其中的第二种可行,第一种方案可能是由于我参数设置不当导致没有成功。以下是第二种方案:需要安装一个为回退和重试提供函数装饰器的库 backoff。

# pip install backoff
import backoff  @backoff.on_exception(backoff.expo, openai.error.RateLimitError)
def get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}]response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, )return response.choices[0].message["content"]

在 给get_completion函数附加了一个回退和重试的装饰器backoff后,我们再循环调用get_completion函后就不再报错,只是需要等待一定的时候后才能得到所有的答案。

请帮我买杯咖啡

如果你觉得我的文章对你有用,请帮我买杯咖啡,这样会使我时刻保持写出优秀博文的欲望和动力,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30036.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言模型

Chinchilla:训练计算利用率最优的大语言模型 《Training Compute-Optimal Large Language Models》 论文地址:https://arxiv.org/pdf/2203.15556.pdf 相关博客 【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型 【自然语言…

natapp反向代理

在我们开发中总会遇到这种需求,需要让我们本地的地址能被外网访问;(比如微信公众号的开发,这边需要与微信服务器进行交互) 为了完成这个需求,我们就可以是用反向代理,这边主要用到一个内网穿透…

正向代理与反向代理

函数是一等公民 // 新建函数类型 type HandlerFunc func(http.ResponseWriter, *http.Request)// 新建函数方法 func (f HandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) {f(w, r) }// 主函数 func main() {// 实例化函数hf : HandlerFunc(HelloHandler)// 创…

代理和反向代理

代理是代理的是用户(eg:浏览器); 反向代理是代理的是服务器(Nginx); 如下图: 常用的代理工具:Fiddler、Whistle、Charles 常用切换代理的工具:SwitchyOme…

反向代理HAproxy

HAProxy 介绍和架构HAProxy 安装HAProxy 基础配置HAProxy 调度算法HAProxy 高级功能 1 Web 架构介绍 2 HAProxy 简介 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(…

正向代理、反向代理介绍

目录 一、定义 1、正向代理(forward proxy) 2、反向代理(Reverse proxy) 3、透明代理(transparent proxy) 二、生活中代理的例子 1、正向代理 2、反向代理 三、代理的作用 1、正向代理的作用 2、反向代理的作用 目前大家提到的代理技术无外乎三种:正向代理…

代理、正向代理与反向代理

一、代理 1.1 什么是代理 代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等…

如何下载一直播的回放视频

想下载一直播回放视频,然后就可以用播放器倍速观看了 (一)处理一下想要下载的视频 (二)使用ffmpeg将.m3u8格式文件转换成.mp4文件 (1)下载: 下载地址:windows版本 : http://ffmpe…

php对接腾讯云直播,聊天,im,云录制产生回放

首先先在腾讯云中开通这三项 IM中创建项目 云直播 解析推拉流地址: $domain $this->getConfig(anchor_push); //推流地址$domainpull $this->getConfig(anchor_pull); //拉流地址$streamName kangfuyuan.$res; //直播间ID(唯一的&am…

心法利器[84] | 最近面试小结

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

Visual Studio 2022 集成虚幻引擎功能

【CSDN 编者按】微软作为全球著名的游戏厂商,其在游戏制作与开发体验上也积极下功夫。在听取了游戏开发人员的反馈后,Visual Studio 2022 正式集成 Unreal Engine (UE、虚幻引擎) 作者 | David Li 责编 | 梦依丹 出品 | CSD…

苹果:付费才能用 iOS 开发者预览版,网友吐槽:找 Bug,还得先交 99 美元?

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 以后要尝鲜 iOS 开发者预览版,要先付费,才能测试? 苹果的更新说明 近日,苹果最新公布的一项政策引发了不少开发者的争议,其表示,从…

Android 系统 TP 事件处理流程

简单流程 首先注册 i2c 设备,添加 tp 驱动,然后在 tp 驱动上响应中断、获取用户操作的 数据,通过筛选等一系列操作将数据上报。 *中断、线程、工作队列生成 *放大缩小、xy 对调等算法 *get_event 函数使用 1. 系统调用 TP 驱动 TP 驱动的调…

Java网络编程之UDP和TCP套接字

一. 网络编程概述 我们知道在网络通信中, 数据的发送是从应用层开始, 一直封装到物理层然后进行发送的, 应用层要将数据交给传输层进行封装; 而接收方拿到数据后是从物理层到应用层进行分用, 传输层要将拿到的数据再分用给应用层进行使用, 网络编程实际操作中最关键的就是我们所…

工程师“魔改” AirPods Pro 接口,苹果“妥协”将成大势所趋?

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 近年来, USB-C 接口凭借其高效的数据传输、充电速度等优势,促使时下的许多手机品牌大规模使用,可谓实现了统一“半壁江山”的势头,甚至盖…

web开发中的通信协议

websocket def:websocket协议是基于tcp的,实现浏览器与服务器之间全双工通信的一种网络协议 websocket是一种持久协议,多应用在聊天,客服咨询等有实时报送需求的场景下。 早期没有websocket时,通过ajax短时轮询&#x…

GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记

GLM qq群服务器的本地化部署笔记 一. 概述1.1 整体结构1.2 目标1.3 需求1.4 流程说明 二. 部署流程2.1 使用GPT转发程序帮助文档2.1.1 使用git安装GLM2.1.2 不使用git安装GLM 2.2 使用Anaconda Navigator 虚拟运行GLM2.2.1 [https://www.anaconda.com/](https://www.anaconda.c…

chatglm-6b:本地手动下载,本地部署

文章目录 模型效果演示操作步骤步骤一步骤二步骤三 ChatGLM-6B是一个由清华大学和智谱AI联合研发的开源对话语言模型。它是一个支持中英双语问答的对话系统,并在中文方面进行了特别的优化。 该模型基于General Language Model (GLM)架构,具有62亿参数。借…

阿里组织变革:设立六大业务集团,成熟一个,上市一个;微软软件工程师最高年薪28.8万美元;iOS 16.4 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

乐视实行四天半工作制,网友:还招人吗,我有个朋友想去!

作者 | 苏宓、出品 | CSDN(ID:CSDNnews) 新春的第一个工作日,有一个别人家的公司登上了热搜,羡煞旁人,它就是乐视。 起因是因为#乐视开始实行每周四天半工作制#,所谓话少事大,在官宣…