dlflannery commited on
Commit
b267e8f
·
verified ·
1 Parent(s): fc42d3b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -17
app.py CHANGED
@@ -4,6 +4,7 @@ import gradio as gr
4
  from openai import OpenAI
5
  from dotenv import load_dotenv
6
  from pathlib import Path
 
7
 
8
  load_dotenv()
9
  key = os.getenv('OPENAI_API_KEY')
@@ -30,13 +31,22 @@ def genUsageStats(do_reset=False):
30
  tokens = 0
31
  fp = dataDir + user + '_log.txt'
32
  if os.path.exists(fp):
33
- with open(fp) as f:
34
- dataList = f.readlines()
35
- if do_reset:
36
- os.remove(fp)
37
- for line in dataList:
38
- (u, t) = line.split(':')
39
- tokens += int(t)
 
 
 
 
 
 
 
 
 
40
  else:
41
  total = 0
42
  result.append([user, str(tokens)])
@@ -74,20 +84,26 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel):
74
  if tokens > 40000:
75
  response += "\n\nTHIS DIALOG IS GETTING TOO LONG. PLEASE RESTART CONVERSATION SOON."
76
  past.append({"role":"assistant", "content": reply})
77
- try:
78
- dataFile = dataDir + user_window + '_log.txt'
79
- with open(dataFile, 'a') as f:
80
- f.write(f'{user_window}: {tokens}\n')
81
- # with open(dataFile) as f:
82
- # response += '\n' + f.read()
83
- except Exception as e:
84
- response += f"\nDATA LOG FAILED, path = {dataFile}\nmsg = {e}"
85
- # response += f'\npPath = {p.absolute()}'
86
- # response += '\nUsers = ' + ','.join(unames)
 
 
87
  return [past, response , None]
88
  else:
89
  return [[], "User name and/or password are incorrect", prompt]
90
 
 
 
 
 
91
  with gr.Blocks() as demo:
92
  history = gr.State([])
93
  password = gr.State("")
 
4
  from openai import OpenAI
5
  from dotenv import load_dotenv
6
  from pathlib import Path
7
+ from time import sleep
8
 
9
  load_dotenv()
10
  key = os.getenv('OPENAI_API_KEY')
 
31
  tokens = 0
32
  fp = dataDir + user + '_log.txt'
33
  if os.path.exists(fp):
34
+ accessOk = False
35
+ for i in range(3):
36
+ try:
37
+ with open(fp) as f:
38
+ dataList = f.readlines()
39
+ if do_reset:
40
+ os.remove(fp)
41
+ for line in dataList:
42
+ (u, t) = line.split(':')
43
+ tokens += int(t)
44
+ accessOk = True
45
+ break
46
+ except:
47
+ sleep(3)
48
+ if not accessOk:
49
+ return f'File access failed reading stats for user: {user}'
50
  else:
51
  total = 0
52
  result.append([user, str(tokens)])
 
84
  if tokens > 40000:
85
  response += "\n\nTHIS DIALOG IS GETTING TOO LONG. PLEASE RESTART CONVERSATION SOON."
86
  past.append({"role":"assistant", "content": reply})
87
+ accessOk = False
88
+ for i in range(3):
89
+ try:
90
+ dataFile = new_func(user_window)
91
+ with open(dataFile, 'a') as f:
92
+ f.write(f'{user_window}: {tokens}\n')
93
+ accessOk = True
94
+ break
95
+ except Exception as e:
96
+ sleep(3)
97
+ if not accessOk:
98
+ response += f"\nDATA LOG FAILED, path = {dataFile}"
99
  return [past, response , None]
100
  else:
101
  return [[], "User name and/or password are incorrect", prompt]
102
 
103
+ def new_func(user_window):
104
+ dataFile = dataDir + user_window + '_log.txt'
105
+ return dataFile
106
+
107
  with gr.Blocks() as demo:
108
  history = gr.State([])
109
  password = gr.State("")