yizhangliu commited on
Commit
f633886
1 Parent(s): f21f8e3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +72 -60
app.py CHANGED
@@ -5,8 +5,18 @@ from loguru import logger
5
  import paddlehub as hub
6
  import random
7
 
 
8
  language_translation_model = hub.Module(directory=f'./baidu_translate')
9
  def getTextTrans(text, source='zh', target='en'):
 
 
 
 
 
 
 
 
 
10
  try:
11
  text_translation = language_translation_model.translate(text, source, target)
12
  return text_translation
@@ -18,20 +28,21 @@ session_token = os.environ.get('SessionToken')
18
 
19
  def get_api():
20
  api = None
21
- # try:
22
- # api = ChatGPT(session_token)
23
- # # api.refresh_auth()
24
- # except:
25
- # api = None
 
26
  return api
27
-
28
- def get_response_from_chatbot(api, text):
 
29
  if api is None:
30
- # return "Sorry, I'm busy. Try again later.(1)"
31
  return "Openai said: I'm too tired. Let me lie down for a few days. If you like, you can visit my home."
32
  try:
33
  resp = api.send_message(text)
34
- api.refresh_auth()
35
  # api.reset_conversation()
36
  response = resp['message']
37
  conversation_id = resp['conversation_id']
@@ -39,46 +50,9 @@ def get_response_from_chatbot(api, text):
39
  # logger.info(f"response_: {response}")
40
  logger.info(f"conversation_id_: [{conversation_id}] / parent_id: [{parent_id}]")
41
  except:
42
- # response = "Sorry, I'm busy. Try again later.(2)"
43
  response = "Openai said: I'm so tired. Let me lie down for a few days. If you like, you can visit my home."
44
  return response
45
 
