imgtest2 / app.py
seawolf2357's picture
Update app.py
32a70d2 verified
raw
history blame
2.69 kB
import gradio as gr
import requests
import json
from transformers import pipeline
API_URL = "https://api.openai.com/v1/chat/completions"
# λ²ˆμ—­ νŒŒμ΄ν”„λΌμΈ μ΄ˆκΈ°ν™”
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en")
def translate_text(text):
# μž…λ ₯된 ν…μŠ€νŠΈλ₯Ό μ˜μ–΄λ‘œ λ²ˆμ—­
translation = translator(text, max_length=512)
translated_text = translation[0]['translation_text']
return translated_text
def predict(inputs, top_p, temperature, openai_api_key):
narration_prompt = f"μ•„λ™μš© μ• λ‹ˆλ©”μ΄μ…˜ λ™μ˜μƒμ— μ‚¬μš©ν•  슀크립트λ₯Ό μž‘μ„±ν•˜λΌ. λ°˜λ“œμ‹œ ν•œκΈ€λ‘œ μž‘μ„±ν• κ²ƒ. μž…λ ₯: '{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."
def generate_prompts(script):
# 슀크립트의 각 쀄을 μ˜μ–΄λ‘œ λ²ˆμ—­ν•˜μ—¬ ν”„λ‘¬ν”„νŠΈ 생성
lines = script.split('\n')
translated_prompts = [translate_text(line) for line in lines if line.strip() != '']
return "\n".join(translated_prompts)
with gr.Blocks() as demo:
gr.Markdown("<h1 align='center'>ν† λ¦¬μ˜ λͺ¨ν—˜: 3D μ• λ‹ˆλ©”μ΄μ…˜ 생성기</h1>")
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)
prompts_output = gr.TextArea(label="Translated Image Generation Prompts", readonly=True)
submit_button = gr.Button("Generate Script")
prompts_button = gr.Button("Translate Prompts")
submit_button.click(fn=predict, inputs=[inputs, top_p, temperature, openai_api_key], outputs=output)
prompts_button.click(fn=generate_prompts, inputs=[output], outputs=prompts_output)
demo.launch()