动动嘴就能喝上咖啡,ChatGPT做到了

当ChatGPT接管咖啡吧后,会发生什么呢?让我们来看看吧!

众所周知,打工人不能失去咖啡。然而,不论是点外卖还是自己做,都需要耗费不少的时间。如果,只要我说一句:

“我要喝咖啡!”

cfc58b1328aa822e04e64a69789fb5b0.gif

几分钟后就能有一杯咖啡送到我面前,那该是多么美好的事情啊。这样的事情,也许只在梦里有吧。

f150b4c2379eec9f1ce138beb061987e.png

等等,最近火热的ChatGPT不是号称会引领第四次科技革命吗?那能不能通过使用ChatGPT让我们美梦成真呢?

话不多说,直接请出ChatGPT。

d831c0e356e3882efa0076b3ec9461eb.png

为了让ChatGPT能够接管我们的咖啡机和机器人,我们在Prompt中对他进行了角色的设置:

你是一个出色的机器人任务翻译员。根据指令,你可以将其拆分为一系列机器人动作,并生成可直接执行的 Python 程序

outside_default.png

不愧是ChatGPT

我们先让ChatGPT从简单的事情做起,简单任务完成不了怎么完成复杂任务呢?

首先使用了以下指令:

“送餐机器人前往咖啡机”

“送餐机器人去到3号桌”

实验结果十分振奋人心,在测试中它没有出现生成错误程序的情况。

下面是针对“送餐机器人前往咖啡机”任务所生成的程序和执行效果:

import requests
import time
dispatch_api = http://localhost:5000/dispatch
# Dispatch the delivery robot to the table
print("Dispatching the delivery robot to table 3...")
response = requests.get(dispatch_api, params={"target_name": "咖啡机"})
time.sleep(1)  # Wait for 1 second for the robot to complete the action

8ff698223749aa700346355166d28186.gif

▲送餐机器人前往咖啡机

不愧是ChatGPT,能力就是强。

接下来只要把简单的程序组合成复杂的程序,不就可以完成更复杂的任务了吗?这对ChatGPT来说,想必也是小事一桩吧。

cfe7e48994231e39b3081ef5015a700e.jpeg

outside_default.png

巧妇难为无米之炊

有了前面成功的经历,我变得大胆,想要一步到位,所以直接下发了一个复杂任务:制作并递送咖啡。

结果,ChatGPT生成的程序根本不能完成任务。

11ac35152d6558da75b2fad8f74ab1cf.png

下面是针对“制作并递送咖啡”所生成的程序和执行效果:

import requests
import time
make_coffee_api = "http://localhost:5000/make_coffee"
get_cup_api = "http://localhost:5000/get_cup"
put_cup_api = "http://localhost:5000/put_cup"
open_hatch_api = "http://localhost:5000/open_hatch"
close_hatch_api = "http://localhost:5000/close_hatch"
dispatch_api = "http://localhost:5000/dispatch"
# Define the target location for the delivery robot
table_3 = "3号桌"# Move the delivery robot to the table 3
print("Moving the delivery robot to table 3...")
response = requests.get(move_robot_api, params={"target_name": table_3})
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Make a cup of American coffee
print("Making a cup of American coffee...")
response = requests.get(make_coffee_api, params={"coffee_type": "USA"})
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Get a cup from the coffee machine
print("Getting a cup from the coffee machine...")
response = requests.get(get_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Open the delivery compartment door
print("Opening the delivery compartment door...")
response = requests.get(open_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Put the cup into the delivery compartment
print("Putting the cup into the delivery compartment...")
response = requests.get(put_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Close the delivery compartment door
print("Closing the delivery compartment door...")
response = requests.get(close_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action

b1e8d14c29497db7dae7cf3036ebed4c.gif

▲运行错误程序后,机器人没有带咖啡过来

可以看到,机器人确实走到了我旁边,可是里面却空空如也。回头一看,咖啡还在机械臂手里呢!

到底是哪里出了问题呢?

仔细分析它给出的代码,如果送餐机器人一开始就已经拿到了咖啡,那么,上面的程序不也可以完成任务吗?

想到这里,我意识到我需要告诉ChatGPT更多的信息,不能只是简单地告诉他任务内容,却不提供完成任务所必须的信息。巧妇都难为无米之炊,咱也不能为难ChatGPT呀。

紧接着,我在prompt中加入了机器人的状态和环境的信息。结果,正确!

下面是针对“制作并递送咖啡”所生成的程序(执行效果见最后):

import requests
import time
make_coffee_api = "http://localhost:5000/make_coffee"
get_cup_api = "http://localhost:5000/get_cup"
put_cup_api = "http://localhost:5000/put_cup"
open_hatch_api = "http://localhost:5000/open_hatch"
close_hatch_api = "http://localhost:5000/close_hatch"
dispatch_api = "http://localhost:5000/dispatch"
# First, dispatch the delivery robot to the coffee machineprint("Dispatching the delivery robot to the coffee machine...")response = requests.get(dispatch_api, params={"target_name": "咖啡机"})time.sleep(1)  # Wait for 1 second for the robot to complete the action# # Then, make a cup of coffeeprint("Making a cup of coffee...")response = requests.get(make_coffee_api, params={"coffee_type": "USA"})time.sleep(1)  # Wait for 1 second for the robot to complete the action# Then, open the #delivery compartment door
print("Opening the delivery compartment door...")
response = requests.get(open_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Next, use the robotic arm at the coffee machine to get the cup filled with coffee
print("Getting the cup filled with coffee...")
response = requests.get(get_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Next, put the cup inside the compartment using the robotic arm at the coffee machine
print("Putting the cup inside the delivery robot's compartment...")
response = requests.get(put_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Finally, close the delivery compartment door
print("Closing the delivery compartment door...")
response = requests.get(close_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Dispatch the delivery robot to the table
print("Dispatching the delivery robot to table 3...")
response = requests.get(dispatch_api, params={"target_name": "3号桌"})
time.sleep(1)  # Wait for 1 second for the robot to complete the action

outside_default.png

美梦成真

既然可以生成正确的程序,那么就来实际体验下吧。但当我随口说出喝咖啡的要求时,得到的回答让人大跌眼镜:

输入你好,点两杯美式咖啡

输出:抱歉,我是一个文本AI助手,无法为您提供实际的咖啡服务。但是,如果您需要我为您生成相应的机器人动作序列,我可以帮您完成。请问您需要这样的帮助吗?

输入:我渴了,来杯咖啡吧?

输出:抱歉,我是一个文本AI助手,无法为您提供实际的咖啡服务。但是,如果您需要我为您生成相应的机器人动作序列,我可以帮您完成。请问您需要这样的帮助吗?

293fe73d90cbb9110b912c6677aba598.png

“我是一个文本AI助手”,莫非是忘记了上下文?

但输入之前的指令,依旧可以输出正确的程序,而且它还在强调它可以帮我写程序,这与我赋予它的角色是一致的。

也许,问题不在ChatGPT,而在我?

是因为我给它的设定太过死板,导致它失去了自然交互的能力?也许不应该设定为“机器人程序翻译员”,应该设置一个更有人情味的角色。随后,我们将其扮演的角色更新为一个咖啡吧的服务员。

更换角色后的结果如下(相比于前面的任务,增加了互动的功能):

输入:我渴了,来杯咖啡吧

输出:当然可以!请问您想要一杯美式咖啡还是意式咖啡呢?

输入:来杯美式咖啡

输出:好的,一杯美式咖啡。请您稍等一下,我马上为您准备。

import requests
import time
make_coffee_api = "http://localhost:5000/make_coffee"
get_cup_api = "http://localhost:5000/get_cup"
put_cup_api = "http://localhost:5000/put_cup"
open_hatch_api = "http://localhost:5000/open_hatch"
close_hatch_api = "http://localhost:5000/close_hatch"
dispatch_api = "http://localhost:5000/dispatch"
# First, dispatch the delivery robot to the coffee machineprint("Dispatching the delivery robot to the coffee machine...")response = requests.get(dispatch_api, params={"target_name": "咖啡机"})time.sleep(1)  # Wait for 1 second for the robot to complete the action# # Then, make a cup of coffeeprint("Making a cup of coffee...")response = requests.get(make_coffee_api, params={"coffee_type": "USA"})time.sleep(1)  # Wait for 1 second for the robot to complete the action# Then, open the #delivery compartment door
print("Opening the delivery compartment door...")
response = requests.get(open_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Next, use the robotic arm at the coffee machine to get the cup filled with coffee
print("Getting the cup filled with coffee...")
response = requests.get(get_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Next, put the cup inside the compartment using the robotic arm at the coffee machine
print("Putting the cup inside the delivery robot's compartment...")
response = requests.get(put_cup_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Finally, close the delivery compartment door
print("Closing the delivery compartment door...")
response = requests.get(close_hatch_api)
time.sleep(1)  # Wait for 1 second for the robot to complete the action# Dispatch the delivery robot to the table
print("Dispatching the delivery robot to table 3...")
response = requests.get(dispatch_api, params={"target_name": "3号桌"})
time.sleep(1)  # Wait for 1 second for the robot to complete the action

下面是程序运行后的效果:

5e0e42fb0107eae11be8f8e31afaf6f7.gif

▲制作咖啡

62b384586b9094ab447fbc498bbfc485.gif

▲取到咖啡

655642a9c6c947a59837dab3a4561716.gif

▲递送咖啡

可以看出,改进设定的角色后,ChatGPT具有了交互能力,可以与人进行友好的交谈,也可以生成代码,执行任务。

现在,只要我说一句:来杯咖啡。几分钟后就真的能有一杯咖啡送到我面前,实在是太棒啦!

fef8871dbfaf8b2a9a2f96decbe367a9.png

最后总结一下在这个过程中暴露出的一些问题和收获:

56346ae7a74c90a70b0b9521b2e2064c.png

1:不恰当的prompt会削弱ChatGPT本身的理解能力

2:角色设置中需要包含所有需要完成的任务和要求,如果任务描述不充分,就会导致ChatGPT表现不佳,甚至丧失原本的能力。

3:prompt中加入机器人状态信息,有助于ChatGPT生成正确的序列

同时也发现了一些亟待解决的事情:

比如ChatGPT生成程序的正确性验证是一个很有挑战性的问题,目前采取的是通过人去核验,但真实场景下用户是不具备判断能力的。因此需要一套自动化的系统来确保程序的正确性。还有与环境的交互问题,需要让ChatGPT自主感知设备状态以及环境信息,这样才能更好地根据不同情况生成不同的程序。以及当对话轮次变多后,prompt的膨胀问题等等。这些都是之后需要研究的问题。

END

致谢

感谢上海市级科技重大专项“人工智能前沿基础理论与关键技术—自主智能无人系统”的资助。

参考文献:

[1]. ChatGPT Empowered Long-Step Robot Control in Various Environments: A Case Application

[2]. ChatGPT for Robotics: Design Principles and Model Abilities

复旦大学软件工程实验室

作者丨郝竞渊

排版丨刘俊伟

审核丨董震

759d7e5332c73d1432a3b0edfd0fd157.jpeg

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

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

相关文章

[ChatGPT]Open AI开放ChatGPT模型API,允许第三方开发人员将其集成到自己的应用和服务中

ChatGPT大事件 3月2日,Open AI在官方博客宣布,开放了ChatGPT和Whisper的模型API,用户可将其集成在应用程序等产品中。 注意, Open AI开放的是ChatGPT模型的API。也就是说,企业、个人开发者都能使用目前最强大的模型之…

用ChatGPT创建一个REST API

ChatGPT是OpenAI公司开发的大型语言模型。在本文中,主要探讨如何使用ChatGPT在C#中创建REST API。 一、简介 ChatGPT是由人工智能研究中心OpenAI创建的尖端自然语言处理模型,OpenAI公司是由埃隆马斯克、萨姆奥特曼和格雷格布罗克曼共同创办的。该模型于…

Meta没做成的事OpenAI要干?ChatGPT之父推出加密项目Worldcoin

大模型焦虑还未停歇,鬼才创始人瞄准了加密领域。 继ChatPT之后,OpenAI的首席执行官Sam Altman推出的加密货币项目Worldcoin近日被透露融资近一亿美金,彻底搅翻了科技界与Web3的平静。 据官网描述,Worldcoin由Sam和Max Novendstern…

ChatGPT助力校招----面试问题分享(六)

1 ChatGPT每日一题:对比串口、IIC、SPI通信协议 问题:对比串口、IIC、SPI通信协议 ChatGPT:串口、I2C和SPI都是数字系统中常用的通信协议。它们各自有着不同的优缺点,下面是它们的比较: 串口通信 串口通信是一种最…

ChatGPT助力码上行动:零基础学会Python编程

摘要: Python编程作为一种简洁、易学且功能强大的编程语言,正逐渐成为初学者进入编程领域的首选。然而,对于零基础的学习者来说,学习编程仍然存在一定的挑战。本文将介绍如何利用ChatGPT的强大语言生成能力,助力零基础…

ChatGPT助力DevOps的优势与局限

一、前言 DevOps 是一种方法论,旨在提高软件开发和 IT 运营团队的协作和效率。DevOps 涉及各种任务和流程的自动化,例如规划、编码、测试、部署、监控和故障排除。然而,其中一些任务和流程仍然有大量任务需要人工手动处理,而这会…

ChatGPT助力校招----面试问题分享(三)

1 ChatGPT每日一题:MOS管与三极管的区别 问题:MOS管和三极管的区别有哪些 ChatGPT:MOS管(金属氧化物半导体场效应管)和三极管(双极性晶体管)是两种不同的半导体器件,它们在工作原理、结构和性能方面存在一些重要的区别。以下是它…

ChatGPT助力校招----面试问题分享(四)

1 ChatGPT每日一题:电阻如何选型 问题:电阻如何选型 ChatGPT:电阻的选型通常需要考虑以下几个方面: 额定功率:电阻的额定功率是指电阻能够承受的最大功率。在选型时,需要根据电路中所需要的功率确定所选…

ChatGPT助力校招----面试问题分享(七)

1 ChatGPT每日一题:SPI通信协议的四种工作模式 问题:SPI通信协议的四种工作模式 ChatGPT:SPI(Serial Peripheral Interface)总线是一种同步串行通信协议,它在多种数字系统中得到了广泛应用。SPI总线有四种…

小智AI:ChatGPT助力企业财务数字化转型,AI成为企业新引擎

随着人工智能技术的不断发展,智能化已经成为财税领域的大势所趋。企业业财融合数字化已经成为许多企业必须面对的现实问题。在这个背景下,ChatGPT作为一种智能化的工具,为企业带来了无限的可能性。 ChatGPT是一种基于GPT-3.5技术的大型语言模…

ChatGPT助力-根据数据内容将数据转换成树级结构

兄弟们,谁懂啊。半夜23:00,学长发了一个之前提交的党员积分的项目,客户要求合并树级结构,让数据展示更清晰;请看大图: 要求把学这类似的一栏合并然后将其居中,但是突然发现居然微信小程序并没有…

chatGPT助力快速做一份PPT

文章目录 chatGPT生成markdown转PPT模板、布局修改导出PPT 如何快速做出一份PPT啦,本文推荐一种快速做PPT的方法,适用于对内容、格式和排版要求不高的PPT使用场合。 chatGPT生成 举例:chatGPT对话:请你帮我写一份关于三部优秀的中…

chatgpt助力建站

在chatgpt辅助下,开发了几款便捷的好用在线工具。功能持续更新中。在让gpt输出代码的同时要不断调试,它可能给你错误的代码。 good1use.com

chatgpt赋能Python-pycharm关联py文件

PyCharm关联Python文件的使用指南 PyCharm作为一款强大的Python开发工具,其集成的许多功能可以大大提高开发效率。其中之一就是PyCharm可以自动关联Python文件,让用户更加方便的进行Python程序的编写。本文将详细介绍PyCharm关联Python文件的使用方法及…

chatgpt赋能Python-pycharm同一个程序开两个

PyCharm同一个程序开两个:提升编程效率的好帮手 作为一名有10年Python编程经验的工程师,我经常会使用PyCharm作为我的主要编程工具。而在日常的编程工作中,有时会遇到这样一个情况:需要在同一个程序中同时进行两个不同的操作。这…

chatgpt赋能Python-pycharm如何加库

Pycharm如何加库:A Complete Guide Pycharm是一款强大的Python集成开发环境(IDE),它提供了许多有用的工具和功能来简化Python开发过程。尽管Pycharm已经内置了许多功能和工具,但我们在开发过程中仍然需要使用第三方库来提高效率。在本文中&a…

chatgpt赋能Python-pycharm和python关联

PyCharm与Python:超越代码编写的完美结合 如果你是一位Python开发者,那么你肯定需要一个好用的开发环境,以便快速且高效地完成代码任务。而PyCharm就是这样一个优秀的Python开发IDE。它专注于提高Python开发速度和质量,让Python编…

chatgpt赋能python:重新配置PyCharm,让你的Python编程更加高效

重新配置PyCharm,让你的Python编程更加高效 PyCharm是一个流行的Python集成开发环境,被广泛用于Python编程。但是,有时候我们需要重新配置PyCharm以适应特定的工作需求或优化其性能,这篇文章将讨论如何重新配置PyCharm&#xff0…

Pycharm中如何安装 OpenAI ——ChatGPT的python包?

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 Pycharm中如何安装 OpenAI ——ChatGPT的python包? 摘要背景安装1、安装前准备2、安装前提条件3、依赖库 最佳安装过程1、检查 VC2、看哪些依赖库未安装3、将未装模块写成 test02.b…

【利用pycharm快速安装聊天机器人】

利用pycharm快速安装“XXX”聊天机器人 0.声明1.说明2.安装步骤3. 总结4.更新步骤备注: 0.声明 1.说明 最近由于聊天机器人火遍各地,因此想借助其来写一些文档。但是目前网站安装教程繁多,有的相对比较繁琐。因为无法在国内通过官网使用; 图…