46
- model_ids = {
47
- # "models/stabilityai/stable-diffusion-2-1":"sd-v2-1",
48
- # "models/stabilityai/stable-diffusion-2":"sd-v2-0",
49
- # "models/runwayml/stable-diffusion-v1-5":"sd-v1-5",
50
- # "models/CompVis/stable-diffusion-v1-4":"sd-v1-4",
51
- "models/prompthero/openjourney":"openjourney",
52
- # "models/ShadoWxShinigamI/Midjourney-Rangoli":"midjourney",
53
- # "models/hakurei/waifu-diffusion":"waifu-diffusion",
54
- # "models/Linaqruf/anything-v3.0":"anything-v3.0",
55
- }
56
-
57
- tab_actions = []
58
- tab_titles = []
59
- for model_id in model_ids.keys():
60
- print(model_id, model_ids[model_id])
61
- try:
62
- tab = gr.Interface.load(model_id)
63
- tab_actions.append(tab)
64
- tab_titles.append(model_ids[model_id])
65
- except:
66
- logger.info(f"load_fail__{model_id}_")
67
-
68
- def chat(api, input0, input1, chat_radio, chat_history):
69
- out_chat = []
70
- if chat_history != '':
71
- out_chat = json.loads(chat_history)
72
- logger.info(f"out_chat_: {len(out_chat)} / {chat_radio}")
73
- if chat_radio == "Talk to chatGPT":
74
- response = get_response_from_chatbot(api, input0)
75
- out_chat.append((input0, response))
76
- chat_history = json.dumps(out_chat)
77
- return api, out_chat, input1, chat_history
78
- else:
79
- prompt_en = getTextTrans(input0, source='zh', target='en') + f',{random.randint(0,sys.maxsize)}'
80
- return api, out_chat, prompt_en, chat_history
81
-
82
  start_work = """async() => {
83
  function isMobile() {
84
  try {
@@ -219,26 +193,30 @@ start_work = """async() => {
219
  text0 = texts[0];
220
  text1 = texts[1];
221
  img_index = 0;
222
- if (window['doCheckPrompt'] === 0 && window['prevPrompt'] !== text1.value) {
223
- console.log('_____new prompt___[' + text1.value + ']_');
 
224
  window['doCheckPrompt'] = 1;
225
- window['prevPrompt'] = text1.value;
226
- for (var i = 3; i < texts.length; i++) {
227
- setNativeValue(texts[i], text1.value);
228
- texts[i].dispatchEvent(new Event('input', { bubbles: true }));
229
- }
 
 
 
230
  setTimeout(function() {
231
- img_submit_btns = window['gradioEl'].querySelectorAll('#tab_img')[0].querySelectorAll("button");
232
- for (var i = 0; i < img_submit_btns.length; i++) {
233
- if (img_submit_btns[i].innerText == 'Submit') {
234
- img_submit_btns[i].click();
235
  }
236
  }
237
  window['doCheckPrompt'] = 0;
238
  }, 10);
239
  }
240
  tabitems = window['gradioEl'].querySelectorAll('.tabitem');
241
- imgs = tabitems[img_index].children[0].children[1].children[1].children[0].querySelectorAll("img");
242
  if (imgs.length > 0) {
243
  if (window['prevImgSrc'] !== imgs[0].src) {
244
  var user_div = document.createElement("div");
@@ -259,8 +237,8 @@ start_work = """async() => {
259
  save_conversation(window['chat_bot1'].children[2].children[0]);
260
  }
261
  }
262
- if (tabitems[img_index].children[0].children[1].children[1].children[0].children[0].children.length > 1) {
263
- window['chat_bot1'].children[1].textContent = tabitems[img_index].children[0].children[1].children[1].children[0].children[0].children[1].textContent;
264
  } else {
265
  window['chat_bot1'].children[1].textContent = '';
266
  }
@@ -275,7 +253,40 @@ start_work = """async() => {
275
  return false;
276
  }"""
277
 
 
 
 
 
 
 
 
 
278
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
  with gr.Blocks(title='Talk to chatGPT') as demo:
280
  gr.HTML("<p>You can duplicating this space and use your own session token: <a style='display:inline-block' href='https://huggingface.co/spaces/yizhangliu/chatGPT?duplicate=true'><img src='https://img.shields.io/badge/-Duplicate%20Space-blue?labelColor=white&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAP5JREFUOE+lk7FqAkEURY+ltunEgFXS2sZGIbXfEPdLlnxJyDdYB62sbbUKpLbVNhyYFzbrrA74YJlh9r079973psed0cvUD4A+4HoCjsA85X0Dfn/RBLBgBDxnQPfAEJgBY+A9gALA4tcbamSzS4xq4FOQAJgCDwV2CPKV8tZAJcAjMMkUe1vX+U+SMhfAJEHasQIWmXNN3abzDwHUrgcRGmYcgKe0bxrblHEB4E/pndMazNpSZGcsZdBlYJcEL9Afo75molJyM2FxmPgmgPqlWNLGfwZGG6UiyEvLzHYDmoPkDDiNm9JR9uboiONcBXrpY1qmgs21x1QwyZcpvxt9NS09PlsPAAAAAElFTkSuQmCC&logoWidth=14' alt='Duplicate Space'></a></p>")
281
  gr.HTML("<p> Instruction on how to get session token can be seen in video <a style='display:inline-block' href='https://www.youtube.com/watch?v=TdNSj_qgdFk'><font style='color:blue;weight:bold;'>here</font></a>. Add your session token by going to settings and add under secrets. </p>")
@@ -316,3 +327,4 @@ with gr.Blocks(title='Talk to chatGPT') as demo:
316
  tab_img = gr.TabbedInterface(tab_actions, tab_titles)
317
 
318
  demo.launch(debug = True)
 
 
5
  import paddlehub as hub
6
  import random
7
 
8
+
9
  language_translation_model = hub.Module(directory=f'./baidu_translate')
10
  def getTextTrans(text, source='zh', target='en'):
11
+ def is_chinese(string):
12
+ for ch in string:
13
+ if u'\u4e00' <= ch <= u'\u9fff':
14
+ return True
15
+ return False
16
+
17
+ if not is_chinese(text) and target == 'en':
18
+ return text
19
+
20
  try:
21
  text_translation = language_translation_model.translate(text, source, target)
22
  return text_translation
 
28
 
29
  def get_api():
30
  api = None
31
+ try:
32
+ api = ChatGPT(session_token)
33
+ # api.refresh_auth()
34
+ except Exception as e:
35
+ print(f'get_api_error:', e)
36
+ api = None
37
  return api
38
+
39
+
40
+ def get_response_from_chatgpt(api, text):
41
  if api is None:
 
42
  return "Openai said: I'm too tired. Let me lie down for a few days. If you like, you can visit my home."
43
  try:
44
  resp = api.send_message(text)
45
+ # api.refresh_auth()
46
  # api.reset_conversation()
47
  response = resp['message']
48
  conversation_id = resp['conversation_id']
 
50
  # logger.info(f"response_: {response}")
51
  logger.info(f"conversation_id_: [{conversation_id}] / parent_id: [{parent_id}]")
52
  except:
 
53
  response = "Openai said: I'm so tired. Let me lie down for a few days. If you like, you can visit my home."
54
  return response
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  start_work = """async() => {
57
  function isMobile() {
58
  try {
 
193
  text0 = texts[0];
194
  text1 = texts[1];
195
  img_index = 0;
196
+ text_value = text1.value;
197
+ if (window['doCheckPrompt'] === 0 && window['prevPrompt'] !== text_value) {
198
+ console.log('_____new prompt___[' + text_value + ']_');
199
  window['doCheckPrompt'] = 1;
200
+ window['prevPrompt'] = text_value;
201
+
202
+ tabitems = window['gradioEl'].querySelectorAll('.tabitem');
203
+ for (var i = 0; i < tabitems.length; i++) {
204
+ inputText = tabitems[i].children[0].children[1].children[0].querySelectorAll('.gr-text-input')[0];
205
+ setNativeValue(inputText, text_value);
206
+ inputText.dispatchEvent(new Event('input', { bubbles: true }));
207
+ }
208
  setTimeout(function() {
209
+ btns = window['gradioEl'].querySelectorAll('button');
210
+ for (var i = 0; i < btns.length; i++) {
211
+ if (['Generate image','Run'].includes(btns[i].innerText)) {
212
+ btns[i].click();
213
  }
214
  }
215
  window['doCheckPrompt'] = 0;
216
  }, 10);
217
  }
218
  tabitems = window['gradioEl'].querySelectorAll('.tabitem');
219
+ imgs = tabitems[img_index].children[0].children[1].children[1].querySelectorAll("img");
220
  if (imgs.length > 0) {
221
  if (window['prevImgSrc'] !== imgs[0].src) {
222
  var user_div = document.createElement("div");
 
237
  save_conversation(window['chat_bot1'].children[2].children[0]);
238
  }
239
  }
240
+ if (tabitems[img_index].children[0].children[1].children[1].children[0].children.length > 1) {
241
+ window['chat_bot1'].children[1].textContent = tabitems[img_index].children[0].children[1].children[1].children[0].textContent;
242
  } else {
243
  window['chat_bot1'].children[1].textContent = '';
244
  }
 
253
  return false;
254
  }"""
255
 
256
+ space_ids = {
257
+ "spaces/stabilityai/stable-diffusion":"Stable Diffusion 2.1",
258
+ # "spaces/runwayml/stable-diffusion-v1-5":"Stable Diffusion 1.5",
259
+ # "spaces/stabilityai/stable-diffusion-1":"Stable Diffusion 1.0",
260
+ }
261
+
262
+ tab_actions = []
263
+ tab_titles = []
264
 
265
+ for space_id in space_ids.keys():
266
+ print(space_id, space_ids[space_id])
267
+ try:
268
+ tab = gr.Interface.load(space_id)
269
+ tab_actions.append(tab)
270
+ tab_titles.append(space_ids[space_id])
271
+ except Exception as e:
272
+ logger.info(f"load_fail__{space_id}_{e}")
273
+
274
+ def chat(api, input0, input1, chat_radio, chat_history):
275
+ out_chat = []
276
+ if chat_history != '':
277
+ out_chat = json.loads(chat_history)
278
+ logger.info(f"out_chat_: {len(out_chat)} / {chat_radio}")
279
+ if chat_radio == "Talk to chatGPT":
280
+ response = get_response_from_chatgpt(api, input0)
281
+ # response = get_response_from_microsoft(input0)
282
+ # response = get_response_from_skywork(input0)
283
+ out_chat.append((input0, response))
284
+ chat_history = json.dumps(out_chat)
285
+ return api, out_chat, input1, chat_history
286
+ else:
287
+ prompt_en = getTextTrans(input0, source='zh', target='en') + f',{random.randint(0,sys.maxsize)}'
288
+ return api, out_chat, prompt_en, chat_history
289
+
290
  with gr.Blocks(title='Talk to chatGPT') as demo:
291
  gr.HTML("<p>You can duplicating this space and use your own session token: <a style='display:inline-block' href='https://huggingface.co/spaces/yizhangliu/chatGPT?duplicate=true'><img src='https://img.shields.io/badge/-Duplicate%20Space-blue?labelColor=white&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAP5JREFUOE+lk7FqAkEURY+ltunEgFXS2sZGIbXfEPdLlnxJyDdYB62sbbUKpLbVNhyYFzbrrA74YJlh9r079973psed0cvUD4A+4HoCjsA85X0Dfn/RBLBgBDxnQPfAEJgBY+A9gALA4tcbamSzS4xq4FOQAJgCDwV2CPKV8tZAJcAjMMkUe1vX+U+SMhfAJEHasQIWmXNN3abzDwHUrgcRGmYcgKe0bxrblHEB4E/pndMazNpSZGcsZdBlYJcEL9Afo75molJyM2FxmPgmgPqlWNLGfwZGG6UiyEvLzHYDmoPkDDiNm9JR9uboiONcBXrpY1qmgs21x1QwyZcpvxt9NS09PlsPAAAAAElFTkSuQmCC&logoWidth=14' alt='Duplicate Space'></a></p>")
292
  gr.HTML("<p> Instruction on how to get session token can be seen in video <a style='display:inline-block' href='https://www.youtube.com/watch?v=TdNSj_qgdFk'><font style='color:blue;weight:bold;'>here</font></a>. Add your session token by going to settings and add under secrets. </p>")
 
327
  tab_img = gr.TabbedInterface(tab_actions, tab_titles)
328
 
329
  demo.launch(debug = True)
330
+