dlflannery commited on
Commit
cc4a887
·
verified ·
1 Parent(s): 3f653ef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -8
app.py CHANGED
@@ -11,12 +11,30 @@ users = os.getenv('LOGNAME')
11
  unames = users.split(',')
12
  pwds = os.getenv('PASSWORD')
13
  pwdList = pwds.split(',')
14
- cwd = os.getcwd()
15
  dp = Path('../data')
16
  dp.mkdir(exist_ok=True)
 
17
 
18
  client = OpenAI(api_key = key)
19
- dataLogFilePath = "../data/usageData.txt"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  def clear():
22
  return [None, [], None]
@@ -25,6 +43,13 @@ def updatePassword(txt):
25
  return [txt, "*********"]
26
 
27
  def chat(prompt, user_window, pwd_window, past, response, gptModel):
 
 
 
 
 
 
 
28
  if user_window in unames and pwd_window in pwdList:
29
  past.append({"role":"user", "content":prompt})
30
  completion = client.chat.completions.create(model=gptModel,
@@ -35,15 +60,18 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel):
35
  response += "\n\nTHIS DIALOG IS GETTING TOO LONG. PLEASE CLEAR IT."
36
  past.append({"role":"assistant", "content": reply})
37
  try:
38
- with open(dataLogFilePath, 'a') as f:
39
- f.write(f'{user_window}: {len(response)} chars\n')
40
- with open(dataLogFilePath) as f:
 
41
  response += '\n' + f.read()
42
  except Exception as e:
43
- response += f"\nDATA LOG FAILED, path = {dataLogFilePath},\nmsg = {e}"
44
- return [past, response, None]
 
 
45
  else:
46
- return [[], "User name and/or password are incorrect" + '\npwds = ' + ','.join(pwdList) + 'pwd= ' + pwd_window + ' user= '+user_window, prompt]
47
 
48
  with gr.Blocks() as demo:
49
  history = gr.State([])
 
11
  unames = users.split(',')
12
  pwds = os.getenv('PASSWORD')
13
  pwdList = pwds.split(',')
 
14
  dp = Path('../data')
15
  dp.mkdir(exist_ok=True)
16
+ dataDir = '../data/'
17
 
18
  client = OpenAI(api_key = key)
19
+
20
+ def genUsageStats(do_reset=False):
21
+ result = []
22
+ for user in unames:
23
+ total = 0
24
+ fp = dataDir + user + '_log.txt'
25
+ if os.path.exists(fp):
26
+ with open(fp) as f:
27
+ dataList = f.readlines()
28
+ if do_reset:
29
+ os.remove(fp)
30
+ for line in dataList:
31
+ (u, c) = line.split(':')
32
+ total += int(c)
33
+ else:
34
+ total = 0
35
+ result.append([user, str(total)])
36
+
37
+ return result
38
 
39
  def clear():
40
  return [None, [], None]
 
43
  return [txt, "*********"]
44
 
45
  def chat(prompt, user_window, pwd_window, past, response, gptModel):
46
+ if user_window == 'dave' and pwd_window == 'boss':
47
+ if prompt == 'stats':
48
+ response = genUsageStats()
49
+ return [past, response, None]
50
+ if prompt == 'reset':
51
+ response = genUsageStats(True)
52
+ return [past, response, None]
53
  if user_window in unames and pwd_window in pwdList:
54
  past.append({"role":"user", "content":prompt})
55
  completion = client.chat.completions.create(model=gptModel,
 
60
  response += "\n\nTHIS DIALOG IS GETTING TOO LONG. PLEASE CLEAR IT."
61
  past.append({"role":"assistant", "content": reply})
62
  try:
63
+ dataFile = dataDir + user_window + '_log.txt'
64
+ with open(dataFile, 'a') as f:
65
+ f.write(f'{user_window}: {len(response)}\n')
66
+ with open(dataFile) as f:
67
  response += '\n' + f.read()
68
  except Exception as e:
69
+ response += f"\nDATA LOG FAILED, path = {dataFile}\nmsg = {e}"
70
+ # response += f'\npPath = {p.absolute()}'
71
+ # response += '\nUsers = ' + ','.join(unames)
72
+ return [past, response , None]
73
  else:
74
+ return [[], "User name and/or password are incorrect", prompt]
75
 
76
  with gr.Blocks() as demo:
77
  history = gr.State([])