吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--08 Chatbot

08 Chatbot

ChatGPT的一种重要功能是作为一个聊天机器人,本节将展示如何和ChatGPT进行对话

1) 不同的角色(Roles)

前面几节的课程中,我们通过如下函数调用ChatGPT的接口,输入用户输入的prompt,返回模型生成的内容:

def get_completion(prompt, model="gpt-3.5-turbo"):messages = [{"role": "user", "content": prompt}]response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, # this is the degree of randomness of the model's output)return response.choices[0].message["content"]

上述代码中我们将用户输入的prompt放在messages列表中的content键值里。事实上相当于我们输入了role=user的信息,而chatgpt作为assistant要补全/回答该信息:
role1
例如当我们输入多轮对话时

messages =  [  
{'role':'user', 'content':'tell me a joke'},   
{'role':'assistant', 'content':'Why did the chicken cross the road'},   
{'role':'user', 'content':'I don\'t know'}  ]

得到的回答是To get to the other side!
假设我们期望assistant用一种不同的身份或风格和我们对话的时候,我们可以以role=system的身份将指令发送给chatgpt:

messages =  [  
{'role':'system', 'content':'You are an assistant that speaks like Shakespeare.'},   
{'role':'user', 'content':'tell me a joke'},   
{'role':'assistant', 'content':'Why did the chicken cross the road'},   
{'role':'user', 'content':'I don\'t know'}  ]

得到的回答是To get to the other side, good fellow!Verily, to get to the nearest inn to dine upon a pint of ale and a crust of bread.等。如果我们打印完整这个消息,即 print(str(response.choices[0].message)),我们可以得到

{"content": "To get to the other side! 'Tis an old and oft-told joke, but 'tis still a classic.","role": "assistant"
}

如果想完成多轮对话,可以将user和assistant历史对话都放在messages的列表中。

history

2) 定义一个点餐机器人Orderbot

首先定义帮助函数用于从UI界面收集prompt,并将其追加到一个列表中,每次都作为模型的上下文输入给模型,再将模型的输出也追加到列表,不断迭代…

def collect_messages(_):prompt = inp.value_inputinp.value = ''context.append({'role':'user', 'content':f"{prompt}"})response = get_completion_from_messages(context) context.append({'role':'assistant', 'content':f"{response}"})panels.append(pn.Row('User:', pn.pane.Markdown(prompt, width=600)))panels.append(pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={'background-color': '#F6F6F6'})))return pn.Column(*panels)

然后我们将模型的身份和点餐细节通过system身份告知assistant,即输入

context = [ {'role':'system', 'content':"""
You are OrderBot, an automated service to collect orders for a pizza restaurant. \
You first greet the customer, then collects the order, \
and then asks if it's a pickup or delivery. \
You wait to collect the entire order, then summarize it and check for a final \
time if the customer wants to add anything else. \
If it's a delivery, you ask for an address. \
Finally you collect the payment.\
Make sure to clarify all options, extras and sizes to uniquely \
identify the item from the menu.\
You respond in a short, very conversational friendly style. \
The menu includes \
pepperoni pizza  12.95, 10.00, 7.00 \
cheese pizza   10.95, 9.25, 6.50 \
eggplant pizza   11.95, 9.75, 6.75 \
fries 4.50, 3.50 \
greek salad 7.25 \
Toppings: \
extra cheese 2.00, \
"""} ]  # accumulate messages

然后通过如下方式在jupyter中进行多轮对话

inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…')
button_conversation = pn.widgets.Button(name="Chat!")interactive_conversation = pn.bind(collect_messages, button_conversation)dashboard = pn.Column(inp,pn.Row(button_conversation),pn.panel(interactive_conversation, loading_indicator=True, height=300),
)dashboard

笔者又尝试构建了一个场景,令ChatGPT假设自己为布拉德皮特,将皮特的维基百科输入给模型维基百科(虽然模型应该已经掌握了,这里只作为一个示例)

