import requests from app.shared.logger import setup_logger from app.core.env_setting import EnvSetting from pydantic import BaseModel logger = setup_logger(__name__) settings = EnvSetting() class CreateMusic(BaseModel): lyrics: str class MurekaServiceFix: def __init__(self): self.api_key = settings.MUSREKA_API_KEYS self.base_url = "https://api.mureka.ai" self.headers = { "Content-Type": "application/json", "Authorization": f"Bearer {self.api_key}" } # mureka 연동 확인 # 실제 connect 확인 api가 없으므로, billing 확인 api로 대체 def connect_mureka(self): url = f"{self.base_url}/v1/account/billing" response = requests.get(url, headers=self.headers) return response.json() # 노래 생성 def generate_music(self, lyrics: str, prompt: str): url = f"{self.base_url}/v1/song/generate" body = { "lyrics": lyrics, "prompt": prompt } body = {k: v for k, v in body.items() if v is not None} logger.info(f"create music body: {body}") response = requests.post( url, headers=self.headers, json=body ) return response.json() # 노래 확인 def get_music(self, task_id: str): url = f"{self.base_url}/v1/song/query/{task_id}" response = requests.get(url, headers=self.headers) return response.json()