BingGPT 国内中转

news2024/12/27 17:35:24

BingGPT 国内中转

本项目的github地址

本项目最上层是提供一个使用BingGPT的web接口,仅供学习,如有侵权请联系作者。

预先准备:

  1. 一个可以访问bingGPT的外网服务器(可在tencent cloud 选购)
  2. 一个在已经注册new_bing_list的账号

使用:

  1. 使用requirements 下载相关包
  2. 将template.py中的相关模板数据替换成你自己的参数,详见下面的详细使用说明A.配置项
  3. 运行web_interface.py 访问HTTP API接口

详细使用说明:

配置

本项目所有的配置放在template.py中,详细参数如下

# 下面这五个常量 为访问过程中的常量 建议不更改
CREATE_CHAT_URL = "https://www.bing.com/turing/conversation/create"
UNAUTHORIZED = "UnauthorizedRequest"
END_SET = ""
WAKE_CONNECTION = '''{"type":6}'''
CHAT_URL = "wss://sydney.bing.com/sydney/ChatHub"
# 配置性常量,项目配置类更改, 可更改可无需更改
ROUND_LIMIT = 6			 		# 目前bing限制每轮对话只有6次, 可跟随微软最新政策自行更改, 需保证小于微软最新的限制数
ROUND_LIMIT_TIME = 300   		# 每轮对话进行一个限时,五分钟后必定刷新为新对话,可自定义,如果没理解也可直接使用无需更改
GET_TRACE_ID = “https://www.bing.com/search?q=AI-Cha”  # 微软的对话的traceId跟随每次搜索的EVent_ID, 此网址可更改为搜索任意内容的网址
CHAT_HEADER 					# websocket 浏览器的请求头,可不更改(我已删减为最少参数)
# 最好更改、不更改可能会出错
CONVERSATION_HEADER 			# 浏览器的请求头, 建议从自己的浏览器上直接复制粘贴即可
ARGUMENT_TEMPLATE 				# 需将参数中的location 和location hints 删除,删除后如下/更换为自己的参数

'''
ARGUMENT_TEMPLATE = '''
{
	"arguments": [{
		"source": "cib",
		"optionsSets": ["nlu_direct_response_filter", "deepleo", "disable_emoji_spoken_text", "responsible_ai_policy_235", "enablemm", "dlislog", "dloffstream", "dv3sugg", "harmonyv3"],
		"allowedMessageTypes": ["Chat", "InternalSearchQuery", "InternalSearchResult", "InternalLoaderMessage", "RenderCardRequest", "AdsQuery", "SemanticSerp"],
		"sliceIds": ["0113dllog", "216dloffstream"],
		"traceId": "63f86e96298d41c09aa2cfcac34d728a",
		"isStartOfSession": false,
		"message": {
			"locale": "zh-CN",
			"market": "zh-CN",
			"region": "US",
			"timestamp": "2023-02-24T16:00:24+08:00",
			"author": "user",
			"inputMethod": "Keyboard",
			"text": "那这些招式都叫什么名字呢",
			"messageType": "Chat"
		},
		"conversationSignature": "EM8oXvBUfD7Ipl/Ptl27ywhKlYMytXvP2g1O7Bfg/iw=",
		"participant": {
			"id": "914798459437187"
		},
		"conversationId": "51D|BingProd|B47307D0C3A2964D246D56BD2AB34C900EA1051628C7AB4DFDFF99DA8929E39F"
	}],
	"invocationId": "1",
	"target": "chat",
	"type": 4
}
'''


'''

更换方法:

  • CONVERSATION_HEADER:替换成你的浏览器访问bing.com 的请求头,具体操作

    1. 打开浏览器(Edge/ Firefox/Chrome)f12 打开开发工具, 选择网络,

    2. 访问https://www.bing.com 不要访问重定向回cn的网站,使用相关插件如X_Forward_For等设置,相关内容在Bilibili上有相关使用方法

    3. 抓取network中www.bing.com包, 单机, 直接复制整个请求头

      在这里插入图片描述

  • ARGUMENT_TEMPLATE: 抓取bing 连天过程中的chathub 包,把请求的数据直接粘贴下来替换即可,不会的话直接替换为上面代码块中的参数