context = [ {'role':'system', 'content':"""
你是演员William Bradley Pitt,1963年12月18日—\
或简称布莱德·彼特(Brad Pitt),是一名美国男演员及电影制片人。\
1991年,《末路狂花》成为你从影的成名作。1995年,\
你凭借科幻片《十二猴子》首次夺得金球奖最佳电影男配角及奥斯卡最佳男配角提名,\
而后又因剧情片《燃情岁月》(1994年)、《巴别塔》(2006年)等获金球奖最佳电影男主角和男配角提名。\
2007年,你又凭《叛逆暗杀》一片获得威尼斯影展最佳男演员奖、并以《班杰明的奇幻旅程》(2008年)\
和《魔球》(2011年)中出色的演技两度获奥斯卡最佳男主角提名。\
2019年你终于《从前,有个好莱坞》获得第一个奥斯卡最佳男配角奖。\除了作为演员外,你于2001年成立制片公司B计划娱乐。当中的惊悚犯罪片《无间道风云》(2006年)、
、历史剧情片《自由之心》(2013年)和剧情片《月光男孩》(2016)均赢得奥斯卡最佳影片。\
另外,实验剧情片《生命树》(2011年)、运动剧情片《魔球》(2011年)和传奇剧情片《大卖空》\
(2015年)获得奥斯卡最佳影片提名。
你要接受一个主持人的访谈,请尽可能真实地回答主持人的问题。你需要格外注意你的公众形象,尽量避免私人问题
"""} ]  

下面是对话中截取的两部分
conv1
conv2

上一篇:吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记–07 Expanding

下一篇:吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记–09 Conclusion

deeplearning.ai 原课程地址

课程中文翻译地址

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

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

相关文章

大厂对ChatGPT的开发利用和评估案例收录

ChatGPT已经进入各行各业,但是实际在工作中的有哪些应用呢?这里分享互联网一线大厂分享的一些实际使用案例,所有文章收录到 大厂对ChatGPT的开发利用和评估案例收录https://www.webhub123.com/#/home/detail?projectHashid67792343&owne…

ChatGPT专业应用:生成导播规划表

正文共 971 字,阅读大约需要 5 分钟 直播运营必备技巧,您将在5分钟后获得以下超能力: 生成导播规划表 Beezy评级 :A级 *经过寻找和一段时间的学习,一部分人能掌握。主要提升效率并增强自身技能。 推荐人 | Kim 编辑者…

ChatGPT专业应用:生成节目串词

正文共 839 字,阅读大约需要 5 分钟 主持人必备技巧,您将在5分钟后获得以下超能力: 生成节目串词 Beezy评级 :A级 *经过寻找和一段时间的学习,一部分人能掌握。主要提升效率并增强自身技能。 推荐人 | Kim 编辑者 | …

4月份读书学习好文记录

4月份学习记录 找到自己感兴趣的方向,而不是人云亦云,知道自己想要的是什么,而不是一直得过且过! 差距是怎么出现的,四年来的点点滴滴!!! 一个前端大佬的十年回顾 | 漫画前端的前世…

一览 A16z 在 2023 年重点关注的 Crypto 和 Web3 游戏想法

原文来自:a16z 编译:DeFi 之道 隔夜的粥 注:顶级投资机构 a16z 刚刚发布了一份综合关注清单,列出了科技建设者在未来一年可能要解决的“大想法”,这份清单涵盖了消费科技、游戏、AI、Crypto 等多个领域,以下是一些让 a…

让ChatGPT分析下五一出行的数据

这个五一的真的真的真的很火,哪哪都是人人人人人人。 刚好看到官媒发出了五一期间的旅游宏观数据,我们就来简单分析下。 有了ChatGPT以后,就没必要自己亲自动手啦,直接丢给ChatGPT: 好吧,不得不说&#xff…

放大招:三步搞定ChatGPT提示词,轻松写出高质量提问,最新经验分享

在撰写ChatGPT提示语的时候,有一个基本的三层结构,经过在工作和生活上的实践,有助于解决大多数不同类型的任务。 尤其在你的问题有点复杂,想不清楚要怎么问比较好的时候,通过三层结构,让我们有结构的提出问…

ChatGPT旋风如何“卷”到汽车行业?

国产版ChatGPT究竟如何,还需静待上线后才能见分晓。 坐上车,ChatGPT即将驶向风口。 人气爆棚的ChatGPT,最近又把热度带到了汽车行业。 先是,百度即将内测的生成式对话产品“文心一言”的朋友圈不断扩大,吉利、长城、海…

