我们都被 ChatGPT 给骗了?

引言:

  • 用过 ChatGPT 的人都知道,当你与 chatgpt 对话的时候,它是“逐字输出”的,就像真的有个人在跟你打字一样。
  • 其实,这种技术并没有那么神奇,这种技术叫做“实时文本生成”或“逐字输出”技术,官方成“自回归(autoregressive)”技术

揭秘:

实际上,ChatGPT 官网也是在获取到完整响应后进行逐字输出的。逐字输出功能仅用于向用户展示响应时的视觉效果。在请求 OpenAI API 时,你会收到一个包含完整响应的结果。使用逐字输出只是为了在显示过程中更有趣且类似于实时对话的交互效果。

  • 原理如下:

1、网站会话逐字展示效果的原理

在我们通过官网与chatgpt对话时,我们可以看到逐字输出(实时文本生成)的文字效果。但其实这种效果也是通过网站的前端代码处理的,其实后台返回的响应也是整体传回来的,这样做只是为了提高用户体验,让对话看起来更加自然和动态。

2、调用API会返回的是完整响应

我们实际上在调用API时返回的响应也是完整的。API会在后台把响应处理好,并在生成完整的响应后将其返回,所以不会逐字输出。

3、实现逐字展示的原理

如果要通过 python 对接 openai 实现这种效果,openai后台把响应整合好,你直接用python遍历这个响应让其逐字输出展示即可。(后面实践章节有代码示例)

4、模型的底层原理

无论通过官网对话还是调用API获得响应,后台给我们返回的结果都是完整的。但是,openai的后台,在生成这个响应结果时,确实逐字逐词构造出来的,官方称之为自回归(autoregressive)的方式。
简单解释下“自回归”方式的意思,大致就是模型首先接收一个输入(如问题或提示),然后逐步生成单词或字符序列。在生成每个新单词或字符时,模型会考虑到目前为止生成的所有单词或字符。通过这样的方式,模型就能够生成上下文相关且连贯的文本。

总结一下,无论通过网站还是调用API,ChatGPT生成的响应是完整返回的。展现出来的逐字响应效果,都是前端代码处理完成的。但ChatGPT生成这个响应之前,其底层逻辑确实是逐字生成的。

5、不同见解

有圈友提出了不同见解,认为 ChatGPT 的逐字输出是通过 stream 流式技术实现的。

即:通过用 websocket + async await + 接口参数中 设置stream=True 可以实现逐字输出效果,他的解答是,oepnai 会将整个结果分段流式响应,达到预期效果。

那么,你的见解是什么呢? 可以把你的想法打在评论区,大家讨论一下~

实践:

而要实现这种效果,最简单的办法就是可以根据调整 time.sleep() 参数来改变逐个字符输出之间的延迟时间来间断的显示响应结果。也可以结合 websocket 以及 Python async 异步等技术实现。

也可以看看这位小哥实现的 websocket 效果,很棒
chatgpt流式服务

看看 ChatGPT4 如何解答?

python 实现 chatgpt 逐字输出,大家可以运行看一下效果,为了方便起见,这里用 gpt3 模型,其他模型原理相同
1、确保将 OPENAI_API_KEY 替换为你自己的 OpenAI API 密钥,然后运行此代码。它将使用 GPT-3.5-turbo 引擎生成一则关于狗的笑话,并逐个字符显示响应。可以根据需要调整 time.sleep() 参数来改变字符输出之间的延迟时间。
2、需要注意的是,逐字输出仅作为模拟用途,实际上在调用API时返回的响应是完整的。在这个示例中,我们只是逐个字符地显示响应。

import openai
import time# Set up the OpenAI API key
openai.api_key = "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"# Set up the prompt
prompt = "Hello, how are you?"# Set up the parameters for the completion request
parameters = {"model": "text-davinci-003","prompt": prompt,"temperature": 0.5,"max_tokens": 1,"n": 1,"stop": None,
}# Send the completion request to the OpenAI API
response = openai.Completion.create(**parameters)
# # Loop to continue the conversation
while True:time.sleep(0.02)prompt += response.choices[0].textparameters["prompt"] = promptresponse = openai.Completion.create(**parameters)print(response.choices[0].text)# 另外一种实现
# response = openai.Completion.create(parameters)
# response_text = response.choices[0].text.strip()
# for char in response_text:
#     print(char, end="", flush=True)
#     time.sleep(0.1)


stream=True 的效果
在这里插入图片描述

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

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

相关文章

将小米SoundMove 无缝接入 ChatGPT

将小米SoundMove 无缝接入 ChatGPT 本教程内容参考 Github 地址(可选)部署查看小米 SoundMove 信息的环境(可选)查看小米 SoundMove 的信息以容器方式部署程序到小米万兆路由器实际效果有待改善点 本教程内容 1 是记录了将小米 SoundMove 接入 ChatGPT 的操作步骤。 2 是将小米…

《2023 ChatGPT for Robotics:Design Principles and Model Abilities》阅读笔记

1 Introduction 自然语言处理(NLP)的快速发展导致了大型语言模型(LLMs)的发展,如BERT[2]、GPT-3[3]和Codex[4],这些模型正在对广泛的应用程序进行革命。这些模型在文本生成、机器翻译和代码合成等各种任务中都取得了显著的效果。这个模型集合的最新成员是…

chatgpt赋能python:Python冒泡排序:理解流程图

Python冒泡排序:理解流程图 当涉及到排序算法时,Python中最流行的算法之一就是冒泡排序。它是一种简单而有效的排列方法,旨在让列表中的元素按升序或降序排列。在此文章中,我们将讨论冒泡排序的流程图,并重点介绍每个…

