Rauhan commited on
Commit
d07d38d
2 Parent(s): d3176f4 dcc2094

Merge branch 'main' of https://huggingface.co/spaces/techconspartners/ConversAI

Browse files
Files changed (2) hide show
  1. app.py +23 -11
  2. functions.py +25 -14
app.py CHANGED
@@ -35,16 +35,23 @@ async def sign_up(email, username, password):
35
  res, _ = supabase.auth.sign_up(
36
  {"email": email, "password": password, "role": "user"}
37
  )
38
- user_id = res[1].id
39
- r_ = createUser(user_id=user_id, username=username)
40
- print(r_)
41
-
42
- response = {
43
- "status": "success",
44
- "code": 200,
45
- "message": "Please check you email address for email verification",
46
- }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  return response
49
 
50
 
@@ -104,6 +111,7 @@ async def sign_in(email, password):
104
  "AccessToken": access_token,
105
  "StoreID": user_id,
106
  "RefreshToken": refresh_token,
 
107
  }
108
  ).execute()
109
  )
@@ -147,10 +155,12 @@ async def login_with_token(access_token: str, refresh_token: str):
147
  user_id_oauth = decoded_token.get("sub")
148
  try:
149
  user_id = supabase.table("ConversAI_UserInfo").select("*").filter("user_id", "eq", user_id_oauth).execute()
 
 
150
  user_name = user_id.data[0]["username"]
151
 
152
  except:
153
- user_name = 'null'
154
 
155
  json = {
156
  "code": status.HTTP_200_OK,
@@ -171,7 +181,9 @@ async def login_with_token(access_token: str, refresh_token: str):
171
 
172
  @app.post("/user_name")
173
  async def user_name_(username: str, user_id: str):
174
- r_ = createUser(user_id=user_id, username=username)
 
 
175
  return r_
176
 
177
 
 
35
  res, _ = supabase.auth.sign_up(
36
  {"email": email, "password": password, "role": "user"}
37
  )
 
 
 
 
 
 
 
 
 
38
 
39
+ user_id = res[1].id
40
+ r_ = createUser(user_id=user_id, username=username, email=email)
41
+ if r_.get('code') == 409:
42
+ return r_
43
+ elif r_.get('code') == 200:
44
+ response = {
45
+ "status": "success",
46
+ "code": 200,
47
+ "message": "Please check you email address for email verification",
48
+ }
49
+ else:
50
+ response = {
51
+ "status": "failed",
52
+ "code": 400,
53
+ "message": "Failed to sign up please try again later",
54
+ }
55
  return response
56
 
57
 
 
111
  "AccessToken": access_token,
112
  "StoreID": user_id,
113
  "RefreshToken": refresh_token,
114
+ "email": email
115
  }
116
  ).execute()
117
  )
 
155
  user_id_oauth = decoded_token.get("sub")
156
  try:
157
  user_id = supabase.table("ConversAI_UserInfo").select("*").filter("user_id", "eq", user_id_oauth).execute()
158
+ user_id = supabase.table("ConversAI_UserInfo").select("*").filter("email", "eq", user_id_oauth).execute()
159
+
160
  user_name = user_id.data[0]["username"]
161
 
162
  except:
163
+ user_name = ''
164
 
