ak0601 commited on
Commit
b37cc98
·
verified ·
1 Parent(s): 3efe308

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -1
app.py CHANGED
@@ -25,6 +25,32 @@ assert os.getenv("GOOGLE_API_KEY"), "Set GOOGLE_API_KEY in .env"
25
  assert os.getenv("TAVILY_API_KEY"), "Set TAVILY_API_KEY in .env"
26
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  def flatten_json(obj: dict) -> str:
29
  pieces = []
30
  def recurse(prefix, value):
@@ -125,6 +151,15 @@ runner, session = create_agent()
125
  # === STREAMLIT UI ===
126
  st.title("🎓 Jossa-ChatBot")
127
 
 
 
 
 
 
 
 
 
 
128
  if "history" not in st.session_state:
129
  st.session_state.history = []
130
 
@@ -139,10 +174,14 @@ if query:
139
  st.session_state.history.append(("user", query))
140
  # Run agent
141
  user_msg = types.Content(role="user", parts=[types.Part(text=query)])
142
- events = runner.run(user_id="user1", session_id=session.id, new_message=user_msg)
143
  # Collect final response text
144
  reply = ""
145
  for ev in events:
146
  if ev.is_final_response(): reply = ev.content.parts[0].text
 
 
147
  st.session_state.history.append(("assistant", reply))
 
148
  st.rerun()
 
 
25
  assert os.getenv("TAVILY_API_KEY"), "Set TAVILY_API_KEY in .env"
26
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
27
 
28
+
29
+ service_account_path = {
30
+ "type": os.getenv("type"),
31
+ "project_id": os.getenv("project_id"),
32
+ "private_key_id": str(os.getenv("private_key_id")).replace('\\n', '\n'),
33
+ "private_key": str(os.getenv("private_key")).replace('\\n', '\n'),
34
+ "client_email": os.getenv("client_email"),
35
+ "client_id": os.getenv("client_id"),
36
+ "auth_uri": os.getenv("auth_uri"),
37
+ "token_uri": os.getenv("token_uri"),
38
+ "auth_provider_x509_cert_url": os.getenv("auth_provider_x509_cert_url"),
39
+ "client_x509_cert_url": os.getenv("client_x509_cert_url"),
40
+ "universe_domain":os.getenv("universe_domain")
41
+ }
42
+
43
+ def add_query_to_sheet(user_id, query, response):
44
+ gc = gspread.service_account_from_dict(service_account_path)
45
+ sh = gc.open_by_key(SHEET_KEY)
46
+ worksheet = sh.worksheet("Sheet1")
47
+
48
+
49
+ timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
50
+ worksheet.append_row([user_id, timestamp, query, response])
51
+
52
+
53
+
54
  def flatten_json(obj: dict) -> str:
55
  pieces = []
56
  def recurse(prefix, value):
 
151
  # === STREAMLIT UI ===
152
  st.title("🎓 Jossa-ChatBot")
153
 
154
+ if "user_id" not in st.session_state:
155
+ st.session_state.user_id = str(uuid.uuid4())
156
+ if "session_id" not in st.session_state:
157
+ st.session_state.session_id = str(uuid.uuid4())
158
+
159
+ user_id = st.session_state.user_id
160
+
161
+ runner, session = create_agent(st.session_state.user_id, st.session_state.session_id)
162
+
163
  if "history" not in st.session_state:
164
  st.session_state.history = []
165
 
 
174
  st.session_state.history.append(("user", query))
175
  # Run agent
176
  user_msg = types.Content(role="user", parts=[types.Part(text=query)])
177
+ events = runner.run(user_id=user_id, session_id=session.id, new_message=user_msg)
178
  # Collect final response text
179
  reply = ""
180
  for ev in events:
181
  if ev.is_final_response(): reply = ev.content.parts[0].text
182
+ if reply=="":
183
+ reply="Please provide complete context."
184
  st.session_state.history.append(("assistant", reply))
185
+ add_query_to_sheet(user_id=user_id, query=query, response=reply)
186
  st.rerun()
187
+