Update Bing.py

Added support the async function

Will implement proper cookie retrieval later but Bing is working for now
pull/851/head
Luneye 1 year ago committed by GitHub
parent e2e2f281e8
commit 87c7db73a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,16 +1,11 @@
import asyncio import asyncio, json, os, random, aiohttp
import json
import os
import random
import aiohttp
import asyncio
from aiohttp import ClientSession from aiohttp import ClientSession
from ..typing import Any, AsyncGenerator, CreateResult, Union from ..typing import Any, AsyncGenerator, CreateResult, Union
from .base_provider import BaseProvider from .base_provider import AsyncGeneratorProvider, get_cookies
class Bing(BaseProvider): class Bing(AsyncGeneratorProvider):
url = "https://bing.com/chat" url = "https://bing.com/chat"
supports_gpt_4 = True supports_gpt_4 = True
working=True working=True
@ -20,25 +15,22 @@ class Bing(BaseProvider):
def create_completion( def create_completion(
model: str, model: str,
messages: list[dict[str, str]], messages: list[dict[str, str]],
stream: bool, cookies: dict = None,
**kwargs: Any **kwargs
) -> CreateResult: ) -> AsyncGenerator:
yield from run(create(messages, **kwargs))
def create(
messages: list[dict[str, str]],
cookies: dict = {}
):
if len(messages) < 2: if len(messages) < 2:
prompt = messages[0]["content"] prompt = messages[0]["content"]
context = None context = None
else: else:
prompt = messages[-1]["content"] prompt = messages[-1]["content"]
context = convert(messages[:-1]) context = create_context(messages[:-1])
if cookies is None:
if not 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 = { #cookies = get_cookies(".bing.com")
cookies =
{
'MUID': '', 'MUID': '',
'BCP': '', 'BCP': '',
'MUIDB': '', 'MUIDB': '',
@ -66,7 +58,7 @@ def create(
return stream_generate(prompt, context, cookies) return stream_generate(prompt, context, cookies)
def convert(messages: list[dict[str, str]]): def create_context(messages: list[dict[str, str]]):
context = "" context = ""
for message in messages: for message in messages:

Loading…
Cancel
Save