33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
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
|
|
|
|
|
|
|
|
|