import gradio as gr import requests import json API_URL = "https://api.openai.com/v1/chat/completions" def predict(inputs, top_p, temperature, openai_api_key): narration_prompt = f"동영상에 사용할 전문적인 나레이션을 작성하라. 반드시 한글로 작성할것. 일체의 지문이나 지시, 배경 설명 등을 노출 하거나 출력하지 말고 순수한 나레이션만 2줄씩 묶어서 최대 10줄 이내로 출력력. 입력: '{inputs}'" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {openai_api_key}" } payload = { "model": "gpt-4-1106-preview", "messages": [{"role": "system", "content": narration_prompt}], "temperature": temperature, "top_p": top_p, "n": 1, "max_tokens": 1000 } response = requests.post(API_URL, headers=headers, json=payload) if response.status_code == 200: response_data = response.json() generated_text = response_data['choices'][0]['message']['content'] return generated_text else: return "Error: Unable to generate response." with gr.Blocks() as demo: gr.Markdown("

혜자 스크립트

") with gr.Row(): openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here") inputs = gr.Textbox(placeholder="여기에 입력하세요.", label="나레이션 스크립트를 생성하고 싶은 주제어나 문장을 입력하세요.") top_p = gr.Slider(minimum=0, maximum=1.0, value=1.0, step=0.05, label="Top-p (nucleus sampling)") temperature = gr.Slider(minimum=0, maximum=5.0, value=1.0, step=0.1, label="Temperature") output = gr.Textbox(label="Generated Script", readonly=True) submit_button = gr.Button("Generate") submit_button.click(fn=predict, inputs=[inputs, top_p, temperature, openai_api_key], outputs=output) examples = gr.Examples(examples=[ ["상품 설명:새로 출시된 '토리' 립밤은 FDA 승인, 최고의 보습력, 구매지수 1위"], ["브랜딩: '토리'립밤은 20대 여성에게 어필할 브랜딩이 필요해"], ["광고: 설날 부모님과 친지 선물은 법성포 보리굴비 '법성굴비'가 최고랍니다."], ["정보 공유: 비타민C 과다 복용은 건강에 오히려 해롭다."], ["홍보: 'OpenAI'는 '챗GPT'의 맞춤 GPT '스토어'를 오픈하였다."], ["인사: '애플 법인'의 고객과 임직원을 위한 진취적인 2024년 신년 인사"] ], inputs=[inputs], fn=predict, outputs=output) demo.launch()