seawolf2357 commited on
Commit
91c5fb7
ยท
verified ยท
1 Parent(s): a66642b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -64
app.py CHANGED
@@ -1,11 +1,10 @@
1
  import gradio as gr
2
- import os
3
- import json
4
  import requests
 
5
 
6
  API_URL = "https://api.openai.com/v1/chat/completions"
7
 
8
- def predict(inputs, top_p, temperature, openai_api_key, chat_counter, chatbot=[], history=[]):
9
  narration_prompt = f"๋™์˜์ƒ์— ์‚ฌ์šฉํ•  ์ „๋ฌธ์ ์ธ ๋‚˜๋ ˆ์ด์…˜์„ ์ž‘์„ฑํ•˜๋ผ. ๋ฐ˜๋“œ์‹œ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ• ๊ฒƒ. ์ผ์ฒด์˜ ์ง€๋ฌธ์ด๋‚˜ ์ง€์‹œ, ๋ฐฐ๊ฒฝ ์„ค๋ช… ๋“ฑ์„ ๋…ธ์ถœ ํ•˜๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•˜์ง€ ๋ง๊ณ  ์ˆœ์ˆ˜ํ•œ ๋‚˜๋ ˆ์ด์…˜๋งŒ 2์ค„์”ฉ ๋ฌถ์–ด์„œ ์ตœ๋Œ€ 8์ค„ ์ด๋‚ด๋กœ ์ถœ๋ ฅ๋ ฅ. ์ž…๋ ฅ: '{inputs}'"
10
 
