Spaces:
Runtime error
Runtime error
import json, requests | |
import gradio as gr | |
def request_to_v2(message, cookie, user_id, channel_id,context=[]): | |
times = 3 | |
context = [message] | |
headers = { | |
# ':Authority': 'claude.ai', | |
# ':Method': 'POST', | |
# ':Path': '/api/append_message', | |
# ':Scheme': 'https', | |
'Content-Type': 'application/json', | |
'Origin': 'https://claude.ai', | |
'Referer': f'https://claude.ai/chat/{channel_id}', | |
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', | |
'Cookie': cookie, | |
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6', | |
# 'Accept-Encoding': 'gzip, deflate, br', | |
'Accept': 'text/event-stream, text/event-stream', | |
'Sec-Ch-Ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"', | |
'Sec-Ch-Ua-Mobile': '?0', | |
'Sec-Ch-Ua-Platform': '"Windows"', | |
'Sec-Fetch-Dest': 'empty', | |
'Sec-Fetch-Mode': 'cors', | |
'Sec-Fetch-Site': 'same-origin', | |
'Connection': 'keep-alive', | |
} | |
post_msg_url = 'https://claude.ai/api/append_message' | |
post_msg_data = { | |
"completion":{ | |
"prompt": message, | |
"timezone":"Asia/Shanghai", | |
"model":"claude-2" | |
}, | |
"organization_uuid": user_id, | |
"conversation_uuid": channel_id, | |
"text": message, | |
"attachments": [] | |
} | |
post_msg_data = json.dumps(post_msg_data) | |
print(post_msg_data) | |
try: | |
response = requests.post(post_msg_url, headers=headers, data=post_msg_data, verify=False, stream=False) | |
print(response) | |
print(response.status_code) | |
print(response.request) | |
for data in response.iter_lines(): | |
if data: | |
print(data) | |
# 将事件数据分割为多行 | |
# event_data = line.decode('utf-8') | |
# print(event_data) | |
# encoding = chardet.detect(line)['encoding'] | |
# print(chardet.detect(line)) | |
# decoded_string = line.decode('hex') | |
# print(decoded_string) | |
# event_data = decoded_string.split('\n') | |
# for data in event_data: | |
# if data: | |
# print(data) | |
# response.close() | |
context += [response] | |
responses = [(u, b) for u, b in zip(context[::2], context[1::2])] | |
return responses, context | |
except BaseException as e: | |
print("查询失败,正在重试") | |
print(e) | |
for o in range(times): | |
try: | |
res = requests.post(post_msg_url, headers=headers, data=post_msg_data, verify=False, stream=True, allow_redirects=True) | |
if res.status_code == 200: | |
break | |
except BaseException as e: | |
print("再次查询子域名失败", o) | |
print(e) | |
return False | |
if __name__ == "__main__": | |
with gr.Blocks() as dialog_app: | |
with gr.Tab("Cookies"): | |
cookies = gr.Textbox(lines=2, label="输入cookies",) | |
user_id = gr.Textbox(lines=2, label="输入user_id",) | |
channel_id = gr.Textbox(lines=2, label="输入channel_id",) | |
with gr.Tab("New Bing Chat GPT4"): | |
gr.Markdown(""" | |
# 连接 new-bing 接口,用的是GPT4接口 | |
如果回复为 "1" ,说明目前服务比较火爆,建议过段时间再来用; | |
如果回复为 "0" , 请刷新网页重来。 | |
如果回复为 "-1" , 需要重新利用梯子去激活一下聊天功能。 | |
如果回复为 "-2" , 说明该账号需要登录bing聊天页面进行人机验证。 | |
### 由于源码的更新,此时传入 [ choices = None ] 才能返回要求的格式。即不选择特定的choices模式 | |
""") | |
chatbot = gr.Chatbot() | |
state = gr.State([]) | |
markdown = gr.Markdown(label="Output") | |
with gr.Row(): | |
inputs = gr.Textbox( | |
label="输入问题", | |
placeholder="请输入你的文本,确保已经正确填入bing.com中的cookies" | |
) | |
inputs.submit(request_to_v2, [inputs, cookies, user_id,channel_id,state], [chatbot, state]) | |
send = gr.Button("发送请求.....") | |
send.click(request_to_v2, [inputs, cookies, user_id,channel_id,state], [chatbot, state], api_name="xiaolvgpt") | |
gr.Markdown(""" | |
如果输入后没有返回结果,大概率是你的 cookies 账号未申请new-bing的聊天功能; | |
步骤: | |
1. 在 Edge 浏览器; | |
2. 登录 个人账号 // 申请新账号; | |
3. 打开“动力”; | |
4. https://cn.bing.com/ 网页 或者 https://www.bing.com/new 看是否有聊天功能; | |
5. 新版的 Edge 浏览器右上角有个bing的图标,点击后就可以进行聊天; | |
6. 说明可以了,再关掉“动力”,使用国内的网络再次复制cookies。 | |
""") | |
# launches the app in a new local port | |
dialog_app.launch(show_error=True,share=True,show_api=True) | |
# 为网站设置密码防止滥用 | |
# dialog_app.launch(auth=("admin", "pass1234")) | |