Itchat 微信聊天机器人

微信聊天机器人(Itchat) 不务正业,想起干点啥有意思的事,于是想起了用聊天机器人去调戏微信好友也许会有点意思吧,于是参照别人写的东西,自己也浅尝一下。基本原理还是很简单的,就是让机器人替你去聊天。 主要有以下…

利用微信API将你的微信变为聊天机器人

想想将个人微信变为一个机器人也是很好玩的,这个项目就教你如何把自己的微信变为一个聊天机器人,嗯~对的,和小冰差不多的感觉吧(哈哈哈~)。 最终效果图: 效果图 原理: 通过微信的Python接口it…

itchat+在线聊天机器人接口实现微信聊天机器人

闲来无事(其实还在期末考试),想着怎么利用手里的服务器搞点事情时,发现了python的itchat库,想着可以再利用网页聊天机器人,做一个自动聊天的微信机器人。 总体思路很简单,用itchat登录微信,接受消息&#…

AI 微信自动聊天机器人

微信聊天机器人 # /usr/bin/env python # -*- coding: utf-8 -*- # Time : 18-5-4 下午23:37 # Author : 杨星星 # Email : yangshilong_liu163.com # File : wechart.py # Software: PyCharm#codingutf8 import requests import itchat import random# KEY 8edce3c…

聊天机器人集成PC端微信

1.PyWeChatSpy 可以操作PC端微信 github地址如下 https://github.com/veikai/PyWeChatSpy 2.chatterbot 可以实现自制语料库的聊天机器人 安装方法 pip install chatterbot训练方法,语料库制作方法 官网上都有 https://chatterbot.readthedocs.io/en/stable/devel…

微信自动聊聊天机器人(利用腾讯的智能聊天接口)

微信智能聊天机器人 利用python做一个微信聊天机器人早已不是黑科技,网上有很多通过图灵机器人接口和itchat实现的教程。这里呢我用到腾讯的智能闲聊,是没有次数限制的,当然还有很多这样的api,百度也有,这里我只说腾讯…

ChatGPT修bug横扫全场,准确率达78%!程序员要开心了

ChatGPT到底有多会修bug? 这事终于有人正儿八经地搞研究了—— 来自德国、英国的研究人员,专门搭了个“擂台”来检验ChatGPT的这项本领。 除了ChatGPT之外,研究人员还找来了其它三位修bug的“AI猛将”,分别让它们修复40个错误代码…

区块链龙头股都有哪些?区块链概念股有哪些?

区块链龙头股都有哪些?区块链概念股有哪些? 区块链技术的应用程序似乎很广泛,它可以用于金融服务行业,例如,用于转移资金。它可以切断中间人,并可能带来更大的效率。这有可能提高不同行业的储蓄水平,从而提高盈利水平…

2019区块链概念股龙头

除了在教育行业的运用,区块链技术如今也被运用在其它社会事业的管理上。在国,社会事业种类特别多,需要处理的数据量也十分巨大。在档案管理,个人社会信用、公证、身份认证、遗产继承以及代理投票方面的作用十分突出。只要需要网络…

海外上市中国概念股每日行情

海外上市中国概念股每日行情 (单位:美元) 股票名称股票代码开盘最低最高收盘涨跌额涨跌幅成交量市值市盈率小时日期网易NTES39.8739.2540.2339.520.020.05%541482 $ 1,235,955,00025.994:00pm2/17/2005新浪SINA23.3423.1423.8023.18-0.091-0.39%168105…

九龙证券|受益行业红利,这些龙头股获资金青睐!

今天职业普涨,15个职业主力资金净流入。 证券时报数据宝计算,今天沪深两市主力资金净流出16.34亿元,较昨日流出力度大幅减缓。其间创业板净流入2.41亿元,沪深300成份股净流入17.13亿元。 今天职业普涨,申万一级职业中…

一起来创建A股上市公司细分行业龙头数据库

为什么要搭建呢? A股市场无论牛市、熊市还是 震荡市场更多的还是结构性机会,也就是行业及题材板块的热点轮动,此消彼长,这会是一种常态。 因此选股环节愈发重要,选对大趋势却没有选好板块--无用;选对了板块…

高效的股票数据接口工具有哪些?

我们已经知道了量化投资是是通过数量化方式及计算机程序化发出买卖指令,以获取稳定收益为目的的交易方式,而其中最重要的载体是数据。在金融领域中量化的应用让金融分析师、外汇交易员、产品研发员等技术人员又有了新的用武之地,转型成为量化…

A股各概念板块龙头股大全

A股各概念板块龙头股大全一、新兴信息产业龙头1、车联网龙头——软控股份002073 启明信息002232.荣之联0026422、通信网络龙头——恒宝股份0021043、通信设备制造龙头——新海宜002089.东方通信6007764、物联网互联龙头——三五互联300051.大唐电信600198.二六三0024675、三网融…

企业微信的聊天机器人来了,免费下载(Python版)

大家好,这里是程序员晚枫,个人网址:python-office.com 上次分享了微信机器人的视频以后,视频下面有一个热门评论: 什么时候开发企业版微信机器人?自动回复、自动群发等等~ 在经历了一段时间的查找和开发以…

从辩证的角度看待chatGPT,我们该如何对待?

从辩证的角度,看待chatGPT 0.什么是ChatGPT(客观阐述)1.通过唯物辩证法的五对基本范畴进行分析1.0.内容与形式1.1.现象和本质1.2.原因与结果1.3.必然与偶然1.4.现实与可能 2.使用ChatGPT会给我们带来的好处2.0.减轻劳动负担2.1.提供灵感和思路…