XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Show apology in Bing

a29b3db4
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

1 个文件 +29 -20
Modified g4f/Provider/Bing.py +29 -20
@@ -71,7 +71,12 @@ class Bing(AsyncGeneratorProvider):
71 71
72 72 gpt4_turbo = True if model.startswith("gpt-4-turbo") else False
73 73
74 return stream_generate(prompt, tone, image, context, cookies, get_connector(connector, proxy, True), proxy, web_search, gpt4_turbo, timeout)
74 return stream_generate(
75 prompt, tone, image, context, cookies,
76 get_connector(connector, proxy, True),
77 proxy, web_search, gpt4_turbo, timeout,
78 **kwargs
79 )
75 80
76 81 def create_context(messages: Messages) -> str:
77 82 """
@@ -80,10 +85,10 @@ def create_context(messages: Messages) -> str:
80 85 :param messages: A list of message dictionaries.
81 86 :return: A string representing the context created from the messages.
82 87 """
83 return "\n\n".join(
88 return "".join(
84 89 f"[{message['role']}]" + ("(#message)" if message['role'] != "system" else "(#additional_instructions)") + f"\n{message['content']}"
85 90 for message in messages
86 )
91 ) + "\n\n"
87 92
88 93 def get_ip_address() -> str:
89 94 return f"13.{random.randint(104, 107)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
@@ -312,8 +317,10 @@ async def stream_generate(
312 317 gpt4_turbo: bool = False,
313 318 timeout: int = 900,
314 319 conversation: Conversation = None,
320 raise_apology: bool = False,
315 321 max_retries: int = 5,
316 sleep_retry: int = 15
322 sleep_retry: int = 15,
323 **kwargs
317 324 ):
318 325 """
319 326 Asynchronously streams generated responses from the Bing API.
@@ -373,26 +380,28 @@ async def stream_generate(
373 380 response = json.loads(obj)
374 381 if response and response.get('type') == 1 and response['arguments'][0].get('messages'):
375 382 message = response['arguments'][0]['messages'][0]
383 print(message)
376 384 if message_id is not None and message_id != message["messageId"]:
377 385 returned_text = ''
378 386 message_id = message["messageId"]
379 387 image_response = None
380 if (message['contentOrigin'] != 'Apology'):
381 if 'adaptiveCards' in message:
382 card = message['adaptiveCards'][0]['body'][0]
383 if "text" in card:
384 response_txt = card.get('text')
385 if message.get('messageType') and "inlines" in card:
386 inline_txt = card['inlines'][0].get('text')
387 response_txt += inline_txt + '\n'
388 elif message.get('contentType') == "IMAGE":
389 prompt = message.get('text')
390 try:
391 image_client = BingCreateImages(cookies, proxy)
392 image_response = await image_client.create_async(prompt)
393 except Exception as e:
394 response_txt += f"\nhttps://www.bing.com/images/create?q={parse.quote(prompt)}"
395 do_read = False
388 if (raise_apology and message['contentOrigin'] == 'Apology'):
389 raise RuntimeError("Apology Response Error")
390 if 'adaptiveCards' in message:
391 card = message['adaptiveCards'][0]['body'][0]
392 if "text" in card:
393 response_txt = card.get('text')
394 if message.get('messageType') and "inlines" in card:
395 inline_txt = card['inlines'][0].get('text')
396 response_txt += inline_txt + '\n'
397 elif message.get('contentType') == "IMAGE":
398 prompt = message.get('text')
399 try:
400 image_client = BingCreateImages(cookies, proxy)
401 image_response = await image_client.create_async(prompt)
402 except Exception as e:
403 response_txt += f"\nhttps://www.bing.com/images/create?q={parse.quote(prompt)}"
404 do_read = False
396 405 if response_txt.startswith(returned_text):
397 406 new = response_txt[len(returned_text):]
398 407 if new != "\n":