|
@@ -1,3 +1,6 @@
|
|
|
+import asyncio
|
|
|
+import functools
|
|
|
+
|
|
|
from nio.events.room_events import RoomMessageText
|
|
|
from nio.rooms import MatrixRoom
|
|
|
|
|
@@ -8,7 +11,21 @@ async def command_classify(room: MatrixRoom, event: RoomMessageText, bot):
|
|
|
if prompt:
|
|
|
bot.logger.log("Classifying message...")
|
|
|
|
|
|
- response, tokens_used = bot.classification_api.classify_message(prompt, user=room.room_id)
|
|
|
+ try:
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
+ except Exception as e:
|
|
|
+ bot.logger.log(f"Error getting event loop: {e}", "error")
|
|
|
+ await bot.send_message(
|
|
|
+ room, "Something went wrong. Please try again.", True)
|
|
|
+ return
|
|
|
+
|
|
|
+ try:
|
|
|
+ classify_partial = functools.partial(bot.classification_api.classify_message, prompt, user=room.room_id)
|
|
|
+ response, tokens_used = await loop.run_in_executor(None, classify_partial)
|
|
|
+ except Exception as e:
|
|
|
+ bot.logger.log(f"Error classifying message: {e}", "error")
|
|
|
+ await bot.send_message(room, "Sorry, I couldn't classify the message. Please try again later.", True)
|
|
|
+ return
|
|
|
|
|
|
message = f"The message you provided seems to be of type: {response['type']}."
|
|
|
|
|
@@ -21,4 +38,4 @@ async def command_classify(room: MatrixRoom, event: RoomMessageText, bot):
|
|
|
|
|
|
return
|
|
|
|
|
|
- await bot.send_message(room, "You need to provide a prompt.", True)
|
|
|
+ await bot.send_message(room, "You need to provide a prompt.", True)
|