Create handler.py
Browse files- handler.py +22 -0
handler.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import Dict, Any, List
|
| 2 |
+
from coresugg import create_conversation_starter_prompt, generate_conversation_starters, NUMBER_OF_MESSAGES_FOR_CONTEXT as NUMBER_OF_MESSAGES_FOR_CONTEXT_SUGG
|
| 3 |
+
from corechat import get_conversation_suggestions, NUMBER_OF_MESSAGES_FOR_CONTEXT as NUMBER_OF_MESSAGES_FOR_CONTEXT_CHAT
|
| 4 |
+
|
| 5 |
+
class EndpointHandler:
|
| 6 |
+
async def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]:
|
| 7 |
+
if "FromUserKavasQuestions" in data and "ToUserKavasQuestions" in data and "Chatmood" in data:
|
| 8 |
+
from_user_questions = data["FromUserKavasQuestions"][-NUMBER_OF_MESSAGES_FOR_CONTEXT_SUGG:]
|
| 9 |
+
to_user_questions = data["ToUserKavasQuestions"][-NUMBER_OF_MESSAGES_FOR_CONTEXT_SUGG:]
|
| 10 |
+
ai_prompt = create_conversation_starter_prompt(from_user_questions + to_user_questions, data["Chatmood"])
|
| 11 |
+
conversation_starters = generate_conversation_starters(ai_prompt)
|
| 12 |
+
return [{"conversation_starters": conversation_starters}]
|
| 13 |
+
|
| 14 |
+
elif "LastChatMessages" in data:
|
| 15 |
+
last_chat_messages = data["LastChatMessages"][-NUMBER_OF_MESSAGES_FOR_CONTEXT_CHAT:]
|
| 16 |
+
suggestions = get_conversation_suggestions(last_chat_messages)
|
| 17 |
+
return [{"version": "1.0.0-alpha", "suggested_responses": suggestions}]
|
| 18 |
+
|
| 19 |
+
else:
|
| 20 |
+
raise ValueError("Invalid JSON structure")
|
| 21 |
+
|
| 22 |
+
handler = EndpointHandler()
|