😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁
更多可以看这里
起因
出于某些不可抗的因素,原本可以访问 chatGPT 的电脑访问十分缓慢,就算能访问也不能输入代码片段(会被内网的NetSkope拦截)。
不同的尝试
- 尝试安装 VPN。失败,因为电脑安装软件需要权限
- 通过 IP 访问 chatGPT 的网站。失败,IP 被内网加入黑名单了
- 尝试经过代理服务器访问。
- 远程连接我的电脑,通过我的电脑访问。风险过大,本地电脑有定时截屏,不想暴露我的桌面
- 博客接入 chatGPT 的 Open API。暂时失败,不清楚为啥 key 一直提示无效(是要钱)
- 服务器启动一个 headless browser(无头浏览器),通过远程访问这个浏览器。
无头浏览器
简介
无头浏览器就是没有 UI 界面的浏览器。
无头浏览器常用在自动化测试(Automation),页面爬虫等场景。主要可以模拟用户真实的点击。
谷歌无头浏览器(browserless/chrome)
简介
“browserless/chrome” 是无头的谷歌浏览器。
特点
- 首先具有无头浏览器的特点
- 支持容器化,可以部署在云平台
- 支持远程连接,集成 puppeteer, playwright, selenium’s webdriver
开始
-
在 Docker 里拉取对应的镜像
docker pull browserless/chrome
-
启动容器
docker run \ -e "CONNECTION_TIMEOUT=-1" \ -e "DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR=true" \ -e "TOKEN=xxx" \ -e "PORT=3000" \ -e "MAX_CONCURRENT_SESSIONS=1" \ -p 3000:3000 --restart always -d --name browserless browserless/chrome
- CONNECTION_TIMEOUT - 表示不断开和服务器内无头浏览器的连接(默认30秒就断开了,很坑,我一开始以为我网络故障)
- DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR - 关闭下载行为
- Token - 这个很重要,可以防止服务器被人滥用。设置token=xxx之后下次访问就要在url里带着参数,比如部署在 www.abc:3000,就要变成www.abc:3000?token=xxx
- PORT - 设置访问的端口
- MAX_CONCURRENT_SESSIONS - 这个也比较重要,可以控制当前连接的session最多同时几个人在线
- 剩下的参数都是docker内置的,具体参考官网
这些常用参数外,剩下的全部参数在这
-
效果
-
基本原理
客户端连接无头浏览器是通过长连接,当使用效果图中的连接方式,服务器会推送图片(无头浏览器当前应该显示的图片),客户端通过canvas实时绘制UI展示。 -
我的效果
经过我的搭建,效果确实有,但是实时传输图片实在特别的卡,基本卡成PPT。
结论
使用无头浏览器打开一个可视化界面的方案似乎不太好用,如果采用REST API的方式或许会好些,但是似乎还不如直接接入chatGPT的API。如果有啥好的方法希望评论建议一下吧。🤞🙋🏻♂️
TODO
😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁
更多可以看这里
发布评论