Commit
·
eb66930
0
Parent(s):
Duplicate from xiaolv/claude2_xiaolv_api_updata
Browse files- .gitattributes +34 -0
- README.md +14 -0
- app.py +211 -0
- gitattributes.txt +34 -0
- requirements.txt +14 -0
.gitattributes
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: New-Bing-with Your Cookies
|
3 |
+
emoji: 🐨
|
4 |
+
colorFrom: green
|
5 |
+
colorTo: pink
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 3.23.0
|
8 |
+
app_file: app.py
|
9 |
+
pinned: false
|
10 |
+
license: other
|
11 |
+
duplicated_from: xiaolv/claude2_xiaolv_api_updata
|
12 |
+
---
|
13 |
+
|
14 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app.py
ADDED
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json, requests
|
2 |
+
import gradio as gr
|
3 |
+
import uuid
|
4 |
+
import time
|
5 |
+
import random
|
6 |
+
|
7 |
+
|
8 |
+
# 创建新的聊天频道
|
9 |
+
def generate_uuid():
|
10 |
+
random_uuid = uuid.uuid4()
|
11 |
+
random_uuid_str = str(random_uuid)
|
12 |
+
formatted_uuid = f"{random_uuid_str[0:8]}-{random_uuid_str[9:13]}-{random_uuid_str[14:18]}-{random_uuid_str[19:23]}-{random_uuid_str[24:]}"
|
13 |
+
return formatted_uuid
|
14 |
+
|
15 |
+
|
16 |
+
# Deletes the conversation
|
17 |
+
def delete_conversation(user_id,channel_id,cookie):
|
18 |
+
url = f"https://claude.ai/api/organizations/{user_id}/chat_conversations/{channel_id}"
|
19 |
+
|
20 |
+
payload = json.dumps(f"{channel_id}")
|
21 |
+
headers = {
|
22 |
+
'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 Edg/114.0.1823.82',
|
23 |
+
'Accept-Language': 'en-US,en;q=0.5',
|
24 |
+
'Content-Type': 'application/json',
|
25 |
+
'Content-Length': '38',
|
26 |
+
'Referer': 'https://claude.ai/chats',
|
27 |
+
'Origin': 'https://claude.ai',
|
28 |
+
'Sec-Fetch-Dest': 'empty',
|
29 |
+
'Sec-Fetch-Mode': 'cors',
|
30 |
+
'Sec-Fetch-Site': 'same-origin',
|
31 |
+
'Connection': 'keep-alive',
|
32 |
+
'Cookie': f'{cookie}',
|
33 |
+
'TE': 'trailers'
|
34 |
+
}
|
35 |
+
|
36 |
+
response = requests.delete(url, headers=headers, data=payload)
|
37 |
+
# Returns True if deleted or False if any error in deleting
|
38 |
+
if response.status_code == 204:
|
39 |
+
return True
|
40 |
+
else:
|
41 |
+
return False
|
42 |
+
|
43 |
+
def create_new_chat(user_id,cookie):
|
44 |
+
url = f"https://claude.ai/api/organizations/{user_id}/chat_conversations"
|
45 |
+
uuid = generate_uuid()
|
46 |
+
|
47 |
+
payload = json.dumps({"uuid": uuid, "name": ""})
|
48 |
+
headers = {
|
49 |
+
'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 Edg/114.0.1823.82',
|
50 |
+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
51 |
+
'Referer': 'https://claude.ai/chats',
|
52 |
+
'Content-Type': 'application/json',
|
53 |
+
'Origin': 'https://claude.ai',
|
54 |
+
'Connection': 'keep-alive',
|
55 |
+
'Cookie': cookie,
|
56 |
+
'Sec-Fetch-Dest': 'empty',
|
57 |
+
'Sec-Fetch-Mode': 'cors',
|
58 |
+
'Sec-Fetch-Site': 'same-origin',
|
59 |
+
}
|
60 |
+
|
61 |
+
# response = requests.request("POST", url, headers=headers, data=payload)
|
62 |
+
# 使用代理,解决国内网络不能访问问题
|
63 |
+
# response = request("POST", url, headers=headers, data=payload, proxies=proxies)
|
64 |
+
response = requests.post(url, headers=headers, data=payload)
|
65 |
+
print(f"新的对话页面:{response.json()}")
|
66 |
+
|
67 |
+
# Returns JSON of the newly created conversation information
|
68 |
+
return response.json()
|
69 |
+
|
70 |
+
def request_to_v2(message, cookie, user_id,context=[]):
|
71 |
+
|
72 |
+
response_json = create_new_chat(user_id,cookie)
|
73 |
+
channel_id = response_json.get('uuid',"")
|
74 |
+
print(channel_id)
|
75 |
+
|
76 |
+
|
77 |
+
timeout = 5*60 #5分钟不回复,显示超时
|
78 |
+
context = [message]
|
79 |
+
headers = {
|
80 |
+
# ':Authority': 'claude.ai',
|
81 |
+
# ':Method': 'POST',
|
82 |
+
# ':Path': '/api/append_message',
|
83 |
+
# ':Scheme': 'https',
|
84 |
+
'Content-Type': 'application/json',
|
85 |
+
'Origin': 'https://claude.ai',
|
86 |
+
'Referer': f'https://claude.ai/chat/{channel_id}',
|
87 |
+
'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',
|
88 |
+
'Cookie': cookie,
|
89 |
+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
90 |
+
# 'Accept-Encoding': 'gzip, deflate, br',
|
91 |
+
'Accept': 'text/event-stream, text/event-stream',
|
92 |
+
'Sec-Ch-Ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"',
|
93 |
+
'Sec-Ch-Ua-Mobile': '?0',
|
94 |
+
'Sec-Ch-Ua-Platform': '"Windows"',
|
95 |
+
'Sec-Fetch-Dest': 'empty',
|
96 |
+
'Sec-Fetch-Mode': 'cors',
|
97 |
+
'Sec-Fetch-Site': 'same-origin',
|
98 |
+
'Connection': 'keep-alive',
|
99 |
+
}
|
100 |
+
post_msg_url = 'https://claude.ai/api/append_message'
|
101 |
+
post_msg_data = {
|
102 |
+
"completion":{
|
103 |
+
"incremental":True,
|
104 |
+
"prompt": message,
|
105 |
+
"timezone":"Asia/Shanghai",
|
106 |
+
"model":"claude-2"
|
107 |
+
},
|
108 |
+
"organization_uuid": user_id,
|
109 |
+
"conversation_uuid": channel_id,
|
110 |
+
"text": message,
|
111 |
+
"attachments": []
|
112 |
+
}
|
113 |
+
post_msg_data = json.dumps(post_msg_data)
|
114 |
+
# print(post_msg_data)
|
115 |
+
|
116 |
+
response = {
|
117 |
+
"status_code":-1,
|
118 |
+
"text":"报错啦"
|
119 |
+
}
|
120 |
+
|
121 |
+
try:
|
122 |
+
print(f"输入的问题:{message}")
|
123 |
+
response = requests.post(post_msg_url, headers=headers, data=post_msg_data, verify=False, stream=False,timeout = timeout)
|
124 |
+
bots = ""
|
125 |
+
print("a"*100)
|
126 |
+
for data in response.iter_lines():
|
127 |
+
if data:
|
128 |
+
# 将字节字符串转换为字符串
|
129 |
+
data_str = data.decode('utf-8')
|
130 |
+
# 删除开头的 "data: " 部分
|
131 |
+
data_str = data_str.replace("data: ", "")
|
132 |
+
data_json = json.loads(data_str)
|
133 |
+
# print(data_json)
|
134 |
+
bots += data_json["completion"]
|
135 |
+
print(bots)
|
136 |
+
context += [bots]
|
137 |
+
responses = [(u, b) for u, b in zip(context[::2], context[1::2])]
|
138 |
+
return responses, context
|
139 |
+
|
140 |
+
except Exception as e:
|
141 |
+
print(">>>>>> 查询失败")
|
142 |
+
print(e)
|
143 |
+
print(response.text)
|
144 |
+
|
145 |
+
response =">>>>>> 查询失败\n报错信息为:"+ str(e) + f"\n response信息:\n错误代码:{response.status_code}\n错误信息{response.text}"
|
146 |
+
context += [response]
|
147 |
+
responses = [(u, b) for u, b in zip(context[::2], context[1::2])]
|
148 |
+
|
149 |
+
return responses, context
|
150 |
+
|
151 |
+
finally:
|
152 |
+
time.sleep(random.uniform(1,2))
|
153 |
+
ds = delete_conversation(user_id,channel_id,cookie)
|
154 |
+
if ds:
|
155 |
+
print(f"成功删除")
|
156 |
+
else:
|
157 |
+
print(f"删除失败")
|
158 |
+
|
159 |
+
print("*-"*100)
|
160 |
+
|
161 |
+
|
162 |
+
|
163 |
+
with gr.Blocks() as dialog_app:
|
164 |
+
gr.HTML("""<h1 align="center">Claude2-API-xiaolv-第2版-单轮对话</h1>""")
|
165 |
+
with gr.Tab("Claude2 API xiaolv"):
|
166 |
+
gr.Markdown("""
|
167 |
+
## 需要传入的参数有:
|
168 |
+
1.cookie:intercom-device-id-lupk8zyo=8888
|
169 |
+
2.user_id:对应 organization_uuid
|
170 |
+
## 特点:
|
171 |
+
1. 根据传入的cookie 和 user_id 自动创建一个新的聊天频道(conversation_uuid/channel_id);
|
172 |
+
2. 在新的聊天聊天频道进行对话;
|
173 |
+
3. 请求放回后,自动删除新的聊天频道,避免频繁调用导致页面太多记录。
|
174 |
+
4. 模型只能进行一次聊天,对于特定场景比较有用,防止模型记住历史数据,影响模型对实际数据的输出额判断。
|
175 |
+
""")
|
176 |
+
gr.HTML(
|
177 |
+
"""5.如果想多轮对话的话,可以参考以下这个地址:<a href="https://huggingface.co/spaces/xiaolv/claude2_xiaolv">Claude2-API-xiaolv-第1版-多轮对话</a>如果喜欢请给个 💖 。"""
|
178 |
+
)
|
179 |
+
|
180 |
+
|
181 |
+
with gr.Row():
|
182 |
+
with gr.Column(scale=0.4):
|
183 |
+
cookies = gr.Textbox(lines=2, label="输入cookies")
|
184 |
+
user_id = gr.Textbox(lines=2, label="输入user_id/organization_uuid")
|
185 |
+
# channel_id = gr.Textbox(lines=2, label="输入channel_id/conversation_uuid")
|
186 |
+
# chatbot = gr.Chatbot()
|
187 |
+
with gr.Column(scale=0.6):
|
188 |
+
chatbot = gr.Chatbot([])
|
189 |
+
|
190 |
+
state = gr.State([])
|
191 |
+
|
192 |
+
with gr.Row():
|
193 |
+
inputs = gr.Textbox(
|
194 |
+
label="输入问题",
|
195 |
+
placeholder="请输入你的文本,确保已经正确填入cookies、user_id"
|
196 |
+
)
|
197 |
+
inputs.submit(request_to_v2, [inputs, cookies, user_id,state], [chatbot, state])
|
198 |
+
send = gr.Button("发送请求.....")
|
199 |
+
send.click(request_to_v2, [inputs, cookies, user_id,state], [chatbot, state], api_name="xiaolvgpt", show_progress=True)
|
200 |
+
|
201 |
+
|
202 |
+
gr.Markdown("""
|
203 |
+
清除历史记录是,请输入:```/resrt```""")
|
204 |
+
|
205 |
+
# 为网站设置密码防止滥用
|
206 |
+
# dialog_app.launch(auth=("admin", "2240560729"),show_error=True,show_api=True,share=True)
|
207 |
+
# dialog_app.launch(auth=("admin", "2240560729"),show_error=True)
|
208 |
+
dialog_app.launch(show_error=True)
|
209 |
+
# dialog_app.launch(show_error=True,show_api=True,share=True)
|
210 |
+
|
211 |
+
|
gitattributes.txt
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
requirements.txt
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
uuid
|
2 |
+
aiohttp
|
3 |
+
BingImageCreator
|
4 |
+
certifi
|
5 |
+
httpx
|
6 |
+
prompt_toolkit
|
7 |
+
requests
|
8 |
+
rich
|
9 |
+
gradio
|
10 |
+
requests
|
11 |
+
websockets
|
12 |
+
log2d
|
13 |
+
|
14 |
+
|