Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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=
|
| 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 |
+
|