import copy import time import json from typing import Literal, Any import httpx from app.utils.logger import get_logger from app.utils.chatgpt_prompt import ChatgptService from app.utils.prompts.schemas import * from app.utils.prompts.prompts import * class SubtitleContentsGenerator(): def __init__(self): self.chatgpt_service = ChatgptService() async def generate_subtitle_contents(self, marketing_intelligence : dict[str, Any], pitching_label_list : list[Any], customer_name : str, detail_region_info : str) -> SubtitlePromptOutput: dynamic_subtitle_prompt = create_dynamic_subtitle_prompt(len(pitching_label_list)) pitching_label_string = "\n".join(pitching_label_list) marketing_intel_string = json.dumps(marketing_intelligence, ensure_ascii=False) input_data = { "marketing_intelligence" : marketing_intel_string , "pitching_tag_list_string" : pitching_label_string, "customer_name" : customer_name, "detail_region_info" : detail_region_info, } output_data = await self.chatgpt_service.generate_structured_output(dynamic_subtitle_prompt, input_data) return output_data