Spaces:
Paused
Paused
| import random | |
| import uuid | |
| from conversations import ConversationStyle | |
| class SystemPromptContextConstructor: | |
| # https://github.com/weaigc/bingo/blob/eaebba306d5f68b940e4486ad81897516d0db0f3/src/lib/bots/bing/index.ts#L205-L211 | |
| # https://github.com/weaigc/bingo/blob/eaebba306d5f68b940e4486ad81897516d0db0f3/src/lib/bots/bing/index.ts#L296 | |
| def __init__(self, system_prompt: str = None): | |
| self.system_prompt = system_prompt | |
| self.construct() | |
| def construct(self): | |
| if self.system_prompt: | |
| self.system_context = [ | |
| { | |
| "author": "user", | |
| "description": self.system_prompt, | |
| "contextType": "WebPage", | |
| "messageType": "Context", | |
| "messageId": "discover-web--page-ping-mriduna-----", | |
| } | |
| ] | |
| else: | |
| self.system_context = None | |
| class ChathubRequestPayloadConstructor: | |
| def __init__( | |
| self, | |
| prompt: str, | |
| client_id: str, | |
| conversation_id: str, | |
| invocation_id: int = 0, | |
| conversation_style: str = ConversationStyle.PRECISE.value, | |
| system_prompt: str = None, | |
| ): | |
| self.prompt = prompt | |
| self.client_id = client_id | |
| self.conversation_id = conversation_id | |
| self.invocation_id = invocation_id | |
| self.conversation_style = conversation_style.lower() | |
| if self.conversation_style.endswith("offline"): | |
| self.enable_search = False | |
| self.conversation_style = self.conversation_style.replace("-offline", "") | |
| else: | |
| self.enable_search = True | |
| self.message_id = self.generate_random_uuid() | |
| self.system_prompt = system_prompt | |
| 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 set_options_sets(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", | |
| ] | |
| options_sets_by_styles = { | |
| "precise": options_sets_body | |
| + [ | |
| "h3precise", | |
| "clgalileo", | |
| "gencontentv3", | |
| ], | |
| "balanced": options_sets_body | |
| + [ | |
| "galileo", | |
| "saharagenconv5", | |
| ], | |
| "creative": options_sets_body | |
| + [ | |
| "h3imaginative", | |
| "clgalileo", | |
| "gencontentv3", | |
| ], | |
| } | |
| self.options_sets = options_sets_by_styles[self.conversation_style] | |
| def set_search_options(self): | |
| self.plugins = [] | |
| if self.enable_search: | |
| self.plugins.append({"id": "c310c353-b9f0-4d76-ab0d-1dd5e979cf68"}) | |
| else: | |
| self.options_sets.append("nosearchall") | |
| def set_system_context(self): | |
| self.system_context = SystemPromptContextConstructor( | |
| self.system_prompt | |
| ).system_context | |
| def construct(self): | |
| self.set_options_sets() | |
| self.set_search_options() | |
| self.set_system_context() | |
| self.request_payload = { | |
| "arguments": [ | |
| { | |
| "source": "cib", | |
| "optionsSets": self.options_sets, | |
| "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": self.plugins, | |
| "previousMessages": self.system_context, | |
| "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, | |
| } | |