seawolf2357 commited on
Commit
c64d829
ยท
verified ยท
1 Parent(s): faf98f2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -32
app.py CHANGED
@@ -1,39 +1,41 @@
1
  import gradio as gr
 
 
2
 
3
- # ์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋‚˜๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
4
- # ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” OpenAI API๋‚˜ ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5
- def generate_script(inputs):
6
- # ์˜ˆ์‹œ๋ฅผ ์œ„ํ•œ ๊ฐ€์ƒ์˜ ์Šคํฌ๋ฆฝํŠธ ๋ฐ˜ํ™˜
7
- return "์ด๊ณณ์€ ํ™”๋ คํ•œ ๋„์‹œ์˜ ์ „๊ฒฝ์ž…๋‹ˆ๋‹ค.\n์ € ๋ฉ€๋ฆฌ ๋น›๋‚˜๋Š” ๋นŒ๋”ฉ๋“ค ์‚ฌ์ด๋กœ ํ† ๋ฆฌ๊ฐ€ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค."
8
 
9
- # Gradio ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋กœ๋“œํ•˜๋Š” ํ•จ์ˆ˜
10
- def load_interface():
11
- return gr.Interface.load("models/goofyai/3d_render_style_xl")
12
 
13
- # ์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ ์ค„์„ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
14
- def script_to_images(script):
15
- # ๋ฏธ๋ฆฌ ๋กœ๋“œํ•œ Gradio ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉ
16
- iface = load_interface()
17
- images = []
18
- for line in script.split('\n'):
19
- # ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ์— ๊ฐ ์Šคํฌ๋ฆฝํŠธ ์ค„์„ ์ž…๋ ฅ์œผ๋กœ ์ œ๊ณต
20
- image = iface(line)
21
- images.append(image)
22
- return images
23
 
24
- with gr.Blocks() as demo:
25
- with gr.Row():
26
- inputs = gr.Textbox(label="๋‚˜๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์ž…๋ ฅ")
27
- generate_btn = gr.Button("๋‚˜๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ")
28
- with gr.Row():
29
- script_output = gr.Textbox(label="์ƒ์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ", interactive=False)
30
- with gr.Row():
31
- images_output = gr.Gallery(label="์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€")
32
 
33
- # ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ
34
- generate_btn.click(fn=generate_script, inputs=inputs, outputs=script_output)
35
-
36
- # ์Šคํฌ๋ฆฝํŠธ ์ถœ๋ ฅ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ•จ์ˆ˜ ํ˜ธ์ถœ
37
- script_output.change(fn=script_to_images, inputs=script_output, outputs=images_output)
 
 
38
 
39
- demo.launch()
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import requests
3
+ import json
4
 
5
+ API_URL = "https://api.openai.com/v1/chat/completions"
 
 
 
 
6
 
7
+ def predict(inputs, top_p, temperature, openai_api_key):
8
+ narration_prompt = f"์•„๋™์šฉ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์˜์ƒ์— ์‚ฌ์šฉํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ผ. ๋ฐ˜๋“œ์‹œ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ• ๊ฒƒ. ์ผ์ฒด์˜ ์ง€๋ฌธ์ด๋‚˜ ์ง€์‹œ, ๋ฐฐ๊ฒฝ ์„ค๋ช… ๋“ฑ์„ ๋…ธ์ถœ ํ•˜๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•˜์ง€ ๋ง๊ณ  ๊ธฐ์Šน์ „๊ฒฐ์˜ ๊ตฌ์กฐ๋กœ ๋ชจํ—˜์˜ ์ด์œ /์œ„๊ธฐ/๋„์ „/๋ฌธ์ œํ•ด๊ฒฐ/๊ตํ›ˆ์„ ํฌํ•จํ•˜์—ฌ ์ˆœ์ˆ˜ํ•œ ๋‚˜๋ ˆ์ด์…˜๋งŒ 1์ค„์”ฉ ์ถœ๋ ฅํ•˜์—ฌ ์ตœ๋Œ€ 10์ค„ ์ด๋‚ด๋กœ ์ถœ๋ ฅ. ์ž…๋ ฅ: '{inputs}'"
 
9
 
10
+ headers = {
11
+ "Content-Type": "application/json",
12
+ "Authorization": f"Bearer {openai_api_key}"
13
+ }
 
 
 
 
 
 
14
 
15
+ payload = {
16
+ "model": "gpt-4-1106-preview",
17
+ "messages": [{"role": "system", "content": narration_prompt}],
18
+ "temperature": temperature,
19
+ "top_p": top_p,
20
+ "n": 1,
21
+ "max_tokens": 1000
22
+ }
23
 
24
+ response = requests.post(API_URL, headers=headers, json=payload)
25
+ if response.status_code == 200:
26
+ response_data = response.json()
27
+ generated_text = response_data['choices'][0]['message']['content']
28
+ return generated_text
29
+ else:
30
+ return "Error: Unable to generate response."
31
 
32
+ with gr.Blocks() as demo:
33
+ gr.Markdown("<h1 align='center'>ํ† ๋ฆฌ์˜ ๋ชจํ—˜: 3D ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ƒ์„ฑ๊ธฐ</h1>")
34
+ with gr.Row():
35
+ openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here")
36
+ inputs = gr.Textbox(placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”.", label="์•„๋™์šฉ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ์ฃผ์ œ์–ด๋‚˜ ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜์„ธ์š”.")
37
+ top_p = gr.Slider(minimum=0, maximum=1.0, value=1.0, step=0.05, label="Top-p (nucleus sampling)")
38
+ temperature = gr.Slider(minimum=0, maximum=5.0, value=1.0, step=0.1, label="Temperature")
39
+ output = gr.Textbox(label="Generated Script", readonly=True)
40
+ submit_button = gr.Button("Generate")
41
+ submit_button.click(fn=predict, inputs=[inputs, top_p, temperatu