Musombi commited on
Commit
d868109
·
verified ·
1 Parent(s): f027afd

Create # app.py

Browse files
Files changed (1) hide show
  1. # app.py +39 -0
# app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+
3
+ import uvicorn
4
+ from fastapi import FastAPI, Query
5
+ from fastapi.responses import JSONResponse
6
+ from test_music_generator_only import music_model, DEVICE, generate_music
7
+
8
+ app = FastAPI(title="MusicGenerator API")
9
+
10
+ # ================================
11
+ # Health check endpoint
12
+ # ================================
13
+ @app.get("/health")
14
+ def health_check():
15
+ return {"status": "ok", "device": DEVICE}
16
+
17
+ # ================================
18
+ # Generate music endpoint
19
+ # ================================
20
+ @app.get("/generate")
21
+ def generate(prompt: str = Query(None, description="Optional text prompt for music generation"),
22
+ seq_len: int = Query(64, description="Length of music sequence to generate")):
23
+ """
24
+ Generate a music sequence using MusicGenerator.
25
+ Returns the output as a JSON array.
26
+ """
27
+ try:
28
+ output = generate_music(prompt=prompt, seq_len=seq_len)
29
+ # convert tensor to list
30
+ output_list = output.squeeze(0).cpu().tolist()
31
+ return JSONResponse(content={"prompt": prompt, "seq_len": seq_len, "output": output_list})
32
+ except Exception as e:
33
+ return JSONResponse(content={"error": str(e)}, status_code=500)
34
+
35
+ # ================================
36
+ # Run app
37
+ # ================================
38
+ if __name__ == "__main__":
39
+ uvicorn.run(app, host="0.0.0.0", port=8000)