diff --git a/README.md b/README.md index 23d04a6..4e25a82 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,13 @@ ## Introduction This is a simple Matrix bot that uses OpenAI's GPT API and Bing AI to generate responses to user inputs. The bot responds to four types of prompts: `!gpt`, `!chat` and `!bing` and `!pic` depending on the first word of the prompt. -![2023-04-11_14-18](https://user-images.githubusercontent.com/32976627/231073146-3e380217-a6a2-413d-9203-ab36965b909d.png) -![demo](https://i.imgur.com/kK4rnPf.jpeg) +![demo](https://i.imgur.com/kK4rnPf.jpeg "demo") + ## Feature 1. Support openai and Bing AI 2. Support Bing Image Creator 3. Support E2E Encrypted Room -4. Colorful code blocks ## Installation and Setup diff --git a/askgpt.py b/askgpt.py index c840284..1b1c083 100644 --- a/askgpt.py +++ b/askgpt.py @@ -36,4 +36,4 @@ class askGPT: resp = await response.read() return json.loads(resp)['choices'][0]['message']['content'] except Exception as e: - logger.error("Error Exception", exc_info=True) + raise Exception(e) diff --git a/bing.py b/bing.py index 15350cc..d14b3a7 100644 --- a/bing.py +++ b/bing.py @@ -47,6 +47,6 @@ class BingBot: return json_body['response'] except Exception as e: logger.error("Error Exception", exc_info=True) - print(f"Error: {e}") - pass + + return "Error, please retry" diff --git a/bot.py b/bot.py index 0390169..9764e68 100644 --- a/bot.py +++ b/bot.py @@ -495,14 +495,14 @@ class Bot: try: text = await asyncio.wait_for(self.chatbot.ask_async(prompt), timeout=180) except TimeoutError as e: - logger.error("timeoutException", exc_info=True) - text = "Timeout error" + logger.error(f"TimeoutException: {e}", exc_info=True) + raise Exception("Timeout error") except Exception as e: - logger.error("Error", exc_info=True) - print(f"Error: {e}") + raise Exception(e) - text = text.strip() + try: + text = text.strip() await send_room_message(self.client, room_id, reply_message=text, reply_to_event_id="", sender_id=sender_id, user_message=raw_user_message, markdown_formatted=self.markdown_formatted) except Exception as e: @@ -516,11 +516,14 @@ class Bot: # timeout 120s text = await asyncio.wait_for(self.askgpt.oneTimeAsk(prompt, self.chatgpt_api_endpoint, self.headers), timeout=180) except TimeoutError: - logger.error("timeoutException", exc_info=True) - text = "Timeout error" + logger.error("TimeoutException", exc_info=True) + raise Exception("Timeout error") + except Exception as e: + raise Exception(e) - text = text.strip() + try: + text = text.strip() await send_room_message(self.client, room_id, reply_message=text, reply_to_event_id="", sender_id=sender_id, user_message=raw_user_message, markdown_formatted=self.markdown_formatted) except Exception as e: @@ -535,9 +538,13 @@ class Bot: text = await asyncio.wait_for(self.bingbot.ask_bing(prompt), timeout=180) except TimeoutError: logger.error("timeoutException", exc_info=True) - text = "Timeout error" - text = text.strip() + raise Exception("Timeout error") + except Exception as e: + raise Exception(e) + + try: + text = text.strip() await send_room_message(self.client, room_id, reply_message=text, reply_to_event_id="", sender_id=sender_id, user_message=raw_user_message, markdown_formatted=self.markdown_formatted) except Exception as e: diff --git a/send_image.py b/send_image.py index 3378d44..3e363d5 100644 --- a/send_image.py +++ b/send_image.py @@ -59,3 +59,4 @@ async def send_room_image(client: AsyncClient, except Exception as e: logger.error( f"Image send of file {image} failed.\n Error: {e}", exc_info=True) + raise Exception(e)