dlflannery commited on
Commit
79615b0
·
verified ·
1 Parent(s): e2c0d0d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -18
app.py CHANGED
@@ -28,8 +28,8 @@ client = OpenAI(api_key = key)
28
  def genUsageStats(do_reset=False):
29
  result = []
30
  for user in unames:
31
- tokens3 = 0
32
- tokens4 = 0
33
  fp = dataDir + user + '_log.txt'
34
  if os.path.exists(fp):
35
  accessOk = False
@@ -43,41 +43,42 @@ def genUsageStats(do_reset=False):
43
  for line in dataList:
44
  (u, t) = line.split(':')
45
  (t, m) = t.split('-')
46
- if '4' in m:
47
- tokens4 += int(t)
48
  else:
49
- tokens3 += int(t)
50
  accessOk = True
51
  break
52
  except:
53
  sleep(3)
54
  if not accessOk:
55
  return f'File access failed reading stats for user: {user}'
56
- # else:
57
- # total = 0
58
- result.append([user, str(tokens3), str(tokens4)])
59
  return result
60
 
61
  def clear():
62
  return [None, [], None]
63
 
64
  def updatePassword(txt):
65
- return [txt.lower(), "*********"]
66
 
67
  # def setModel(val):
68
  # return val
69
 
70
  def chat(prompt, user_window, pwd_window, past, response, gptModel):
71
- user_window = user_window.lower()
72
  isBoss = False
73
  if user_window == unames[0] and pwd_window == pwdList[0]:
74
  isBoss = True
75
  if prompt == 'stats':
76
  response = genUsageStats()
77
- return [past, response, None]
78
  if prompt == 'reset':
79
  response = genUsageStats(True)
80
- return [past, response, None]
 
 
 
81
  if user_window in unames and pwd_window in pwdList:
82
  past.append({"role":"user", "content":prompt})
83
  completion = client.chat.completions.create(model=gptModel,
@@ -95,9 +96,9 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel):
95
  try:
96
  dataFile = new_func(user_window)
97
  with open(dataFile, 'a') as f:
98
- m = '3'
99
- if '4' in gptModel:
100
- m = '4'
101
  f.write(f'{user_window}: {tokens}-{m}\n')
102
  accessOk = True
103
  break
@@ -105,9 +106,9 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel):
105
  sleep(3)
106
  if not accessOk:
107
  response += f"\nDATA LOG FAILED, path = {dataFile}"
108
- return [past, response , None]
109
  else:
110
- return [[], "User name and/or password are incorrect", prompt]
111
 
112
  def new_func(user_window):
113
  dataFile = dataDir + user_window + '_log.txt'
@@ -132,7 +133,7 @@ with gr.Blocks() as demo:
132
  prompt_window = gr.Textbox(label = "Prompt or Question")
133
  output_window = gr.Textbox(label = "Dialog")
134
  submit_window.click(chat, inputs=[prompt_window, user_window, password, history, output_window, model],
135
- outputs=[history, output_window, prompt_window])
136
  clear_button.click(clear, inputs=[], outputs=[prompt_window, history, output_window])
137
  # gpt_chooser.input(fn=setModel, inputs=gpt_chooser, outputs=model)
138
  demo.launch()
 
28
  def genUsageStats(do_reset=False):
29
  result = []
30
  for user in unames:
31
+ tokens4o = 0
32
+ tokens4mini = 0
33
  fp = dataDir + user + '_log.txt'
34
  if os.path.exists(fp):
35
  accessOk = False
 
43
  for line in dataList:
44
  (u, t) = line.split(':')
45
  (t, m) = t.split('-')
46
+ if 'mini' in m:
47
+ tokens4mini += int(t)
48
  else:
49
+ tokens4o += int(t)
50
  accessOk = True
51
  break
52
  except:
53
  sleep(3)
54
  if not accessOk:
55
  return f'File access failed reading stats for user: {user}'
56
+ result.append([user, str(tokens4mini), str(tokens4o)])
 
 
57
  return result
58
 
59
  def clear():
60
  return [None, [], None]
61
 
62
  def updatePassword(txt):
63
+ return [txt.lower().strip(), "*********"]
64
 
65
  # def setModel(val):
66
  # return val
67
 
68
  def chat(prompt, user_window, pwd_window, past, response, gptModel):
69
+ user_window = user_window.lower().strip()
70
  isBoss = False
71
  if user_window == unames[0] and pwd_window == pwdList[0]:
72
  isBoss = True
73
  if prompt == 'stats':
74
  response = genUsageStats()
75
+ return [past, response, None, gptModel]
76
  if prompt == 'reset':
77
  response = genUsageStats(True)
78
+ return [past, response, None, gptModel]
79
+ if prompt.startswith('gpt4'):
80
+ gptModel = 'gpt-4o'
81
+ prompt = prompt[5:]
82
  if user_window in unames and pwd_window in pwdList:
83
  past.append({"role":"user", "content":prompt})
84
  completion = client.chat.completions.create(model=gptModel,
 
96
  try:
97
  dataFile = new_func(user_window)
98
  with open(dataFile, 'a') as f:
99
+ m = '4o'
100
+ if 'mini' in gptModel:
101
+ m = '4omini'
102
  f.write(f'{user_window}: {tokens}-{m}\n')
103
  accessOk = True
104
  break
 
106
  sleep(3)
107
  if not accessOk:
108
  response += f"\nDATA LOG FAILED, path = {dataFile}"
109
+ return [past, response , None, gptModel]
110
  else:
111
+ return [[], "User name and/or password are incorrect", prompt, gptModel]
112
 
113
  def new_func(user_window):
114
  dataFile = dataDir + user_window + '_log.txt'
 
133
  prompt_window = gr.Textbox(label = "Prompt or Question")
134
  output_window = gr.Textbox(label = "Dialog")
135
  submit_window.click(chat, inputs=[prompt_window, user_window, password, history, output_window, model],
136
+ outputs=[history, output_window, prompt_window, model])
137
  clear_button.click(clear, inputs=[], outputs=[prompt_window, history, output_window])
138
  # gpt_chooser.input(fn=setModel, inputs=gpt_chooser, outputs=model)
139
  demo.launch()