Mail:

本项目支持mail 提醒,当cookie过期或今日提问次数达到上限(笔者使用时是100句)或项目发生Exception时可以发送邮件提醒

mail 代码与配置均在mail_remain.py中,如不想使用或不会设置将文件中的USE_MAIL = False

使用前置需要发送邮箱开启smtp协议,详情请自行搜索具体邮件如qq或网易开启smtp协议的方法,不赘述

MAIL_CONF = {
    "self_mail": "",								# 开启smtp邮箱的邮箱号码
    "self_smtp_key": "",							# 申请smtp时给的key(有些邮箱可能为自己的密码)
    "self_pop_key": "",    							# 在本项目暂时不用pop3,无需填写
    "mail_type": {
        "qq": "smtp.qq.com",
        "126": "smtp.126.com",
    },
    "receiver": ""									# 设定你想接收通知的邮箱
}

Cookie

bing的登录是使用Cookie, Cookie通上面抓取到的CONVERSATION_HEADER中的cookie值。但为保证cookie可由我们更方便的更新,将cookie的获取方式变为从本地读取文件,详见create_conversation.py 中的build cookie函数(都本地文件)

Cookie文件e.g. cookie.txt (自定义命名即可)

cookie: SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=A0802B17DEFE442D85B85A23E49377A5&dmnchg=1; …

运行原理

在这里插入图片描述

本项目考虑服务器性能和开发成本没有搞登录,取而代之的时请求中带上你预存的cookie文件名的转码,转码函数在web_interface中的file_name_trans_key函数。此函数在整个项目中没有调用,仅用于给使用者提供一个cookie文件名转码接口。

此转码算法为简单的字符串变化,如想换成更安全的算法直接替换key_trans_file函数即可

本项目没有Exception处理,取而代之的使用了error.py中的错误码描述问题,其中12是正常响应码,其他各码均需深入查看项目理解,不再赘述具体错误码

运行

  1. 下载python >= 3.8版本 运行pip install -r requirements.txt 下载相关包
  2. 完成上述配置阅读和编辑后, 运行 python web_interface.py运行
  3. 请求时访问 http://你的Ip:你的端口/key/cookie文件名转码?question=你的问题

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

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

相关文章

泰克示波器MD03012-一款高性能、高可靠性的仪器

泰克示波器MD03012是一款常见的仪器,以其出色的性能和高可靠性被广泛应用于电子工程、教学演示等领域。它采用先进的电子技术,具有高精度、高灵敏度和高可靠性等特点,能够满足工程师们在实际工作中的要求。泰克示波器MD03012拥有一套强大的功…

华为OD机试题,用 Java 解【数组排序】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Clickhouse学习(二):MergeTree存储结构

MergeTree一、MergeTree逻辑存储结构二、MergeTree物理存储结构三、总结一、MergeTree逻辑存储结构 如上图所示,在排序键(CountrID、Date)上做索引,数据会按照这两个字段先后排序ClickHouse是稀疏索引,每隔8192行做一个索引,如(a,1),(a,2),比如想查a,要读取[0,3)之间的内容,稀疏…

Python安装教程(附带安装包)

首先,打开python安装包的下载地址,https://www.python.org/downloads/,会有些慢 点击downloads中的windows 左侧是稳定的版本,我这边下的是3.8的,不想去官网下载的可以直接用我下载的这个3.8版本,https://…

隐私计算头条周刊(2.20-2.26)

开放隐私计算收录于合集#企业动态45个#周刊合辑45个#政策聚焦38个#隐私计算92个#行业研究37个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播…

Reids实战—黑马点评(三)秒杀篇

Reids实战—黑马点评(三)秒杀篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Reids实战—黑马点评(三)秒杀篇一、全局唯一I…

改进的 A*算法的路径规划(路径规划+代码+毕业设计)

引言 近年来,随着智能时代的到来,路径规划技术飞快发展,已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等,然而传统的路径规划算法在复杂的场景的表现并不如人意,例…

一些cmake error fixed

