近日你被 ChatGPT 刷屏了吗?
聊天机器人ChatGPT 仅仅推出两个月,月活跃用户数量已超过一亿,面试成功谷歌三级程序员,可胜任18.3万美元工作,可谓是风头无两。比尔盖茨采访称:其重要性不亚于互联网的发明,将改变我们的世界。
旭日X3派是一款拥有着高算力,面向生态开发者的嵌入式AI开发板,它拥有强大的计算能力和高效的运行效率,可以用于机器人、无人驾驶、智能家居等领域。此外,它还搭载了Together Robotics Operating System,一个基于ROS2优化,可以更高效运用在机器人平台上的机器人系统。
同时,ChatGpt是一款由OpenAI开发的自然语言处理模型。它可以理解人类语言,自动生成文本、回答问题和完成其他任务。ChatGpt可以与其他技术联动,实现更加复杂的应用。
那么旭日X3派遇上ChatGpt会碰撞出什么火花呢?
接下来,我们将使用旭日X3派作为核心算力芯片来驱动OriginBot机器人平台,并在旭日X3派上运行ChatGPT。
询问OriginBot编程问题
1.解释OriginBot小车代码
2、解释运动学模型?
3、使用OpenCV在OriginBot小车上实现巡线功能
4、在ROS2环境中实现gmapping或者cartographer
5、总结对话
综上,我们发现ChatGPT有着记忆储存的功能,它区别于siri传统的一问一答,能根据聊天的上下文进行互动并归纳总结所有的问题,协助我们完成编程。并且ChatGPT在回复消息时是逐字的显示,很难感觉到是和机器人在对话,仿佛它只是个博学的朋友。
它在针对简单编程问题的处理上可谓是非常惊艳,在ROS相关的问题上,比我们人类更有耐心解答,有时会画出重点并扩展更多的相关知识帮助你去解决问题掌握技术。
自己用过后发现虽然好用,但是它给的答案和程序很难保证没有错误,还是要自己看一遍改一下,尤其在问自己也不会的东西的时候,很难发现它的纰漏,会有些心里没底不能放心用,但是用来写报告、给代码加注释之类效率很高。
旭日X3派接入ChatGPT
看完了网页版ChatGtp的强大,我还是感觉不过瘾,既然ChatGPT都能接入微信,那么它肯定也能和旭日X3派连接起来。
不妨我们直接询问ChatGPT,该如何使得旭日X3派和ChatGpt联系起来!
它给了我这样的一个答案。
1、部署基本环境
进入旭日x3派,此处使用的是OriginBot的v1.0.2的镜像 。进入后,执行以下命令
pip3 install openai
2、学习openai_api如何使用
此处继续问ChatGpt,应该如何部署。它直接给了我一段代码
import openai
# 将OpenAI访问令牌设置为环境变量
openai.api_key = "YOUR_API_KEY"
# 调用OpenAI GPT-3模型,生成回答
response = openai.Completion.create(
engine="text-davinci-002",
prompt="你好!",
max_tokens=1024, # 最大1024个标记
temperature=0.7,
n=1,
stop=None,
)
# 输出生成的回答
print(response.choices[0].text)
3、书写节点代码
继续让ChatGpt书写。果不其然,它直接给了我一段代码,并且给了一些注释。
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
import openai
class OpenAINode(Node):
def __init__(self):
super().__init__('openai_node')
self.publisher_ = self.create_publisher(String, 'openai_text', 10)
self.subscription = self.create_subscription(
String,
'user_input',
self.listener_callback,
10)
self.subscription # 防止被Python垃圾回收机制删除
def listener_callback(self, msg):
# 处理从ROS话题订阅到的输入
input_text = msg.data
# 调用OpenAI的GPT-3模型生成文本
openai.api_key = 'YOUR_API_KEY'
response = openai.Completion.create(
engine="davinci",
prompt=input_text,
max_tokens=60,
n=1,
stop=None,
temperature=0.7
)
# 将生成的文本发布到ROS话题
self.publisher_.publish(response.choices[0].text)
def main(args=None):
rclpy.init(args=args)
openai_node = OpenAINode()
rclpy.spin(openai_node)
openai_node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
看到这,直呼太强了!
4、部署到旭日X3派中
此处,即可按照古月老师的ROS2 21讲的方式来创建一个基于python的功能包。
5、跑起来
看到这,似乎就和我们想象的不一致了,在上一个问题,我问ChatGpt,如何学习ROS,它告诉了我如何学,再和网页一般输入继续,它回答了我数据结构...等。似乎和我们想的不一样呀。
没关系,接下来的我们自己来改。
再回到这一段代码
import openai
# 将OpenAI访问令牌设置为环境变量
openai.api_key = "YOUR_API_KEY"
# 调用OpenAI GPT-3模型,生成回答
response = openai.Completion.create(
engine="text-davinci-002",
prompt="你好!",
max_tokens=1024, # 最大1024个标记
temperature=0.7,
n=1,
stop=None,
)
# 输出生成的回答
print(response.choices[0].text)
可以看到,engine指的使用的模型,此处是”text-davinci-002“,prompt是指输入文本,max_tokens指的是最大输出文字。了解这些,我们就可以尽情发挥了。首先,打印出所有的模型,示例代码如下
import openai
# 将OpenAI访问令牌设置为环境变量
openai.api_key = "YOUR_API_KEY"
# 获取OpenAI最新的语言模型名称
models = openai.Model.list()
latest_model = models['data'][0].id
print("最新的OpenAI语言模型是:", latest_model)
print("\n")
printf("所有的模型如下:", models)
细想以下,不如直接去看目前最火的微信接入ChatGpt用的哪个?
再增加理解上下文能力,这不就是Transformer嘛,直接把当前和之前所有的问题和回答都当成输入就好了。
就这样,再ChatGPT和我们的努力下,生成了最终的代码:
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
import openai
class OpenAINode(Node):
def __init__(self):
super().__init__('openai_node')
self.publisher_ = self.create_publisher(String, 'chatgpt_node', 10)
self.subscription = self.create_subscription(
String,
'user_input',
self.listener_callback,
10)
self.history = ""
def listener_callback(self, msg):
# 处理从ROS话题订阅到的输入
input_text = msg.data
self.history += input_text
self.history += " "
# 调用OpenAI的GPT-3模型生成文本
openai.api_key = 'KEY'
#models = openai.Model.list()
#latest_model = models['data'][0].id
#print(models)
response = openai.Completion.create(
engine="text-davinci-003",
prompt=self.history+input_text,
max_tokens=1024,
n=1,
stop=None,
temperature=0.7
)
# 将生成的文本发布到ROS话题
msg = String()
msg.data = response.choices[0].text
print(msg.data)
self.history += msg.data
self.history += " "
def main(args=None):
rclpy.init(args=args)
chatgpt_node = OpenAINode()
rclpy.spin(chatgpt_node)
chatgpt_node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
效果如下:
注册ChatGPT
第一步:注册 Chat GPT 账号并完成验证
打开 https://chat.openai.com/auth/login 链接进行账号注册
通过邮箱注册并完成邮箱验证
完成这一步之后,下面就到了手机号验证的环节了。
这里需要尤其注意的是,因为 OpenAI 服务限制,国内手机号是没有办法通过验证的。
另外 Google Voice 等北美地区的虚拟号码也是不能用的,因为 OpenAI 会检测虚拟号码,他们也不允许虚拟号码注册。
这时候就要用到下一步的接码平台。
第二步:通过接码平台完成手机号验证
大家可以通过接码平台完成手机号的验证,推荐平台链接地址:sms-activate.org
在这里需要注册一个 sms-activate 平台的账号,用邮箱注册就可以了。
注册后通过邮箱完成验证。下一步是充值。
点击跳转后,根据下方图片提示完成充值(价格是波动的)
充值好了以后回到首页搜索「open」关键字就可以找到 OpenAI 验证码的临时号码购买链接。
然后,可以在激活区看到待使用的临时号码,将此号码复制到 OpenAI 的验证码接收区里面。
点击发送验证码,这样就可以在接码平台接收到验证码(有时候有一点慢需要耐心等待一下),将验证码填进去,这样就完成注册了
第三步:邮箱登录完成注册流程
直到上面一步整个注册流程就结束了
注册完后,我们去 ChatGPT 网站登陆:
https://chat.openai.com/auth/login
快去体验ChatGPT吧!别忘了给我们点个赞哦~
评论(1)
您还未登录,请登录后发表或查看评论