bing-chat-api / networks /chathub_request_payload_constructor.py
Hansimov's picture
:boom: [Fix] ConversationStyle: Typing check
9c64311
raw
history blame
5.28 kB
import random
import uuid
from conversations import ConversationStyle
class ChathubRequestPayloadConstructor:
def __init__(
self,
prompt,
client_id: str,
conversation_id: str,
invocation_id: int = 0,
conversation_style: str = ConversationStyle.PRECISE.value,
):
self.prompt = prompt
self.client_id = client_id
self.conversation_id = conversation_id
self.invocation_id = invocation_id
self.conversation_style = conversation_style
self.message_id = self.generate_random_uuid()
self.construct()
def generate_random_uuid(self):
return str(uuid.uuid4())
def generate_random_hex_str(self, length: int = 32) -> str:
return "".join(random.choice("0123456789abcdef") for _ in range(length))
def construct(self):
options_sets_body = [
"nlu_direct_response_filter",
"deepleo",
"disable_emoji_spoken_text",
"responsible_ai_policy_235",
"enablemm",
"dv3sugg",
"autosave",
"iyxapbing",
"iycapbing",
"rai289",
"enflst",
"enpcktrk",
"rcaldictans",
"rcaltimeans",
"eredirecturl",
]
styles_options_sets = {
"precise": options_sets_body
+ [
"h3precise",
"clgalileo",
"gencontentv3",
],
"balanced": options_sets_body
+ [
"galileo",
"saharagenconv5",
],
"creative": options_sets_body
+ [
"h3imaginative",
"clgalileo",
"gencontentv3",
],
}
self.request_payload = {
"arguments": [
{
"source": "cib",
"optionsSets": styles_options_sets[self.conversation_style],
"allowedMessageTypes": [
"ActionRequest",
"Chat",
"ConfirmationCard",
"Context",
"InternalSearchQuery",
"InternalSearchResult",
"Disengaged",
"InternalLoaderMessage",
"InvokeAction",
"Progress",
"RenderCardRequest",
"RenderContentRequest",
"AdsQuery",
"SemanticSerp",
"GenerateContentQuery",
"SearchQuery",
],
"sliceIds": [
"techpillscf",
"gbaa",
"gba",
"gbapa",
"codecreator",
"dlidcf",
"specedge",
"preall15",
"suppsm240-t",
"translref",
"ardsw_1_9_9",
"fluxnosearchc",
"fluxnosearch",
"1115rai289",
"1119backoss0",
"124multi2t",
"1129gpt4ts0",
"kchero50cf",
"cacfastapis",
"cacdupereccf",
"cacmuidarb",
"cacfrwebt2cf",
"sswebtop2cf",
],
"verbosity": "verbose",
"scenario": "SERP",
"plugins": [
{"id": "c310c353-b9f0-4d76-ab0d-1dd5e979cf68"},
],
"traceId": self.generate_random_hex_str(),
"conversationHistoryOptionsSets": [
"autosave",
"savemem",
"uprofupd",
"uprofgen",
],
"isStartOfSession": self.invocation_id == 0,
"requestId": self.message_id,
"message": {
"author": "user",
"inputMethod": "Keyboard",
"text": self.prompt,
"messageType": "Chat",
"requestId": self.message_id, # "a6ecd3aa-1007-6959-52fb-9e23f34e86be",
"messageId": self.message_id, # "a6ecd3aa-1007-6959-52fb-9e23f34e86be",
},
"tone": self.conversation_style.capitalize(),
"spokenTextMode": "None",
"conversationId": self.conversation_id, # "51D|BingProdUnAuthenticatedUsers|65761F31183134340AFD8F9AF1532EA90DC7F11ED348765DE9BAC956C9BA4669",
"participant": {
"id": self.client_id, # "23EBCCB7073868D70172DF780674692D",
},
}
],
"invocationId": str(self.invocation_id),
"target": "chat",
"type": 4,
}