Spaces:
Sleeping
Sleeping
File size: 4,248 Bytes
48d64c3 c391acc 48d64c3 4d98764 a86f939 48d64c3 dd82a48 9ffe8f1 48d64c3 dd82a48 48d64c3 c55c175 9ffe8f1 48d64c3 6e62712 ec58988 dba91cd 48d64c3 6e62712 d9f99cc 48d64c3 ec58988 48d64c3 ec58988 48d64c3 fa4def4 48d64c3 fa4def4 48d64c3 fa4def4 48d64c3 fa4def4 48d64c3 fa4def4 48d64c3 fa4def4 48d64c3 5d1fe9f fa4def4 48d64c3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
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',
# '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":{
"incremental":True,
"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)
bots = ""
print("*"*100)
for data in response.iter_lines():
if data:
print(data)
# 将字节字符串转换为字符串
data_str = data.decode('utf-8')
# 删除开头的 "data: " 部分
data_str = data_str.replace("data: ", "")
data_json = json.loads(data_str)
print(data_json)
bots = bots + data_json["completion"]
context += [bots]
responses = [(u, b) for u, b in zip(context[::2], context[1::2])]
return responses, context
except BaseException as e:
print("查询失败,正在重试")
print(e)
response = e
context += [response]
responses = [(u, b) for u, b in zip(context[::2], context[1::2])]
return responses, context
if __name__ == "__main__":
with gr.Blocks() as dialog_app:
gr.HTML("""<h1 align="center">Claude2-API-xiaolv</h1>""")
with gr.Tab("Claude2 API xiaolv"):
gr.Markdown("""
## 需要传入的参数有:
1.cookie:intercom-device-id-lupk8zyo=.......
2.user_id:对应 organization_uuid
3.channel_id:对应 conversation_uuid
""")
with gr.Row().style():
with gr.Column(scale=0.4):
cookies = gr.Textbox(lines=2, label="输入cookies")
user_id = gr.Textbox(lines=2, label="输入user_id/organization_uuid")
channel_id = gr.Textbox(lines=2, label="输入channel_id/conversation_uuid")
# chatbot = gr.Chatbot()
with gr.Column(scale=0.6):
chatbot = gr.Chatbot([])
state = gr.State([])
with gr.Row():
inputs = gr.Textbox(
label="输入问题",
placeholder="请输入你的文本,确保已经正确填入cookies、user_id、channel_id"
)
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", show_progress=True)
# 为网站设置密码防止滥用
dialog_app.launch(auth=("admin", "2240560729"),show_error=True,show_api=True, inbrowser=True)
|