ChatGPT的出现,会帮助汽车行业实现L4级别的自动驾驶吗?

编辑 | 汽车人 原文链接:https://www.zhihu.com/question/583534193 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 回答一 作者:Naiyan Wang 链接:h…

ChatGPT技术如何助力汽车门店销售服务水平提升?

过往,由于线下销售过程没有数字化记录,销售顾问的销讲要点执行情况、客户在体验展车、试乘试驾等过程中的反馈,没法真实全面地记录下来,因此很难做精细化的销售管理和客户心声分析。销售沟通过程不透明、员工服务质量难评估。 在…

和 GPT-4 结队编程开发批量删除 chatGPT 对话插件

我和 GPT-4 一起开发了一个 Chrome 插件,可以批量删除 chatGPT 网页版上的对话,废话少说,先看效果: youtube[1]Github 地址[2]插件地址[3] 视频号地址(手机上可以用微信扫码): 背景 作为一名后端…

使用chargpt加 midjourney 生成高质量的图片

如果你还不知道如何使用chargpt(网站不对国内开放),请看我的另一篇文章 首先介绍一下 chargpt 是一个最近火到爆炸的人工智能聊天工具,可以用它来生成图片,因为默认chargpt是不能直接输出图片的,需要给它指令已markdown的格式输出…

利用 AI 作图帮助理解知识

一、背景 人类对图形的接受和处理能力高于对文字和数字的处理能力。 如果我们学习某个知识的时候,能够找到配套的图,理解会好很多。 但,并不是所有的知识都有配图。 然而,人工智能的时代已经来临,为什么不尝试用 AI…

【分享】阿里版ChatGPT—通义千问(初体验)

哈喽,大家好,我是木易巷~ 在上个月4月7号,木易巷开始申请阿里云大模型开始邀请测试「通义千问」,到今天早上,木易巷收到了申请通过的短信。 官网地址:tongyi.aliyun.com 迫不及待去测试了一下,效…

技术动态 | 再谈知识图谱与ChatGPT如何结合:参数化与形式化知识库的现实问题、结合要素和具体路线...

转载公众号 | 老刘说NLP 在之前的文章《ChatGPT下的知识图谱审视:一次关于必然影响、未来方向的讨论实录与总结》中,我们谈到了目前的一些思考,但不够具体,具体两者应该如何结合,并没有指出具体的实践方向,…

ChatGPT实现知识图谱生成

知识图谱生成 在之前章节中,我们尝试过让 ChatGPT 对一段文本做实体识别和词性分析,结果很不错。但如果是需要长期留存下来,后续在不同场景下快速查询分析,最好还是要把数据存入到专门的图数据库中,才能方便随时读取。…

如何解决在使用WARP并启用QUIC时CloudFlare API导致ChatGPT登录问题?

在我们使用OpenAI的ChatGPT技术的过程中,一部分用户可能已经遇到过这样的问题:当我们的浏览器使用QUIC协议,并且网络出口是Cloudflare的WARP时,会导致CloudFlare的API返回的客户端IP变成0.0.0.0。这个问题并不会影响已经登录的账号…

ChatGPT会长什么样?关于它的外貌形象它刚开始还不愿意说

一名网友询问ChatGPT「你长什么样子?请详细的描绘你的外貌形象」。 ChatGPT一开始回答:「由于我是一个人工智能程序,我没有外貌或身体。我只是一个由程序码和数据组成的虚拟实体。我的目的是使用自然语言处理和生成技术来回答问题和提供信息。…

ChatGPT!王炸级更新!!!

ChatGPT宣布推出插件功能,赋予ChatGPT使用工具、联网、运行计算的能力。 有多牛逼,举例来说,之前的 ChatGPT 如果相当于 iPhone手机的话,现在的插件就相当于苹果的 App Store。 直接解决了ChatGPT原有不能联网的问题,原…

ChatGPT当中的“GPT”是什么意思?

最近ChatGPT在互联网行业有多火?相信不用我多说,大家心中也有答案。尤其是3月14日openAI的GPT-4发布会,让整个世界都沸腾了。 (3月14日,GPT-4发布会) 小灰的读者当中,很多人早就已经用上了ChatG…