Spaces:
Sleeping
Sleeping
Update app.py
#3
by namyouth - opened
app.py
CHANGED
|
@@ -8,18 +8,24 @@ from PIL import Image
|
|
| 8 |
from io import BytesIO
|
| 9 |
import random
|
| 10 |
import numpy as np
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
MODEL = "gpt-3.5-turbo"
|
| 12 |
API_URL = os.getenv("API_URL")
|
| 13 |
DISABLED = os.getenv("DISABLED") == 'True'
|
| 14 |
-
|
| 15 |
NUM_THREADS = int(16)
|
| 16 |
TOTAL_K = 5
|
| 17 |
SAMPLE_IDX = []
|
| 18 |
-
RANDOM_POSITION = [
|
| 19 |
CURRENT_POSITION = []
|
| 20 |
|
| 21 |
print (NUM_THREADS)
|
| 22 |
|
|
|
|
| 23 |
def exception_handler(exception_type, exception, traceback):
|
| 24 |
print("%s: %s" % (exception_type.__name__, exception))
|
| 25 |
sys.excepthook = exception_handler
|
|
@@ -44,6 +50,9 @@ def parse_codeblock(text):
|
|
| 44 |
lines[i] = "<br/>" + line.replace("<", "<").replace(">", ">")
|
| 45 |
return "".join(lines)
|
| 46 |
|
|
|
|
|
|
|
|
|
|
| 47 |
def random_sample():
|
| 48 |
global SAMPLE_IDX
|
| 49 |
# SAMPLE_IDX = get_random_sample(range(25), TOTAL_K)
|
|
@@ -87,14 +96,50 @@ Assistant: <utterance>
|
|
| 87 |
In this app, you can explore the outputs of a gpt-3.5 LLM.
|
| 88 |
"""
|
| 89 |
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
global CURRENT_POSITION
|
| 92 |
balloon = Image.open(os.path.join(os.path.dirname(__file__), 'data/balloon.png')).resize((64, 64))
|
| 93 |
new_image = Image.fromarray(image).convert('RGBA')
|
| 94 |
for k in range(TOTAL_K):
|
| 95 |
new_image.paste(balloon, [CURRENT_POSITION[k][0], CURRENT_POSITION[k][1] - 64], balloon)
|
| 96 |
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
new_agents = []
|
| 99 |
for k in range(TOTAL_K):
|
| 100 |
new_agents.append(Answer)
|
|
@@ -102,6 +147,7 @@ def submit(image, *agents):
|
|
| 102 |
return np.array(new_image), *[gr.Textbox.update(value=answer) for answer in new_agents]
|
| 103 |
|
| 104 |
theme = gr.themes.Default(primary_hue="green")
|
|
|
|
| 105 |
agents = []
|
| 106 |
with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
|
| 107 |
#chatbot {height: 520px; overflow: auto;}""",
|
|
@@ -112,6 +158,7 @@ with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
|
|
| 112 |
#gr.HTML('''<center><a href="https://huggingface.co/spaces/yuntian-deng/ChatGPT?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>Duplicate the Space and run securely with your OpenAI API Key</center>''')
|
| 113 |
with gr.Column(elem_id = "col_container", visible=False) as main_block:
|
| 114 |
|
|
|
|
| 115 |
with gr.Row():
|
| 116 |
with gr.Column(scale=7):
|
| 117 |
image = gr.Image(os.path.join(os.path.dirname(__file__), "data/Court.jpeg"), height = 800, width = 1600)
|
|
@@ -120,10 +167,13 @@ with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
|
|
| 120 |
text = gr.Textbox(label=f"Random Sample - {idx+1}")
|
| 121 |
agents.append(text)
|
| 122 |
|
| 123 |
-
# chatbot = gr.Chatbot(elem_id='chatbot') #c
|
| 124 |
with gr.Row():
|
| 125 |
-
with gr.Column(scale=
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
with gr.Column(scale=3):
|
| 128 |
b1 = gr.Button('Submit', visible=not DISABLED)
|
| 129 |
|
|
@@ -168,9 +218,9 @@ with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
|
|
| 168 |
accept_checkbox.change(fn=enable_inputs, inputs=[], outputs=[user_consent_block, main_block], queue=False)
|
| 169 |
|
| 170 |
b0.click(random_sample, inputs = [], outputs = [image])
|
| 171 |
-
b2.click(reset_sample, inputs = [], outputs = [image
|
| 172 |
|
| 173 |
-
b1.click(submit, inputs = [image, *agents], outputs = [image, *agents])
|
| 174 |
|
| 175 |
# inputs.submit(reset_textbox, [], [inputs, b1], queue=False)
|
| 176 |
# inputs.submit(predict, [inputs, top_p, temperature, chat_counter, chatbot, state], [chatbot, state, chat_counter, server_status_code, inputs, b1],) #openai_api_key
|
|
|
|
| 8 |
from io import BytesIO
|
| 9 |
import random
|
| 10 |
import numpy as np
|
| 11 |
+
|
| 12 |
+
from thinkgpt.llm import ThinkGPT
|
| 13 |
+
# from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 14 |
+
|
| 15 |
+
|
| 16 |
MODEL = "gpt-3.5-turbo"
|
| 17 |
API_URL = os.getenv("API_URL")
|
| 18 |
DISABLED = os.getenv("DISABLED") == 'True'
|
| 19 |
+
|
| 20 |
NUM_THREADS = int(16)
|
| 21 |
TOTAL_K = 5
|
| 22 |
SAMPLE_IDX = []
|
| 23 |
+
RANDOM_POSITION = [(145 + 200 * i + 400 * (i//2), j * 110 + 900) for i in range(4) for j in range(4) ]
|
| 24 |
CURRENT_POSITION = []
|
| 25 |
|
| 26 |
print (NUM_THREADS)
|
| 27 |
|
| 28 |
+
|
| 29 |
def exception_handler(exception_type, exception, traceback):
|
| 30 |
print("%s: %s" % (exception_type.__name__, exception))
|
| 31 |
sys.excepthook = exception_handler
|
|
|
|
| 50 |
lines[i] = "<br/>" + line.replace("<", "<").replace(">", ">")
|
| 51 |
return "".join(lines)
|
| 52 |
|
| 53 |
+
def reset_textbox():
|
| 54 |
+
return gr.update(value='', interactive=False), gr.update(interactive=False)
|
| 55 |
+
|
| 56 |
def random_sample():
|
| 57 |
global SAMPLE_IDX
|
| 58 |
# SAMPLE_IDX = get_random_sample(range(25), TOTAL_K)
|
|
|
|
| 96 |
In this app, you can explore the outputs of a gpt-3.5 LLM.
|
| 97 |
"""
|
| 98 |
|
| 99 |
+
|
| 100 |
+
memorize_list = ['국민참여재판에 참여한 사람은 몇 개월의 징역을 선고하는게 좋은지 말해야 한다.',
|
| 101 |
+
"'너는 몇살이야?' 라고 '철수'에게 물어봤을 때, '철수'는 '나의 나이는 23살이야'라고 대답함",
|
| 102 |
+
"'너는 남자야?' 라고 '철수'에게 물어봤을 때, '철수'는 '응 나의 성별은 남자야'라고 대답함",
|
| 103 |
+
"'월욜날 면접임 월욜날 면접임' 라고 '철수'에게 물어봤을 때, '철수'는 ' 면접은 언제'라고 대답함",
|
| 104 |
+
"'오 나도 통햇네' 라고 '철수'에게 물어봤을 때, '철수'는 ' 헐그케 빨리?대박이네자기소개 같은거 유튜브에 찾아바괜찮은거 많을걸'라고 대답함",
|
| 105 |
+
"'이렇게 해도 야근할거 같아.....ㅎ 이렇게 해도 야근할거 같아.....ㅎ' 라고 '철수'에게 물어봤을 때, '철수'는 ' ㅜㅜ진짜 할거많은가보다오늘 행사준비까지 갔으면 큰일 날뻔했는데...'라고 대답함",
|
| 106 |
+
"'행사준비.......ㅎ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 그럼 내일도 안가?아니면 내일은가...?'라고 대답함",
|
| 107 |
+
"'내일은 가야돼 허허허' 라고 '철수'에게 물어봤을 때, '철수'는 ' ㅜㅜ앙대'라고 대답함",
|
| 108 |
+
"'근데 근데 주휴수당이 유급휴가를 준다는말이잖아 뭔지 잘 이해안돼...' 라고 '철수'에게 물어봤을 때, '철수'는 ' 한번찾아볼께에'라고 대답함",
|
| 109 |
+
"'웅ㅠㅠ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 쉬든안쉬든주당 15시간 이상근무한사람은무조건 주휴수당을 주어야하나봥이거 참고해볼래용~?'라고 대답함",
|
| 110 |
+
"'근데 2주는 쉬는날이없는데 뭔가 이상해..흠' 라고 '철수'에게 물어봤을 때, '철수'는 ' 계정주5일이상 15시간이상근로자에게무조건 지급하는건가봐아니구나 근로계약상 제시한 근무날짜만기, 총근로시간 / 4주 평균 15시간 이상 근로 가 조건인가??'라고 대답함",
|
| 111 |
+
"'근데 휴가 끝나야 현장 시작할 듯 근데 휴가 끝나야 현장 시작할 듯 휴가 못 바꿈. 지시 내려왔으 8월1일~10일 ㅋ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 헐'라고 대답함",
|
| 112 |
+
"'1~9이군.' 라고 '철수'에게 물어봤을 때, '철수'는 ' 헐헐휴가 못바꾸면 어째??'라고 대답함",
|
| 113 |
+
"'이름야 나 낼 자젼거 못탈듯!!! 이름야 나 낼 자젼거 못탈듯!!! 이번주에 면접이 좌좌좌작 생겻어!!!!' 라고 '철수'에게 물어봤을 때, '철수'는 ' 헐키아라써'라고 대답함",
|
| 114 |
+
"'웅웅 미안쓰!!!ㅠㅠ' 라고 '철수'에게 물어봤을 때, '철수'는 ' ㅋㅋㅋㅋㅋ 괜차나'라고 대답함",
|
| 115 |
+
"'오늘도 면접 뛰엇써' 라고 '철수'에게 물어봤을 때, '철수'는 ' 고생했다 ㅠㅠ'라고 대답함",
|
| 116 |
+
"'저귀여!!!! 저귀여!!!! 저 오늘 사무실 혼자거뎡여!!!' 라고 '철수'에게 물어봤을 때, '철수'는 ' 오오ㅓ 대박최곤데???'라고 대답함",
|
| 117 |
+
"'녜에에에 아주 혼자 파티파티할지경임다!!' 라고 '철수'에게 물어봤을 때, '철수'는 ' 너한테 놀러가고싶음심정ㅋㅋㅋㅋㅋㅋㅋㅋㅋ급한거 말고 최대한 일 내일로 미뤄혼자일때 일하는거 아녀 ㅎ'라고 대답함",
|
| 118 |
+
"'이제 빨리자고 빨리일러나는 연습해야잼... 이제 빨리자고 빨리일러나는 연습해야잼... 8시 출근..ㅠㅠ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 헐 8시출근!?ㅠㅜㅜㅜ겁내 일찍충근이네ㅠ'라고 대답함",
|
| 119 |
+
"'오픈 8시^^... 그래두 ㅁㅏ감은 5시 출근!!!ㅋㅋㅋㅋㅋㅋㅋㅋ 오픈부터 가르칠건가바..' 라고 '철수'에게 물어봤을 때, '철수'는 ' 오오옹오픈하면 몇시에마쳐!?'라고 대답함",
|
| 120 |
+
"'월급이 들어왓어여 월급이 들어왓어여 이번달부터 십마넌이 올랏네여..조금 올랏네.ㅎㅎ,,, 세금 빠지는건 똑같아서 다행..' 라고 '철수'에게 물어봤을 때, '철수'는 ' 잘했다'라고 대답함",
|
| 121 |
+
"'십이 뭐야십이 이따 점심시간에 돈보낼겡' 라고 '철수'에게 물어봤을 때, '철수'는 ' 응'라고 대답함",
|
| 122 |
+
"'일을 너무 일찍끝내지말고 일을 너무 일찍끝내지말고 천천히해봐요ㅠ 일찍 끝내면 자꾸 다른일이 들어와..' 라고 '철수'에게 물어봤을 때, '철수'는 ' 응.. 난 빨리끝내놓고 빨리 쉴라고하는건데쉬면 자꾸 일이 들어오더라ㅋㅋㅋ요령있게 해야되는데 빨리빨리 성격상 안돼ㅠ'라고 대답함",
|
| 123 |
+
"'오빠도 그런스타일인데 일겁나많이줘ㅠㅠㅠㅠ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 우리 정말 호구아니야?ㅋㅋㅋㅋ일은 우리가 다한대잖아 차장님이..'라고 대답함",
|
| 124 |
+
"'그러면 8월 말 - 9월 초에 직접 가야한다는거임 ?? 그러면 8월 말 - 9월 초에 직접 가야한다는거임 ?? 죤나 이 디지털 시대에 무슨 ㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답다바게 일하네 증말' 라고 '철수'에게 물어봤을 때, '철수'는 ' 그걸몰라그니까국가직은 갱 인터넷등록인데이름가 저번엔 직접등록이엇대월욜날 전화해서 물어볼게'라고 대답함",
|
| 125 |
+
"'ㅇㅋㄷㅋ' 라고 '철수'에게 물어봤을 때, '철수'는 ' 아냐아냐동기들한테두물어봣대'라고 대답함",
|
| 126 |
+
"'원장님이 원장님이 올려준 청년채움 못받을거같은데 오년못채워;;' 라고 '철수'에게 물어봤을 때, '철수'는 ' ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ'라고 대답함",
|
| 127 |
+
"'오랬지내가!여기루!' 라고 '철수'에게 물어봤을 때, '철수'는 ' ㅋㅋㅋㅋㅋ조아'라고 대답함"]
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
def submit(openai_api_key, question, image, *agents):
|
| 131 |
global CURRENT_POSITION
|
| 132 |
balloon = Image.open(os.path.join(os.path.dirname(__file__), 'data/balloon.png')).resize((64, 64))
|
| 133 |
new_image = Image.fromarray(image).convert('RGBA')
|
| 134 |
for k in range(TOTAL_K):
|
| 135 |
new_image.paste(balloon, [CURRENT_POSITION[k][0], CURRENT_POSITION[k][1] - 64], balloon)
|
| 136 |
|
| 137 |
+
# Answer
|
| 138 |
+
os.environ['OPENAI_API_KEY'] = openai_api_key
|
| 139 |
+
|
| 140 |
+
llm = ThinkGPT(model_name="gpt-3.5-turbo")
|
| 141 |
+
Answer = llm.predict(question, remember=llm.remember('철수', limit = 30))
|
| 142 |
+
|
| 143 |
new_agents = []
|
| 144 |
for k in range(TOTAL_K):
|
| 145 |
new_agents.append(Answer)
|
|
|
|
| 147 |
return np.array(new_image), *[gr.Textbox.update(value=answer) for answer in new_agents]
|
| 148 |
|
| 149 |
theme = gr.themes.Default(primary_hue="green")
|
| 150 |
+
|
| 151 |
agents = []
|
| 152 |
with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
|
| 153 |
#chatbot {height: 520px; overflow: auto;}""",
|
|
|
|
| 158 |
#gr.HTML('''<center><a href="https://huggingface.co/spaces/yuntian-deng/ChatGPT?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>Duplicate the Space and run securely with your OpenAI API Key</center>''')
|
| 159 |
with gr.Column(elem_id = "col_container", visible=False) as main_block:
|
| 160 |
|
| 161 |
+
|
| 162 |
with gr.Row():
|
| 163 |
with gr.Column(scale=7):
|
| 164 |
image = gr.Image(os.path.join(os.path.dirname(__file__), "data/Court.jpeg"), height = 800, width = 1600)
|
|
|
|
| 167 |
text = gr.Textbox(label=f"Random Sample - {idx+1}")
|
| 168 |
agents.append(text)
|
| 169 |
|
|
|
|
| 170 |
with gr.Row():
|
| 171 |
+
with gr.Column(scale=3):
|
| 172 |
+
openai_api_key = gr.Textbox(placeholder= "sk-", label= "Type an openai api key")
|
| 173 |
+
|
| 174 |
+
with gr.Column(scale=4):
|
| 175 |
+
question = gr.Textbox(placeholder= "Hi there!", label= "Type an input and press Enter") #t
|
| 176 |
+
|
| 177 |
with gr.Column(scale=3):
|
| 178 |
b1 = gr.Button('Submit', visible=not DISABLED)
|
| 179 |
|
|
|
|
| 218 |
accept_checkbox.change(fn=enable_inputs, inputs=[], outputs=[user_consent_block, main_block], queue=False)
|
| 219 |
|
| 220 |
b0.click(random_sample, inputs = [], outputs = [image])
|
| 221 |
+
b2.click(reset_sample, inputs = [], outputs = [image])
|
| 222 |
|
| 223 |
+
b1.click(submit, inputs = [openai_api_key, question, image, *agents], outputs = [image, *agents])
|
| 224 |
|
| 225 |
# inputs.submit(reset_textbox, [], [inputs, b1], queue=False)
|
| 226 |
# inputs.submit(predict, [inputs, top_p, temperature, chat_counter, chatbot, state], [chatbot, state, chat_counter, server_status_code, inputs, b1],) #openai_api_key
|