ChatGPT是OpenAI公司开发的一款聊天机器人应用,自2022年11月推出以来以迅雷不及掩耳盗铃之势火爆全球。ChatGPT不仅可以模仿人类对话,还可以创建音乐、电视剧、童话故事和学生论文,甚至是编写和调试计算机程序。
截至2023年1月,ChatGPT的用户已超过1亿,成为迄今为止增长最快的消费级应用程序。全球海量用户的热情试用不仅让OpenAI公司的市场估值迅速飙升到290亿美元,但是也给后台服务的管理和维护带来了一些困扰。
有网友表示当问ChatGPT“中国足球如何才能捧起大力神杯”等问题时,ChatGPT的回答窗口一片空白。CNBC在2022年12月15日的报道中写道the service still goes down from time to time(服务时常中断)。难道ChatGPT也BUG?

基础认知
今天小编就拿出我们的谛听从网络性能及用户体验监控平台对ChatGPT来一个基础设施大摸底,来验证下ChatGPT的响应速度、性能如何,它又是如何满足全球大量用户同时使用的?
下面就谛听对ChatGPT相关产品提供对外访问服务的基础设施进行详细梳理,OpenAI目前提供的服务主要有以下四个:
公司官网:
https://openai.com
提供OpenAI公司研究情况、相关产品、收费情况的介绍说明,并提供了API文档和相关产品的入口。
api服务:
https://api.openai.com
提供API访问服务
服务平台:https://platform.openai.com
提供用户登录、API文档说明、常用示例等功能
ChatGPT:
https://chat.openai.com
提供ChatGPT产品服务
我们首先使用查询一下openai的权威域名服务器:
$ nslookup -type=NS openai.com
Non-authoritative answer:
openai.com nameserver = ns2-02.azure-dns.net.
openai.com nameserver = ns3-02.azure-dns.org.
openai.com nameserver = ns4-02.azure-dns.info.
openai.com nameserver = ns1-02.azure-dns.com.
从名称上可以看出来它是由微软Azure云平台提供的DNS解析服务,然后我们使用IP定位服务对这四台域名解析服务器的IP进行定位,发现它们都属于AS8086自治系统,位于美国微软公司的云网络中。
接下来,我们在谛听系统中对OpenAI相关的服务进行监测:
ChatGPT监控
我们从位于全球各地的10个城市中对ChatGpt的服务页面进行访问,响应的服务器IP有两个104.18.2.161、104.18.3.161,它们同样属于Cloudflare公司,并且使用了Cloudflare提供的CDN加速服务。
网络层面上,从全球各地访问都是比较顺畅的,详情如下图所示:

但是,在应用层面上,ChatGPT不仅会对访问者的IP进行限制,还会对用户的访问环境进行限制。在用户环境限制上,不允许使用自动化工具,比如Selenium进行访问,在IP限制方面,无法从中国大陆、中国香港、中国台湾以及俄罗斯等地区访问。访问界面如下所示:

网站监控
我们在谛听系统中从全球12个不同的城市发起了对openai官网的监控,响应的服务器IP至少有8个,比如13.107.238.46、13.107.238.59。通过对这些IP进行定位,发现这些服务器都位于美国微软公司的Azure云网络中,另外在HTTP响应头中也带有X-Azure-Ref标识,这也说明了openai.com是通过Azure云平台来提供服务的,另外由于响应IP与请求位置有关,所以推测是使用了Azure中的CDN服务。
从探测机到openai.com服务器的路径图如下所示:

可以看到在网络层面上全球各地都可以访问OpenAI官网,但国内访问时延迟明显稍高,在70ms左右。另外下图说明了在Web服务层面上,全球各地也都是可以访问的。

API服务监控
我们同样从12个城市对OpenAI的api接口服务发起监测,响应的服务器IP只有一个52.152.96.252,它属于微软Azure云网络,位于美国圣安东尼奥市。猜测是由于API服务的用户量比较少,所以并没有部署CDN加速服务。
从全球各地的探测机到api服务器的丢包、时延、抖动如下图所示:

可以看到网络是比较稳定的,丢包很少。但从美国以外的国家访问时时延是比较高的,大概在150~200ms。
在接口服务层面上,在全球多个城市都可以正常调用。并没有限制访问。

平台监控
针对platform.openai.com服务,我们从全球12个城市的探测机发起监测,可以看到响应的服务器IP只有两个104.18.1.104 、104.18.0.104。对这两个IP进行定位查询,发现它们位于美国,属于Cloudflare公司,OpenAI在这里使用了Cloudflare提供的负载均衡功能。
在下图的网络路径中可以看到,从全球各地到Cloudflare中的服务器的时延都是比较低的(50ms以内),所以推测它可能使用了Cloudflare提供的CDN加速服务。

在web服务层面上,位于全球各地的探测机都可以正常访问platform.openai.com服务中的功能。

上层AS拓扑分析
在AS层面上,OpenAI相关服务主要位于微软的AS8075以及Cloudflare的AS13335。
AS8075中具有196个互联网交换点,IPv4前缀有349个,IPv6前缀有23个。BGP对等AS有386个,主要如下图所示:

相关AS拓扑图如下所示:

AS13335中具有285个互联网交换点,IPv4前缀1777个,IPv6前缀1355个,与其构成BGP Peer关系的AS共有1264个,相关AS的拓扑结构如下图所示:

通过谛听的检测结果可以看到OpenAI的ChatGpt服务目前主要是通过Cloudflare的CDN加速服务来向全球各地的用户提供访问服务的,不过,比较遗憾的是并没有对中国地区开放。其他的诸如官网和API等服务则通过微软的Azure云平台对外提供服务,并且使用Azure的DNS解析服务进行OpenAI的域名解析。通俗的讲,ChatGPT 的API响应速度相对比较稳定,丢包率低。
截至目前为止,关于ChatGPT中断的相关报道已经越来越少,这也说明ChatGPT在基础设施服务上做的越来越完善了。
随着微软加大对OpenAI的投资,微软作为OpenAI的主要股东及首选商业合作伙伴,并且拥有GTP-3的独家授权,未来Azure云平台可能会托管openai更多的相关产品和服务。此外,随着ChatGPT API的衍生产品越来越多,其API服务的负载也会越来越高,估计很快就会采用CDN提供全球加速服务。
所以ChatGPT 的空白和沉默很有可能是大家的提问过于离谱,于是它选择了此时无声胜有声。

但是对于ChatGPT 火爆最终还是回归到了AI是否会代替人类这个永恒不变的话题。以目前的情况来看,ChatGPT比起以往的AI确实是有一定的提升,只要问题描述精准,可以帮你写作文、做表、写诗等等。
只是现实往往比较复杂,例如甲方需要的五彩斑斓的黑、ChatGPT出了七八版方案之后领导表示还要第一版,字再大点等情况,很容易把ChatGPT的CPU干烧啊....
现阶段的AI能否代替人类,结果显而易见。
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG