File size: 1,352 Bytes
258e6df
 
 
 
 
 
 
3e43611
 
 
 
 
 
c42f537
258e6df
c42f537
258e6df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6b5ea8a
 
 
 
 
 
 
258e6df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from app.emotion_detector import detect_emotion
from app.response_generator import generate_support_message

from fastapi import FastAPI
from pydantic import BaseModel
from fastapi.responses import RedirectResponse

app = FastAPI(
    name="Moodmate API",
    version="1.0.0",
    title="Moodmate API",
    description="Emotion-aware NLP microservice for mental wellness support.",
)


# -------- Request Schemas --------

class EmotionRequest(BaseModel):
    text: str


class SupportRequest(BaseModel):
    text: str
    emotion: str


# -------- Endpoints --------


@app.get("/")
def root():
    return RedirectResponse(url="/docs")


@app.post("/analyze_emotion")
def analyze_emotion(request: EmotionRequest):
    emotion = detect_emotion(request.text)
    return {"emotion": emotion}


@app.post("/generate_support")
def generate_support(request: SupportRequest):
    message = generate_support_message(request.text, request.emotion)
    return {"support_message": message}


@app.get("/")
def health_check():
    return {"status": "MoodMate API is running"}


@app.post("/analyze_and_support")
def analyze_and_support(request: EmotionRequest):
    emotion = detect_emotion(request.text)
    message = generate_support_message(request.text, emotion)
    return {"emotion": emotion, "support_message": message}  


# -------- End of File --------