Spaces:
Running
Running
:recycle: [Refactor] Prettify names and comments
Browse files
conversation_connector.py
CHANGED
|
@@ -37,20 +37,23 @@ class ConversationConnectRequestHeadersConstructor:
|
|
| 37 |
class ConversationConnector:
|
| 38 |
def __init__(
|
| 39 |
self,
|
|
|
|
| 40 |
sec_access_token=None,
|
| 41 |
client_id=None,
|
| 42 |
conversation_id=None,
|
| 43 |
invocation_id=0,
|
| 44 |
cookies={},
|
| 45 |
):
|
|
|
|
| 46 |
self.sec_access_token = sec_access_token
|
|
|
|
| 47 |
self.client_id = client_id
|
| 48 |
self.conversation_id = conversation_id
|
| 49 |
self.invocation_id = invocation_id
|
| 50 |
self.cookies = cookies
|
| 51 |
self.ws_url = (
|
| 52 |
-
"wss://sydney.bing.com/sydney/ChatHub"
|
| 53 |
-
|
| 54 |
)
|
| 55 |
|
| 56 |
async def wss_send(self, message):
|
|
@@ -75,7 +78,7 @@ class ConversationConnector:
|
|
| 75 |
async def send_chathub_request(self, prompt):
|
| 76 |
chathub_request_constructor = ChathubRequestConstructor(
|
| 77 |
prompt=prompt,
|
| 78 |
-
conversation_style=
|
| 79 |
client_id=self.client_id,
|
| 80 |
conversation_id=self.conversation_id,
|
| 81 |
invocation_id=self.invocation_id,
|
|
@@ -99,19 +102,17 @@ class ConversationConnector:
|
|
| 99 |
for line in response_lines:
|
| 100 |
if not line:
|
| 101 |
continue
|
|
|
|
| 102 |
data = json.loads(line)
|
| 103 |
|
| 104 |
# Stream: Meaningful Messages
|
| 105 |
if data.get("type") == 1:
|
| 106 |
message_parser.parse(data)
|
| 107 |
-
# Stream: List of whole conversation
|
| 108 |
elif data.get("type") == 2:
|
| 109 |
if data.get("item"):
|
| 110 |
item = data.get("item")
|
| 111 |
logger.note("\n[Saving chat messages ...]")
|
| 112 |
-
# for message in item.get("messages"):
|
| 113 |
-
# author = message["author"]
|
| 114 |
-
# message_text = message["text"]
|
| 115 |
# Stream: End of Conversation
|
| 116 |
elif data.get("type") == 3:
|
| 117 |
logger.success("[Finished]")
|
|
@@ -119,12 +120,11 @@ class ConversationConnector:
|
|
| 119 |
await self.wss.close()
|
| 120 |
await self.aiohttp_session.close()
|
| 121 |
break
|
| 122 |
-
# Stream: Signal
|
| 123 |
elif data.get("type") == 6:
|
| 124 |
continue
|
| 125 |
# Stream: Not Monitored
|
| 126 |
else:
|
| 127 |
-
# pprint.pprint(data)
|
| 128 |
continue
|
| 129 |
|
| 130 |
|
|
|
|
| 37 |
class ConversationConnector:
|
| 38 |
def __init__(
|
| 39 |
self,
|
| 40 |
+
conversation_style="pecise",
|
| 41 |
sec_access_token=None,
|
| 42 |
client_id=None,
|
| 43 |
conversation_id=None,
|
| 44 |
invocation_id=0,
|
| 45 |
cookies={},
|
| 46 |
):
|
| 47 |
+
self.conversation_style = conversation_style
|
| 48 |
self.sec_access_token = sec_access_token
|
| 49 |
+
self.quotelized_sec_access_token = urllib.parse.quote(self.sec_access_token)
|
| 50 |
self.client_id = client_id
|
| 51 |
self.conversation_id = conversation_id
|
| 52 |
self.invocation_id = invocation_id
|
| 53 |
self.cookies = cookies
|
| 54 |
self.ws_url = (
|
| 55 |
+
f"wss://sydney.bing.com/sydney/ChatHub"
|
| 56 |
+
f"?sec_access_token={self.quotelized_sec_access_token}"
|
| 57 |
)
|
| 58 |
|
| 59 |
async def wss_send(self, message):
|
|
|
|
| 78 |
async def send_chathub_request(self, prompt):
|
| 79 |
chathub_request_constructor = ChathubRequestConstructor(
|
| 80 |
prompt=prompt,
|
| 81 |
+
conversation_style=self.conversation_style,
|
| 82 |
client_id=self.client_id,
|
| 83 |
conversation_id=self.conversation_id,
|
| 84 |
invocation_id=self.invocation_id,
|
|
|
|
| 102 |
for line in response_lines:
|
| 103 |
if not line:
|
| 104 |
continue
|
| 105 |
+
|
| 106 |
data = json.loads(line)
|
| 107 |
|
| 108 |
# Stream: Meaningful Messages
|
| 109 |
if data.get("type") == 1:
|
| 110 |
message_parser.parse(data)
|
| 111 |
+
# Stream: List of all messages in the whole conversation
|
| 112 |
elif data.get("type") == 2:
|
| 113 |
if data.get("item"):
|
| 114 |
item = data.get("item")
|
| 115 |
logger.note("\n[Saving chat messages ...]")
|
|
|
|
|
|
|
|
|
|
| 116 |
# Stream: End of Conversation
|
| 117 |
elif data.get("type") == 3:
|
| 118 |
logger.success("[Finished]")
|
|
|
|
| 120 |
await self.wss.close()
|
| 121 |
await self.aiohttp_session.close()
|
| 122 |
break
|
| 123 |
+
# Stream: Heartbeat Signal
|
| 124 |
elif data.get("type") == 6:
|
| 125 |
continue
|
| 126 |
# Stream: Not Monitored
|
| 127 |
else:
|
|
|
|
| 128 |
continue
|
| 129 |
|
| 130 |
|