Spaces:
Running
Running
File size: 4,229 Bytes
48d64c3 c391acc 4fc48ee 48d64c3 4d98764 a86f939 48d64c3 dd82a48 9ffe8f1 48d64c3 dd82a48 48d64c3 c55c175 4fc48ee ec58988 5e77b4d 48d64c3 6e62712 10214ac 5e77b4d ec58988 48d64c3 5e77b4d 48d64c3 5e77b4d 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 |
import json, requests
import gradio as gr
def request_to_v2(message, cookie, user_id, channel_id,context=[]):
timeout = 5*60 #5分钟不回复,显示超时
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,timeout = timeout)
bots = ""
print("a"*100)
for data in response.iter_lines():
if data:
# 将字节字符串转换为字符串
data_str = data.decode('utf-8')
# 删除开头的 "data: " 部分
data_str = data_str.replace("data: ", "")
data_json = json.loads(data_str)
# print(data_json)
bots += data_json["completion"]
print(bots)
context += [bots]
responses = [(u, b) for u, b in zip(context[::2], context[1::2])]
return responses, context
except Exception as e:
print(">>>>>> 查询失败")
print(e)
response =">>>>>> 查询失败\n报错信息为:"+ str(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)
|