chatGPT:12.12 之后更新的 chatGPT 的本地部署和接口调用,解决 response 403 (无法连接openai服务器)问题

news2024/12/23 13:50:06

文章目录

  • 问题
  • 源代码改动
    • Session token 的获取
    • cf_clearance 的获取
    • user-agent 的获取
    • 将 config.json.sample 内容修改并移动位置
    • 附注:
    • 环境配置
      • python >= 3.7
      • 特别提示
      • playwright & cf_clearance
      • revChatGPT 版本
      • httpx
      • OpenAIAuth
      • 删除 import 中的错误
  • 后记

问题

  • 因为 chatgpt 在 12.12 号更新了版本,因此整个源代码中增加了通过 session_token, cf_clearance, user_agent 来访问接口的最新方式
  • 因此我们要做的主要就是两件事:
    • 重新下载源代码
    • 重新配置环境
  • 如果你之前看过我关于初代 chatgpt 在本地运行并调用接口的文章,那么你需要两篇文章结合起来看,如果你没看过上一篇文章,建议你先去读一下之前 那篇,因为很多基础操作我不会在这里重新描述一遍。

源代码改动

  • 首先下载最新的源代码
  • 通过在 config.json 文件中指定这三个字段的值来获得访问的身份,下面我会描述如何获得这三个字段:
    • session token
    • cf_clearance
    • user_agent

Session token 的获取

  • 跟上一篇文章中的完全一样

cf_clearance 的获取

  • 和 cookie 的位置很接近了 检查(F12) -> Application -> cf_clearance
    在这里插入图片描述

user-agent 的获取

在这里插入图片描述

  • 点击 chat 之后会有一个 request head 拉到底然后复制 user-agent
    在这里插入图片描述

将 config.json.sample 内容修改并移动位置

  • 原本 config.json.sample 的位置是直接在项目目录下面,我们首先打开它,将其中的内容按照上面的三个字段填写进去:
    在这里插入图片描述
  • 然后将这个 config.json.sample 的名称改成 config.json
  • 最后将 config.json 移动到 revChatGPT 文件夹下面
    在这里插入图片描述

附注:

  • 虽然这里给出了 cf_clearanceuser-agent 的获取方式,但是有人在 github 上反映只用 session_token 即可,其他的两个字段程序会自动从浏览器中获取,因此,不需要自己往里填充。
  • 所以最终 config.json 中还是只需要 session_token 即可:
    在这里插入图片描述

环境配置

python >= 3.7

  • 首先是 python 版本,最初的 chatgpt 你用 python3.6 完全应付的来,但是在 12.12 之后的版本中,新加入了 playwrightcf_clearance 这两个包,需要 python 版本 >=3.7
    • 针对这种情况如果你之前已经按照我上一篇文章创建了 conda 的环境,那么你只需在conda 环境中升级一下 python 的版本,即 conda install python=3.7

特别提示

  • 如果你是用的是 pycharm 这种集成开发工具,由于你的 python 版本更新了,那么你这个环境需要从新链接一下,否则程序无法运行。链接的方式也很简单就是把编译器重新加载一下,我是 macos,你们按照自己的设备来调整:
    在这里插入图片描述

playwright & cf_clearance

  • 接下来就是安装:

    # 第一句话装 python-package 这样就可以用 python 来调用软件 playwright 的功能
     pip install playwright
     # 第二句话下载应用 playwright 客户端应用,118M
     playwright install   
    
    pip install cf_clearance
    
  • 如果你python版本是 3.7 以下,在安装 playwright 的时候就会直接报这个错误:

ERROR: Could not find a version that satisfies the requirement playwright (from versions: none)
ERROR: No matching distribution found for playwright

在这里插入图片描述

revChatGPT 版本

  • 如果是 desktop 的环境或者 server 上的环境是不同的,这一点特别注意点
  • 我在自己的 desktop 上用,所以是
    pip install revChatGPT==0.0.42.1
    在这里插入图片描述

httpx

pip install httpx

OpenAIAuth

pip install OpenAIAuth

删除 import 中的错误

  • __main__.py 中这个多余的前缀 revChatGPT. 删除
    在这里插入图片描述

后记

  • 目前 chatGPT 的 github 项目没有保证通过这种方式就一定能够解决问题,但是他们目前做了这样的改进,大家可以按照自己的需求部署,后面怎么样还要看官方给的消息
  • 错误基本就是这种,很无奈,等官方进一步发文
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web网页设计期末课程大作业:基于HTML+CSS+JavaScript个人书画作品展示HTML模板(6页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)

在之前的文章中,分享了一系列Matlab折线图的绘制模板: 这一次,再来分享一种特殊的折线图:带误差棒的折线图。 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matl…

C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数

