Skip to content

Commit

Permalink
edge 流式输出
Browse files Browse the repository at this point in the history
  • Loading branch information
yym68686 committed May 17, 2023
1 parent fc6115e commit c2415b5
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 42 deletions.
117 changes: 78 additions & 39 deletions AI.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@

class AIBot:
def __init__(self):
self.LastMessage_id = ''
self.mess = ''

self.bingcookie = COOKIES
self.conversationStyle = ConversationStyle.balanced

if self.bingcookie:
try:
self.Bingbot = BingAI(cookies=json.loads(self.bingcookie))
Expand All @@ -32,15 +30,78 @@ def __init__(self):
print("nick:", self.botNick)

async def getBing(self, message, update, context):
messageid = 0
result = ''
prompt = ""
modifytime = 0
try:
# creative balanced precise
result = await self.Bingbot.ask(prompt=prompt + message, conversation_style=self.conversationStyle)
# result = self.Bingbot.ask_stream(prompt=prompt + message, conversation_style=self.conversationStyle)
async for result in self.Bingbot.ask_stream(prompt=prompt + message, conversation_style=self.conversationStyle):
if result[0] == True:
break
if "[1]:" in result[1].split("\n\n")[0]:
result = "\n\n".join(result[1].split("\n\n")[1:])
result = re.sub(r"\[\^\d+\^\]", '', result)
else:
result = result[1]
result = re.sub(r"\[\^\d+\^\]", '', result)
print(str(modifytime) + " " + result, end="\r", flush=True)
result = f"🤖️ Bing\n\n" + result
if messageid == 0:
message = await context.bot.send_message(
chat_id=update.message.chat_id,
text=escape(result),
parse_mode='MarkdownV2',
reply_to_message_id=update.message.message_id,
)
messageid = message.message_id
else:
modifytime = modifytime + 1
try:
if modifytime < 128:
await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=escape(result), parse_mode='MarkdownV2')
else:
await context.bot.delete_message(chat_id=update.message.chat_id, message_id=messageid)
messageid = 0
modifytime = 0
except:
pass
result = result[1]
numMessages = result["item"]["throttling"]["numUserMessagesInConversation"]
maxNumMessages = result["item"]["throttling"]["maxNumUserMessagesInConversation"]
print(numMessages, "/", maxNumMessages, end="")
result = result["item"]["messages"][1]["text"]
# print(numMessages, "/", maxNumMessages, end="")
message = result["item"]["messages"][1]["text"]
print(result["item"]["messages"][1]["text"])
try:
print("\n\n" + result["item"]["messages"][1]["adaptiveCards"][0]["body"][0]["text"])
learnmoretext = result["item"]["messages"][1]["adaptiveCards"][0]["body"][1]["text"]
except:
learnmoretext = ""
result = f"🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + message + "\n\n" + learnmoretext
await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=escape(result), parse_mode='MarkdownV2')

# # creative balanced precise
# result = await self.Bingbot.ask(prompt=prompt + message, conversation_style=ConversationStyle.creative)
# # print(result)
# numMessages = result["item"]["throttling"]["numUserMessagesInConversation"]
# maxNumMessages = result["item"]["throttling"]["maxNumUserMessagesInConversation"]
# print(numMessages, "/", maxNumMessages, end="")
# message = result["item"]["messages"][1]["text"]
# print(result["item"]["messages"][1]["text"])
# try:
# print("\n\n" + result["item"]["messages"][1]["adaptiveCards"][0]["body"][0]["text"])
# learnmoretext = result["item"]["messages"][1]["adaptiveCards"][0]["body"][1]["text"]
# except:
# learnmoretext = ""
# result = message + "\n\n" + learnmoretext
# message = await context.bot.send_message(
# chat_id=update.message.chat_id,
# text=escape(f"🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + result),
# parse_mode='MarkdownV2',
# reply_to_message_id=update.message.message_id,
# )