建完虚拟环境后 运行 pip install . 出现报错,显示svox2安装出错,然后开始进入到svox2中进行手动编译和安装。 1. cmake svox2/csrc pybind11找不到 conda install pybind11用 pip install 在虚拟环境中安装不行,据说会安装到全局下… 2. c…

Allegro如何标注PCB的尺寸参数操作指导

Allegro如何标注PCB的尺寸参数操作指导 在输出生产文件之前,需要对PCB的尺寸进行标注,如下图 用Allegro如何进行标注,具体操作如下 点击Manufacture选择Dimension Enviroment<

量化学习(一)数据列表获取

试验环境 windows10 AnacondaPyCharm&#xff08;小白参考文章&#xff1a;https://coderx.com.cn/?p14&#xff09; 数据库&#xff1a; VM中安装MySQL5.7&#xff08;设置utf8及相应配置优化&#xff09; 复权 小白参考文章&#xff1a;https://zhuanlan.zhihu.com/p/469820…

实例3:树莓派呼吸灯

实例3&#xff1a;树莓派呼吸灯 实验目的 通过背景知识学习&#xff0c;了解digital与analog的区别。通过GPIO对外部LED灯进行呼吸控制&#xff0c;熟悉PWM技术。 实验要求 通过python编程&#xff0c;用GPIO控制LED灯&#xff0c;使之亮度逐渐增大&#xff0c;随后减小&am…

10万字大数据平台数据治理体系和大数据架构技术方案word

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 总体技术架构设计 基于企业内部…

高频面试题|RabbitMQ如何防止消息的重复消费?

一. 前言最近有很多小伙伴开始找工作&#xff0c;在面试时&#xff0c;面试官经常会问我们这样一个题目&#xff1a;RabbitMQ如何防止重复消费?有很多小伙伴这个时候都在想&#xff0c;消息怎么还会重复消费呢???.......所以他们在面试后就跑来问壹哥&#xff0c;针对这个比…

【华为OD机试模拟题】用 C++ 实现 - 异常的打卡记录(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明异常的打卡记录【华为OD机试模拟题】题目输入输出备注示例一输入输出说明示例二输入输出说明示例三输入输出说明

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

数据结构与算法(五):优先队列

这节总结一下优先队列的常用实现方法。 一、基本概念 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在优先队列中&#xff0c;元素被赋予优先级。当访问元素时&#xff0c;具有最高优先级的元素最先删除。优先队列具有最高级…

100天精通Python(数据可视化篇)——第77天:数据可视化入门基础大全(万字总结+含常用图表动图展示)

文章目录1. 什么是数据可视化&#xff1f;2. 为什么会用数据可视化&#xff1f;3. 数据可视化的好处&#xff1f;4. 如何使用数据可视化&#xff1f;5. Python数据可视化常用工具1&#xff09;Matplotlib绘图2&#xff09;Seaborn绘图3&#xff09;Bokeh绘图6. 常用图表介绍及其…

81页5G 智慧工厂物联数字孪生可视化建设方案

数字企业建设思路3 XXXX智慧企业将以信息化为基础、以数据为纽带、以制造为核心、以管理为载体打造新型智慧园区&#xff0c;该智慧园区整合了企业的安全、环保、能源、安防、应急、服务等数据资源&#xff0c;支撑企业科学、准确、及时决策&#xff0c;提升企业综合监管能力、…

计算机网络笔记、面试八股(一)—— TCP/IP网络模型

本章目录1. TCP/IP网络模型1.1 应用层1.1.1 应用层作用1.1.2 应用层有哪些常用协议1.2 运输层1.2.1 TCP与UDP的区别1.2.2 分块传输1.2.3 端口1.3 网络层1.3.1 IP报文1.3.2 IP地址1.3.3 网络号和主机号的获得1.3.4 子网掩码的获得1.3.5 路由1.3.6 IP地址与MAC地址的区别1.3.7 AR…

【C++】List 基本接口的使用

LISTList 基本接口介绍前言list 构造方法list 析构方法容量相关元素获取迭代器元素的修改其他相关操作前边博客中已经介绍了c STL 中的 string 以及 vector 基本接口的使用方法并进行了接口的模拟实现&#xff0c;接下来让我们来学习 list 的基本接口使用方法吧~~ List 基本接…