165
  json = {
166
  "code": status.HTTP_200_OK,
 
181
 
182
  @app.post("/user_name")
183
  async def user_name_(username: str, user_id: str):
184
+ user_data = supabase.table("Stores").select("*").filter("StoreID", "eq", user_id).execute()
185
+ email = user_data.data[0].get("email")
186
+ r_ = createUser(user_id=user_id, username=username, email=email)
187
  return r_
188
 
189
 
functions.py CHANGED
@@ -73,23 +73,32 @@ prompt = ChatPromptTemplate.from_template(prompt)
73
  chatHistoryStore = dict()
74
 
75
 
76
- def createUser(user_id: str, username: str) -> dict:
77
- try:
78
- userData = client.table("ConversAI_UserInfo").select("*").execute().data
79
- if username not in [userData[x]["user_id"] for x in range(len(userData))]:
80
- client.table("ConversAI_UserInfo").insert({"user_id": user_id, "username": username}).execute()
 
 
81
  client.table("ConversAI_UserConfig").insert({"user_id": username}).execute()
82
 
83
- return {
84
- "output": "SUCCESS"
 
85
  }
86
- else:
87
- return {
88
- "output": "USER ALREADY EXISTS"
 
 
89
  }
90
- except Exception as e:
 
 
 
91
  return {
92
- "error": e
 
93
  }
94
 
95
 
@@ -188,10 +197,11 @@ def answerQuery(query: str, vectorstore: str, llmModel: str = "llama3-70b-8192")
188
  api_key=os.environ["QDRANT_API_KEY"],
189
  retrieval_mode=RetrievalMode.HYBRID
190
  )
191
- retriever = vectorstore.as_retriever(search_type = "mmr", search_kwargs={"k": 4, "score_threshold": None})
192
  baseChain = (
193
  {"context": RunnableLambda(lambda x: x["question"]) | retriever | RunnableLambda(format_docs),
194
- "question": RunnableLambda(lambda x: x["question"]), "chatHistory": RunnableLambda(lambda x: x["chatHistory"])}
 
195
  | prompt
196
  | ChatGroq(model=llmModel, temperature=0.75, max_tokens=512)
197
  | StrOutputParser()
@@ -276,6 +286,7 @@ def getTextFromImagePDF(pdfBytes):
276
  def getText(image):
277
  global reader
278
  return "\n".join([text[1] for text in reader.readtext(np.array(image), paragraph=True)])
 
279
  allImages = convert_from_bytes(pdfBytes)
280
  texts = [getText(image) for image in allImages]
281
  return {x + 1: y for x, y in enumerate(texts)}
 
73
  chatHistoryStore = dict()
74
 
75
 
76
+ def createUser(user_id: str, username: str, email: str) -> dict:
77
+ userData = client.table("ConversAI_UserInfo").select("*").execute().data
78
+ if username not in [userData[x]["username"] for x in range(len(userData))]:
79
+ try:
80
+ client.table("ConversAI_UserInfo").insert(
81
+ {"user_id": user_id, "username": username, "email": email}).execute()
82
+
83
  client.table("ConversAI_UserConfig").insert({"user_id": username}).execute()
84
 
85
+ res = {
86
+ "code": 200,
87
+ "message": "User Setup Successful"
88
  }
89
+
90
+ except Exception as e:
91
+ res = {
92
+ "code": 409,
93
+ "message": "Email already exists",
94
  }
95
+
96
+ return res
97
+
98
+ else:
99
  return {
100
+ "code": 409,
101
+ "message": "Email already exists"
102
  }
103
 
104
 
 
197
  api_key=os.environ["QDRANT_API_KEY"],
198
  retrieval_mode=RetrievalMode.HYBRID
199
  )
200
+ retriever = vectorstore.as_retriever(search_type="mmr", search_kwargs={"k": 4, "score_threshold": None})
201
  baseChain = (
202
  {"context": RunnableLambda(lambda x: x["question"]) | retriever | RunnableLambda(format_docs),
203
+ "question": RunnableLambda(lambda x: x["question"]),
204
+ "chatHistory": RunnableLambda(lambda x: x["chatHistory"])}
205
  | prompt
206
  | ChatGroq(model=llmModel, temperature=0.75, max_tokens=512)
207
  | StrOutputParser()
 
286
  def getText(image):
287
  global reader
288
  return "\n".join([text[1] for text in reader.readtext(np.array(image), paragraph=True)])
289
+
290
  allImages = convert_from_bytes(pdfBytes)
291
  texts = [getText(image) for image in allImages]
292
  return {x + 1: y for x, y in enumerate(texts)}