if numMessages == maxNumMessages:
await self.Bingbot.reset()
except Exception as e:
Expand All @@ -54,20 +115,6 @@ async def getBing(self, message, update, context):
await self.Bingbot.reset()
result = re.sub(r"\[\^\d+\^\]", '', result)
print(" BingAI", result)
if self.LastMessage_id == '':
message = await context.bot.send_message(
chat_id=update.message.chat_id,
text=escape(f"🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + result),
parse_mode='MarkdownV2',
reply_to_message_id=update.message.message_id,
)
self.mess = f"🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + result
if self.bingcookie and API:
self.LastMessage_id = message.message_id
else:
await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=self.LastMessage_id, text=escape(self.mess + f"\n\n\n🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + result), parse_mode='MarkdownV2')
self.LastMessage_id = ''
self.mess = ''

async def resetBing(self):
await self.Bingbot.reset()
Expand All @@ -76,6 +123,12 @@ async def getChatGPT(self, message, update, context):
result = ''
try:
result = self.ChatGPTbot.ask(message)
message = await context.bot.send_message(
chat_id=update.message.chat_id,
text=escape("🤖️ ChatGPT3.5\n\n" + result),
parse_mode='MarkdownV2',
reply_to_message_id=update.message.message_id,
)
except Exception as e:
print('\033[31m')
print("response_msg", result)
Expand All @@ -87,24 +140,10 @@ async def getChatGPT(self, message, update, context):
result = "ChatGPT 出错啦。"
self.ChatGPTbot.reset()
print("ChatGPT", result)
if self.LastMessage_id == '':
message = await context.bot.send_message(
chat_id=update.message.chat_id,
text=escape("🤖️ ChatGPT3.5\n\n" + result),
parse_mode='MarkdownV2',
reply_to_message_id=update.message.message_id,
)
if self.bingcookie and API:
self.LastMessage_id = message.message_id
self.mess = "🤖️ ChatGPT3.5\n\n" + result
else:
await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=self.LastMessage_id, text=escape(self.mess + "\n\n\n🤖️ ChatGPT3.5\n\n" + result), parse_mode='MarkdownV2')
self.LastMessage_id = ''
self.mess = ''

async def getResult(self, update, context):
await context.bot.send_chat_action(chat_id=update.message.chat_id, action=ChatAction.TYPING)
self.LastMessage_id = ''
# self.LastMessage_id = ''
print("\033[32m", update.effective_user.username, update.effective_user.id, update.message.text, "\033[0m")
chat_content = update.message.text if NICK is None else update.message.text[self.botNicKLength:].strip() if update.message.text[:self.botNicKLength].lower() == self.botNick else None
if self.bingcookie and chat_content:
Expand All @@ -122,8 +161,6 @@ async def reset_chat(self, update, context):
chat_id=update.message.chat_id,
text="重置成功!",
)
self.LastMessage_id = ''
self.mess = ''

async def creative_bing(self, update, context):
await self.reset_chat(update, context)
Expand All @@ -142,11 +179,13 @@ async def en2zhtranslator(self, update, context):
if len(context.args) > 0:
message = ' '.join(context.args)
chat_content = prompt + message + '"'
print("\033[32m")
print("en2zh", message)
print("\033[0m")
if API and message:
await self.getChatGPT(chat_content, update, context)
self.LastMessage_id = ''
self.mess = ''
# self.LastMessage_id = ''
# self.mess = ''
else:
message = await context.bot.send_message(
chat_id=update.message.chat_id,
Expand Down
8 changes: 5 additions & 3 deletions md2tgmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ def escapeshape(text):
poslist = [0]
strlist = []
originstr = []
regex = r"(#+\s.+?$)|```[\D\d\s]+?```"
regex = r"(^#+\s.+?$)|```[\D\d\s]+?```"
matches = re.finditer(regex, text, re.MULTILINE)
for match in matches:
start = match.start(1)
Expand Down Expand Up @@ -73,14 +73,16 @@ def escape(text):
![1.0.0](http://version.com)
- item 1 -
* item 2
* item 2 #
* item 3 ~
sudo apt install mesa-utils # 安装
```python
print("1.1")_
```
And simple text with + some - **symbols**.
And simple text `with-ten` + some - **symbols**. # `with-ten`里面的`-`不会被转义
```
Expand Down

0 comments on commit c2415b5

Please sign in to comment.