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줄씩 묶어서 최대 20줄 이내로 출력력. 입력: '{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("

'혜자 스크립트' Premium

") with gr.Row(): openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here") inputs = gr.Textbox(placeholder="여기에 입력하세요.", label="나레이션 스크립트를 생성하고 싶은 주제어나 문장, 지시문, URL(예시 참조)을 입력하세요.") 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년 신년 인사"], ["https://aitechtree.wordpress.com/2023/11/24/state-department-harnesses-ai-potential-unleashing-real-time-insights-and-leading-ethical-adoption-worldwide/ 이 url의 post를 기반으로 하라"], ["https://www.amazon.com/Cuckoo-CRP-RT0609FB-Pressure-Scorched-Options/dp/B087H24T6G?ref_=Oct_DLandingS_D_d34e1017_2&th=1/ 이 아마존 쇼핑 url의 상품정보를 기반으로 하라"], ["https://medium.com/@thakermadhav/build-your-own-rag-with-mistral-7b-and-langchain-97d0c92fa146/ 이 블로그 url의 post를 기반으로 하라"] ], inputs=[inputs], fn=predict, outputs=output) demo.launch()