11
  headers = {
@@ -19,77 +18,38 @@ def predict(inputs, top_p, temperature, openai_api_key, chat_counter, chatbot=[]
19
  "temperature": temperature,
20
  "top_p": top_p,
21
  "n": 1,
22
- "stream": True,
23
- "presence_penalty": 0,
24
- "frequency_penalty": 0,
25
- "max_tokens": 2000
26
  }
27
 
 
 
 
 
 
 
 
28
 
29
- response = requests.post(API_URL, headers=headers, json=payload, stream=True)
30
-
31
- partial_words = ""
32
- token_counter = 0
33
-
34
- try:
35
- for chunk in response.iter_lines():
36
- if chunk:
37
- try:
38
- chunk_text = chunk.decode()
39
- # JSON ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ
40
- if chunk_text.strip().startswith("{"):
41
- chunk_data = json.loads(chunk_text) # JSON ํŒŒ์‹ฑ
42
- # ... ๋‚˜๋จธ์ง€ ์ฝ”๋“œ ...
43
- else:
44
- print("Unexpected format:", chunk_text)
45
- except json.JSONDecodeError as e:
46
- print("JSON ํŒŒ์‹ฑ ์˜ค๋ฅ˜:", e)
47
- except Exception as e:
48
- print("์‘๋‹ต ์ฒ˜๋ฆฌ ์˜ค๋ฅ˜:", e)
49
- except Exception as e:
50
- print("์ „์ฒด ์‘๋‹ต ์ฒ˜๋ฆฌ ์˜ค๋ฅ˜:", e)
51
-
52
- return chatbot, history, chat_counter
53
-
54
- # ๋‚˜๋จธ์ง€ ์ฝ”๋“œ ๋ถ€๋ถ„ (์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ, ์˜ˆ์‹œ ์ถ”๊ฐ€ ๋“ฑ)์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
55
-
56
- # ์ฝ”๋“œ ์‹คํ–‰ ๋ถ€๋ถ„
57
- # ์˜ˆ: demo.launch() ๋“ฑ
58
-
59
-
60
-
61
- def reset_textbox():
62
- return gr.update(value='')
63
-
64
- title = """<h1 align='center'>ํ˜œ์ž ์Šคํฌ๋ฆฝํŠธ</h1>"""
65
  description = "์˜์ƒ ์ƒ์„ฑ์„ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ AI๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์ œ ํ‚ค์›Œ๋“œ๋‚˜ ๋ชฉ์  ๋“ฑ ํ•„์š”ํ•œ ๋‚ด์šฉ๋งŒ ๊ฐ„๋‹จํžˆ ์ž…๋ ฅํ•˜์„ธ์š”."
66
 
67
- with gr.Blocks(css="#col_container {width: 1000px; margin-left: auto; margin-right: auto;} #chatbot {height: 520px; overflow: auto;}") as demo:
68
  gr.HTML(title)
69
- with gr.Column(elem_id="col_container"):
70
- openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here")
71
- chatbot = gr.Chatbot(elem_id='chatbot')
72
- inputs = gr.Textbox(placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”.", label="๋‚˜๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ์ฃผ์ œ์–ด๋‚˜ ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜์„ธ์š”.")
73
- state = gr.State([])
74
- b1 = gr.Button()
75
-
76
- with gr.Accordion("Parameters", open=False):
77
- top_p = gr.Slider(minimum=0, maximum=1.0, value=1.0, step=0.05, label="Top-p (nucleus sampling)")
78
- temperature = gr.Slider(minimum=0, maximum=5.0, value=1.0, step=0.1, label="Temperature")
79
- chat_counter = gr.Number(value=0, visible=False, precision=0)
80
-
81
- examples = gr.Examples(examples=[
82
  ["์ƒํ’ˆ ์„ค๋ช…:์ƒˆ๋กœ ์ถœ์‹œ๋œ 'ํ† ๋ฆฌ' ๋ฆฝ๋ฐค์€ FDA ์Šน์ธ, ์ตœ๊ณ ์˜ ๋ณด์Šต๋ ฅ, ๊ตฌ๋งค์ง€์ˆ˜ 1์œ„"],
83
  ["๋ธŒ๋žœ๋”ฉ: 'ํ† ๋ฆฌ'๋ฆฝ๋ฐค์€ 20๋Œ€ ์—ฌ์„ฑ์—๊ฒŒ ์–ดํ•„ํ•  ๋ธŒ๋žœ๋”ฉ์ด ํ•„์š”ํ•ด"],
84
  ["๊ด‘๊ณ : ์„ค๋‚  ๋ถ€๋ชจ๋‹˜๊ณผ ์นœ์ง€ ์„ ๋ฌผ์€ ๋ฒ•์„ฑํฌ ๋ณด๋ฆฌ๊ตด๋น„ '๋ฒ•์„ฑ๊ตด๋น„'๊ฐ€ ์ตœ๊ณ ๋ž๋‹ˆ๋‹ค."],
85
  ["์ •๋ณด ๊ณต์œ : ๋น„ํƒ€๋ฏผC ๊ณผ๋‹ค ๋ณต์šฉ์€ ๊ฑด๊ฐ•์— ์˜คํžˆ๋ ค ํ•ด๋กญ๋‹ค."],
86
  ["ํ™๋ณด: 'OpenAI'๋Š” '์ฑ—GPT'์˜ ๋งž์ถค GPT '์Šคํ† ์–ด'๋ฅผ ์˜คํ”ˆํ•˜์˜€๋‹ค."],
87
  ["์ธ์‚ฌ: '์• ํ”Œ ๋ฒ•์ธ'์˜ ๊ณ ๊ฐ๊ณผ ์ž„์ง์›์„ ์œ„ํ•œ ์ง„์ทจ์ ์ธ 2024๋…„ ์‹ ๋…„ ์ธ์‚ฌ"]
88
- ], inputs=[inputs], fn=predict, outputs=[chatbot, state, chat_counter])
89
-
90
- inputs.submit(predict, [inputs, top_p, temperature, openai_api_key, chat_counter, chatbot, state], [chatbot, state, chat_counter])
91
- b1.click(predict, [inputs, top_p, temperature, openai_api_key, chat_counter, chatbot, state], [chatbot, state, chat_counter])
92
- b1.click(reset_textbox, [], [inputs])
93
- inputs.submit(reset_textbox, [], [inputs])
94
 
95
- demo.launch(debug=True)
 
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"๋™์˜์ƒ์— ์‚ฌ์šฉํ•  ์ „๋ฌธ์ ์ธ ๋‚˜๋ ˆ์ด์…˜์„ ์ž‘์„ฑํ•˜๋ผ. ๋ฐ˜๋“œ์‹œ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ• ๊ฒƒ. ์ผ์ฒด์˜ ์ง€๋ฌธ์ด๋‚˜ ์ง€์‹œ, ๋ฐฐ๊ฒฝ ์„ค๋ช… ๋“ฑ์„ ๋…ธ์ถœ ํ•˜๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•˜์ง€ ๋ง๊ณ  ์ˆœ์ˆ˜ํ•œ ๋‚˜๋ ˆ์ด์…˜๋งŒ 2์ค„์”ฉ ๋ฌถ์–ด์„œ ์ตœ๋Œ€ 8์ค„ ์ด๋‚ด๋กœ ์ถœ๋ ฅ๋ ฅ. ์ž…๋ ฅ: '{inputs}'"
9
 
10
  headers = {
 
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
+ title = "<h1 align='center'>ํ˜œ์ž ์Šคํฌ๋ฆฝํŠธ</h1>"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  description = "์˜์ƒ ์ƒ์„ฑ์„ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ AI๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์ œ ํ‚ค์›Œ๋“œ๋‚˜ ๋ชฉ์  ๋“ฑ ํ•„์š”ํ•œ ๋‚ด์šฉ๋งŒ ๊ฐ„๋‹จํžˆ ์ž…๋ ฅํ•˜์„ธ์š”."
34
 
35
+ with gr.Blocks() as demo:
36
  gr.HTML(title)
37
+ openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here")
38
+ inputs = gr.Textbox(placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”.", label="๋‚˜๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ์ฃผ์ œ์–ด๋‚˜ ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜์„ธ์š”.")
39
+ output = gr.Textbox(label="Generated Script", readonly=True)
40
+ with gr.Row():
41
+ top_p = gr.Slider(minimum=0, maximum=1.0, value=1.0, step=0.05, label="Top-p (nucleus sampling)")
42
+ temperature = gr.Slider(minimum=0, maximum=5.0, value=1.0, step=0.1, label="Temperature")
43
+ submit_button = gr.Button("Generate")
44
+ submit_button.click(fn=predict, inputs=[inputs, top_p, temperature, openai_api_key], outputs=output)
45
+
46
+ examples = gr.Examples(examples=[
 
 
 
47
  ["์ƒํ’ˆ ์„ค๋ช…:์ƒˆ๋กœ ์ถœ์‹œ๋œ 'ํ† ๋ฆฌ' ๋ฆฝ๋ฐค์€ FDA ์Šน์ธ, ์ตœ๊ณ ์˜ ๋ณด์Šต๋ ฅ, ๊ตฌ๋งค์ง€์ˆ˜ 1์œ„"],
48
  ["๋ธŒ๋žœ๋”ฉ: 'ํ† ๋ฆฌ'๋ฆฝ๋ฐค์€ 20๋Œ€ ์—ฌ์„ฑ์—๊ฒŒ ์–ดํ•„ํ•  ๋ธŒ๋žœ๋”ฉ์ด ํ•„์š”ํ•ด"],
49
  ["๊ด‘๊ณ : ์„ค๋‚  ๋ถ€๋ชจ๋‹˜๊ณผ ์นœ์ง€ ์„ ๋ฌผ์€ ๋ฒ•์„ฑํฌ ๋ณด๋ฆฌ๊ตด๋น„ '๋ฒ•์„ฑ๊ตด๋น„'๊ฐ€ ์ตœ๊ณ ๋ž๋‹ˆ๋‹ค."],
50
  ["์ •๋ณด ๊ณต์œ : ๋น„ํƒ€๋ฏผC ๊ณผ๋‹ค ๋ณต์šฉ์€ ๊ฑด๊ฐ•์— ์˜คํžˆ๋ ค ํ•ด๋กญ๋‹ค."],
51
  ["ํ™๋ณด: 'OpenAI'๋Š” '์ฑ—GPT'์˜ ๋งž์ถค GPT '์Šคํ† ์–ด'๋ฅผ ์˜คํ”ˆํ•˜์˜€๋‹ค."],
52
  ["์ธ์‚ฌ: '์• ํ”Œ ๋ฒ•์ธ'์˜ ๊ณ ๊ฐ๊ณผ ์ž„์ง์›์„ ์œ„ํ•œ ์ง„์ทจ์ ์ธ 2024๋…„ ์‹ ๋…„ ์ธ์‚ฌ"]
53
+ ], inputs=[inputs], fn=predict, outputs=output)
 
 
 
 
 
54
 
55
+ demo.launch()