目录 一.什么是素数(质数 Prime) 二.判断一个整数是不是素数(质数)代码 三.求100以内的所有素数(质数) 四.输出前50个素数(质数) 一.什么是素数(质数 Prime&#xff0…

5、metasploit信息搜集

一、概念 针对目标在开放端口、以及运行的服务进行探测。portscan端口扫描mysql安全测试服务版本确定密码嗅探SNMP探测二、metasploit中信息搜集模块 2.1、use auxiliary/gather/ 与 use auxiliary/scanner/ 2.2、针对SMB版本探测(默认445端口) 也可以探…

vTESTstudio入门到精通 - CANoe工程导入vTESTstudio_02

前面我们已经讲完了如何配置出来一个vTESTstudio工程,并且编译成一个可执行的文件,接下来我们就是要把这块可执行文件导入到CANoe中,通过CANoe工程来执行我们编译的脚本,实现对应功能的测试,今天就是给大家分享如何导入。 二、CANoe工程导入vTESTstudio执行文件 1、创建一…

猿如意中的【blender】工具详情介绍

文章目录一、工具名称二、下载安装渠道2.1 什么是猿如意?2.2 如何下载猿如意?三、工具介绍四、blender介绍4.1 blender简介4.2 背景4.3 主要功能五、软件安装过程5.1 如何在猿如意中下载开发工具blender?5.2 下载blender软件截图5.3 blender安…

基于51单片机的数字电压表设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #define LED_GLOBAL 1 #include "led.h" void ledDelay(uint ms) { uchar delayi; while(--ms) { for(delayi0;delayi<124;delayi); } } void init_led(void) { LEDsegLedCode[0]; L…

四、JavaScript——基本语法

1.注释 <script>/*1.多行注释*///2. 单行注释</script> 2.大小写 JS严格区分大小写 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

Web前端105天-day42-JSCORE

JSCORE02 目录 前言 一、复习 二、函数在对象中触发方式 2.1.call 2.2.apply 2.3.bind 三、引用类型 四、构造函数 五、new 六、原型理念 ​七、原型 八、class 九、严格模式 十、ES6 十一、let与const 总结 前言 JSCORE02学习开始 一、复习 JS引擎具有自动修…

操作系统学习笔记_4 文件;磁盘

文件 有信息的数据集合。 文件包含的信息&#xff1a;文件名、标识符&#xff08;操作系统要看&#xff09;、类型、大小、创建修改时间、所有者、安全信息。 文件管理 文件分为无结构的流式文件和有结构的记录式文件。记录式文件由一条条记录组成。 文件存放在根目录里的…

DFGN-Dynamically Fused Graph Network for Multi-hop Reasoning 论文阅读

文章目录介绍相关工作text-based QA多跳QA推理模型段落选择器构建实体图编码 Query 和 ContextFusion Block 推理Doc2GraphDynamic Graph AttentionUpdate QueryGraph2Doc预测介绍 将 DFGN 模型用于HotpotQA &#xff08;TBQA类型的公开数据集&#xff09; QA任务注重从单一的…

ADI Blackfin DSP处理器-BF533的开发详解46:图像处理专题-Translation (图像平移处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像平移处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

【爬虫实战项目】Python爬取Top100电影榜单数据并保存csv文件(附源码)

前言 今天给大家介绍的是Python爬取Top100电影榜单数据保存csv文件&#xff0c;在这里给需要的小伙伴们代码&#xff0c;并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫&#xff0c;基本的是加请求头&#xff0c;但是这样的纯文本数据爬取的…

(四)springcloud之Nacos注册服务与发现-1

前言&#xff1a;一段时间来忙忙碌碌&#xff0c;回头发现很多技术已经更新了很多&#xff0c;很长一段时间都在忙其他的事情&#xff0c;以至于没有太多关注于微服务更新&#xff0c;今天更新了下版本以便于后期使用&#xff0c;突然发现很多东西已经被删除或直接改变了&#…

TIA博途_序列化指令Serialize的具体使用方法示例

TIA博途_序列化指令Serialize的具体使用方法示例 序列化指令的基本用途: 首先,我们可以查看TIA博途中的帮助文件说明,如下图所示: 简单总结就是: 把复杂的数据或数据类型(例如UDT、STRUCT等)转换成BYTE或CHAR类型的数组,从而方便数据处理,通常在通信数据的处理中可以…

DBCO-PEG-amine,二苯并环辛炔PEG氨基 MV 1K、2K、3.4K、4K、5K、10K

1、试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; DBCO用于无铜点击化学。在没有铜催化剂的情况下&#xff0c;与叠氮化合物的反应非常迅速。这种反应是非常迅速&#xff0c;温和&#xff0c;和生物相容性&#xff0c;NH2和带N…

数据结构---KMP算法

一、KMP算法简介 KMP算法是一个字符串匹配算法&#xff0c;对暴力算法BF的一种优化&#xff0c;使得时间复杂度大量的降低。 基本概念&#xff1a; s[]是字符串&#xff0c;简单来说&#xff0c;就是比较长的字符串。p[]是模式串&#xff0c;简单来说&#xff0c;就是比较短的…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了&#xff0c;现在一直用来控制家里的家电。于…

selenium + python自动化测试环境搭建(有手就行)

selenium 是一个web的自动化测试工具&#xff0c;不少学习功能自动化的同学开始首选selenium &#xff0c;相因为它相比QTP有诸多有点&#xff1a; 免费&#xff0c;也不用再为破解QTP而大伤脑筋 小巧&#xff0c;对于不同的语言它只是一个包而已&#xff0c;而QTP需要下载安装…

时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …