diff options
author | Tekky <98614666+xtekky@users.noreply.github.com> | 2023-08-28 22:08:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-28 22:08:09 +0200 |
commit | a11b5baaa447e369b640553ef588159cf7ab443f (patch) | |
tree | 4034e8ae9fc7ca9af295f04358bb00516b464e0b /g4f | |
parent | Add async support for H2o (diff) | |
parent | Merge pull request #851 from Luneye/patch-1 (diff) | |
download | gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar.gz gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar.bz2 gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar.lz gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar.xz gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.tar.zst gpt4free-a11b5baaa447e369b640553ef588159cf7ab443f.zip |
Diffstat (limited to 'g4f')
-rw-r--r-- | g4f/Provider/Bing.py | 92 |
1 files changed, 64 insertions, 28 deletions
diff --git a/g4f/Provider/Bing.py b/g4f/Provider/Bing.py index 84be4212..5910c6b4 100644 --- a/g4f/Provider/Bing.py +++ b/g4f/Provider/Bing.py @@ -23,12 +23,38 @@ class Bing(AsyncGeneratorProvider): if len(messages) < 2: prompt = messages[0]["content"] context = None - else: prompt = messages[-1]["content"] context = create_context(messages[:-1]) - - return stream_generate(prompt, context, cookies) + + if cookies: + #TODO: Will implement proper cookie retrieval later and use a try-except mechanism in 'stream_generate' instead of defaulting the cookie value like this + cookies_dict = { + 'MUID': '', + 'BCP': '', + 'MUIDB': '', + 'USRLOC': '', + 'SRCHD': 'AF=hpcodx', + 'MMCASM': '', + '_UR': '', + 'ANON': '', + 'NAP': '', + 'ABDEF': '', + 'PPLState': '1', + 'KievRPSSecAuth': '', + '_U': '', + 'SUID': '', + '_EDGE_S': '', + 'WLS': '', + '_HPVN': '', + '_SS': '', + '_clck': '', + 'SRCHUSR': '', + '_RwBf': '', + 'SRCHHPGUSR': '', + 'ipv6': '', + } + return stream_generate(prompt, context, cookies_dict) def create_context(messages: list[dict[str, str]]): context = "" @@ -155,32 +181,34 @@ class Defaults: 'x-forwarded-for': ip_address, } - optionsSets = [ - 'saharasugg', - 'enablenewsfc', - 'clgalileo', - 'gencontentv3', - "nlu_direct_response_filter", - "deepleo", - "disable_emoji_spoken_text", - "responsible_ai_policy_235", - "enablemm", - "h3precise" - "dtappid", - "cricinfo", - "cricinfov2", - "dv3sugg", - "nojbfedge" - ] + optionsSets = { + "optionsSets": [ + 'saharasugg', + 'enablenewsfc', + 'clgalileo', + 'gencontentv3', + "nlu_direct_response_filter", + "deepleo", + "disable_emoji_spoken_text", + "responsible_ai_policy_235", + "enablemm", + "h3precise" + "dtappid", + "cricinfo", + "cricinfov2", + "dv3sugg", + "nojbfedge" + ] + } -def format_message(message: dict) -> str: - return json.dumps(message, ensure_ascii=False) + Defaults.delimiter +def format_message(msg: dict) -> str: + return json.dumps(msg, ensure_ascii=False) + Defaults.delimiter def create_message(conversation: Conversation, prompt: str, context: str=None) -> str: struct = { 'arguments': [ { - 'optionsSets': Defaults.optionsSets, + **Defaults.optionsSets, 'source': 'cib', 'allowedMessageTypes': Defaults.allowedMessageTypes, 'sliceIds': Defaults.sliceIds, @@ -260,10 +288,6 @@ async def stream_generate( response_txt += inline_txt + '\n' result_text += inline_txt + '\n' - if returned_text.endswith(' '): - final = True - break - if response_txt.startswith(returned_text): new = response_txt[len(returned_text):] if new != "\n": @@ -276,4 +300,16 @@ async def stream_generate( final = True break finally: - await delete_conversation(session, conversation)
\ No newline at end of file + await delete_conversation(session, conversation) + +def run(generator: AsyncGenerator[Union[Any, str], Any]): + loop = asyncio.get_event_loop() + gen = generator.__aiter__() + + while True: + try: + yield loop.run_until_complete(gen.__anext__()) + + except StopAsyncIteration: + break + |