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()
|