Spaces:
Running
Running
Farid Karimli
commited on
Commit
·
96bddf1
1
Parent(s):
97415a1
Metadata fix
Browse files- apps/ai_tutor/app.py +3 -5
- apps/ai_tutor/chainlit_app.py +6 -2
- apps/ai_tutor/helpers.py +6 -3
apps/ai_tutor/app.py
CHANGED
@@ -211,12 +211,10 @@ async def auth_google(request: Request):
|
|
211 |
|
212 |
# add literalai user info to session store to be sent to chainlit
|
213 |
literalai_user = await get_user_details(email)
|
214 |
-
print(f"Literalai user: {literalai_user}")
|
215 |
session_store[session_token]["literalai_info"] = literalai_user.to_dict()
|
216 |
session_store[session_token]["literalai_info"]["metadata"]["role"] = role
|
217 |
|
218 |
user_info_json = json.dumps(session_store[session_token])
|
219 |
-
print(f"User info json: {user_info_json}")
|
220 |
user_info_encoded = base64.b64encode(user_info_json.encode()).decode()
|
221 |
|
222 |
# Set cookies
|
@@ -272,10 +270,10 @@ async def post_signin(request: Request):
|
|
272 |
current_datetime = get_time()
|
273 |
user_details.metadata["last_login"] = current_datetime
|
274 |
# if new user, set the number of tries
|
|
|
|
|
275 |
if "tokens_left" not in user_details.metadata:
|
276 |
-
user_details.metadata["tokens_left"] =
|
277 |
-
TOKENS_LEFT # set the number of tokens left for the new user
|
278 |
-
)
|
279 |
if "last_message_time" not in user_details.metadata:
|
280 |
user_details.metadata["last_message_time"] = current_datetime
|
281 |
if "all_time_tokens_allocated" not in user_details.metadata:
|
|
|
211 |
|
212 |
# add literalai user info to session store to be sent to chainlit
|
213 |
literalai_user = await get_user_details(email)
|
|
|
214 |
session_store[session_token]["literalai_info"] = literalai_user.to_dict()
|
215 |
session_store[session_token]["literalai_info"]["metadata"]["role"] = role
|
216 |
|
217 |
user_info_json = json.dumps(session_store[session_token])
|
|
|
218 |
user_info_encoded = base64.b64encode(user_info_json.encode()).decode()
|
219 |
|
220 |
# Set cookies
|
|
|
270 |
current_datetime = get_time()
|
271 |
user_details.metadata["last_login"] = current_datetime
|
272 |
# if new user, set the number of tries
|
273 |
+
if "role" not in user_details.metadata:
|
274 |
+
user_details.metadata["role"] = get_user_role(user_info["email"])
|
275 |
if "tokens_left" not in user_details.metadata:
|
276 |
+
user_details.metadata["tokens_left"] = TOKENS_LEFT
|
|
|
|
|
277 |
if "last_message_time" not in user_details.metadata:
|
278 |
user_details.metadata["last_message_time"] = current_datetime
|
279 |
if "all_time_tokens_allocated" not in user_details.metadata:
|
apps/ai_tutor/chainlit_app.py
CHANGED
@@ -505,7 +505,7 @@ class Chatbot:
|
|
505 |
await self.start()
|
506 |
|
507 |
@cl.header_auth_callback
|
508 |
-
def header_auth_callback(headers: dict) -> Optional[cl.User]:
|
509 |
# try: # TODO: Add try-except block after testing
|
510 |
# TODO: Implement to get the user information from the headers (not the cookie)
|
511 |
cookie = headers.get("cookie") # gets back a str
|
@@ -521,10 +521,14 @@ class Chatbot:
|
|
521 |
).decode()
|
522 |
decoded_user_info = json.loads(decoded_user_info)
|
523 |
|
|
|
|
|
|
|
|
|
524 |
return cl.User(
|
525 |
id=decoded_user_info["literalai_info"]["id"],
|
526 |
identifier=decoded_user_info["literalai_info"]["identifier"],
|
527 |
-
metadata=
|
528 |
)
|
529 |
|
530 |
async def on_follow_up(self, action: cl.Action):
|
|
|
505 |
await self.start()
|
506 |
|
507 |
@cl.header_auth_callback
|
508 |
+
async def header_auth_callback(headers: dict) -> Optional[cl.User]:
|
509 |
# try: # TODO: Add try-except block after testing
|
510 |
# TODO: Implement to get the user information from the headers (not the cookie)
|
511 |
cookie = headers.get("cookie") # gets back a str
|
|
|
521 |
).decode()
|
522 |
decoded_user_info = json.loads(decoded_user_info)
|
523 |
|
524 |
+
user_id = decoded_user_info["literalai_info"]["identifier"]
|
525 |
+
user_info = await get_user_details(user_id)
|
526 |
+
metadata = user_info.metadata
|
527 |
+
|
528 |
return cl.User(
|
529 |
id=decoded_user_info["literalai_info"]["id"],
|
530 |
identifier=decoded_user_info["literalai_info"]["identifier"],
|
531 |
+
metadata=metadata,
|
532 |
)
|
533 |
|
534 |
async def on_follow_up(self, action: cl.Action):
|
apps/ai_tutor/helpers.py
CHANGED
@@ -46,10 +46,13 @@ async def check_user_cooldown(
|
|
46 |
async def reset_tokens_for_user(user_info, TOKENS_LEFT, REGEN_TIME):
|
47 |
user_info = convert_to_dict(user_info)
|
48 |
last_message_time_str = user_info["metadata"].get("last_message_time")
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
last_message_time = datetime.fromisoformat(last_message_time_str).replace(
|
51 |
-
tzinfo=timezone.utc
|
52 |
-
)
|
53 |
current_time = datetime.fromisoformat(get_time()).replace(tzinfo=timezone.utc)
|
54 |
|
55 |
# Calculate the elapsed time since the last message
|
|
|
46 |
async def reset_tokens_for_user(user_info, TOKENS_LEFT, REGEN_TIME):
|
47 |
user_info = convert_to_dict(user_info)
|
48 |
last_message_time_str = user_info["metadata"].get("last_message_time")
|
49 |
+
try:
|
50 |
+
last_message_time = datetime.fromisoformat(last_message_time_str).replace(
|
51 |
+
tzinfo=timezone.utc
|
52 |
+
)
|
53 |
+
except Exception: # this probably means the user has never sent a message before
|
54 |
+
last_message_time = datetime.min.replace(tzinfo=timezone.utc)
|
55 |
|
|
|
|
|
|
|
56 |
current_time = datetime.fromisoformat(get_time()).replace(tzinfo=timezone.utc)
|
57 |
|
58 |
# Calculate the elapsed time since the last message
|