Wajahat698 commited on
Commit
d3bbe3a
·
verified ·
1 Parent(s): 6c780a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -26
app.py CHANGED
@@ -165,7 +165,31 @@ def upload_to_firebase(user_id, content):
165
  st.error(f"Error uploading to Firebase: {e}")
166
  return None
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
 
 
 
 
 
 
 
 
 
 
169
 
170
  # Define and validate API keys
171
  openai_api_key = os.getenv("OPENAI_API_KEY")
@@ -503,6 +527,9 @@ def save_content(user_id, brand, trust_builder_text, trust_bucket=None):
503
  except Exception as e:
504
  st.error(f"Error saving TrustBuilder: {e}")
505
 
 
 
 
506
 
507
 
508
 
@@ -534,17 +561,13 @@ def delete_document(user_id, doc_id):
534
  st.error(f"Error deleting document: {e}")
535
 
536
  # Fetch documents from Firebase
537
- def fetch_documents(user_id):
538
- """
539
- Fetches all saved documents from Firebase.
540
- """
541
  try:
542
- docs = db.child("users").child(user_id).child("KnowledgeBase").get().val()
543
- return docs if docs else {}
 
544
  except Exception as e:
545
- st.error(f"Error fetching documents: {e}")
546
- return {}
547
-
548
 
549
 
550
  def side():
@@ -682,22 +705,27 @@ def side():
682
  .scrollable-container {
683
  max-height: 300px;
684
  overflow-y: auto;
685
- border: 1px solid #ddd;
686
  padding: 10px;
687
  border-radius: 5px;
 
688
  }
689
  </style>
690
  """, unsafe_allow_html=True)
691
 
692
- st.markdown('<div class="scrollable-container">', unsafe_allow_html=True)
 
 
 
 
 
 
693
 
694
- # Saved Documents Section
695
- st.subheader("Saved Documents")
696
- docs = fetch_documents(st.session_state["wix_user_id"])
697
 
698
- if docs:
699
- for doc_id, doc_data in docs.items():
700
- with st.expander(f"Document ID: {doc_id[:8]}"):
701
  st.text_area("Preview", doc_data.get("content", ""), height=80, disabled=True)
702
  public_url = doc_data.get("public_url", "URL not available")
703
  if public_url != "URL not available":
@@ -705,9 +733,10 @@ def side():
705
  # Add delete button for each document
706
  if st.button(f"Delete Document {doc_id[:8]}", key=f"del_doc_{doc_id}"):
707
  delete_document(st.session_state["wix_user_id"], doc_id)
708
- st.experimental_rerun() # Refresh the app to reflect deletion
709
- else:
710
- st.write("No saved documents found.")
 
711
 
712
  # File Upload Section
713
  st.subheader("Upload New Documents")
@@ -734,14 +763,12 @@ def side():
734
  })
735
  st.success("Files uploaded and saved successfully!")
736
  st.markdown(f"[View your knowledge base here]({public_url})", unsafe_allow_html=True)
737
- st.experimental_rerun() # Refresh to show the new document
738
  else:
739
  st.warning("No valid files uploaded.")
740
  else:
741
  st.warning("Please select at least one file to upload.")
742
 
743
- st.markdown('</div>', unsafe_allow_html=True)
744
-
745
  # Show My TrustBuilders Section
746
  st.subheader("Show my TrustBuilders®")
747
  search_query = st.text_input("Search by keyword", key="keyword")
@@ -761,7 +788,7 @@ def side():
761
  with st.expander(f"TrustBuilder ID: {result_id[:8]}"):
762
  st.write(f"Brand: {result_data.get('brand', 'N/A')}")
763
  st.write(f"Bucket: {result_data.get('bucket', 'N/A')}")
764
- st.write(f"Message: {result_data['message']}")
765
  # Add delete button for each TrustBuilder
766
  if st.button(f"Delete TrustBuilder {result_id[:8]}", key=f"del_tb_{result_id}"):
767
  delete_trustbuilder(st.session_state["wix_user_id"], result_id)
@@ -769,13 +796,13 @@ def side():
769
  st.write("No TrustBuilders found.")
770
 
771
  # Trust Bucket Selection
772
- st.write("and choose the Trust Bucket®")
773
  trust_buckets = ["S", "D", "R", "B", "V", "C"]
774
  bucket_labels = ["Stability", "Development", "Relationship", "Benefit", "Vision", "Competence"]
775
  cols = st.columns(len(trust_buckets))
776
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
777
  if cols[idx].button(f"{bucket}", key=f"bucket_{label}"):
778
- st.write(f"{label} Trust clicked")
779
  st.session_state["selected_bucket"] = label
780
 
781
  # Save TrustBuilders Section
@@ -797,6 +824,8 @@ def side():
797
  st.success(f"AI allocated the Trust Bucket: {allocated_bucket} and saved your TrustBuilder.")
798
  else:
799
  st.error("AI could not allocate the Trust Bucket.")
 
 
800
  side()
801
  # Load knowledge base
802
 
 
165
  st.error(f"Error uploading to Firebase: {e}")
166
  return None
167
 
168
+ def fetch_trustbuilders(user_id, keyword=None, brand=None, bucket=None):
169
+ try:
170
+ trustbuilders = db.child("users").child(user_id).child("TrustBuilder").get().val()
171
+ if trustbuilders:
172
+ filtered_trustbuilders = {
173
+ k: v for k, v in trustbuilders.items()
174
+ if (not keyword or keyword.lower() in v.get("message", "").lower())
175
+ and (not brand or brand.lower() in v.get("brand", "").lower())
176
+ and (not bucket or bucket == v.get("bucket", ""))
177
+ }
178
+ return filtered_trustbuilders
179
+ return {}
180
+ except Exception as e:
181
+ st.error(f"Error fetching TrustBuilders: {e}")
182
+ return {}
183
 
184
+ def delete_trustbuilder(user_id, trustbuilder_id):
185
+ try:
186
+ db.child("users").child(user_id).child("TrustBuilder").child(trustbuilder_id).remove()
187
+ st.success("TrustBuilder deleted successfully.")
188
+ st.experimental_rerun()
189
+ except Exception as e:
190
+ st.error(f"Error deleting TrustBuilder: {e}")
191
+
192
+
193
 
194
  # Define and validate API keys
195
  openai_api_key = os.getenv("OPENAI_API_KEY")
 
527
  except Exception as e:
528
  st.error(f"Error saving TrustBuilder: {e}")
529
 
530
+ def ai_allocate_trust_bucket(trust_builder_text):
531
+ # Implement your AI allocation logic here
532
+ return "Stability"
533
 
534
 
535
 
 
561
  st.error(f"Error deleting document: {e}")
562
 
563
  # Fetch documents from Firebase
564
+ def delete_document(user_id, doc_id):
 
 
 
565
  try:
566
+ db.child("users").child(user_id).child("documents").child(doc_id).remove()
567
+ st.success("Document deleted successfully.")
568
+ st.experimental_rerun()
569
  except Exception as e:
570
+ st.error(f"Error deleting document: {e}")
 
 
571
 
572
 
573
  def side():
 
705
  .scrollable-container {
706
  max-height: 300px;
707
  overflow-y: auto;
708
+ border: 1px solid gray;
709
  padding: 10px;
710
  border-radius: 5px;
711
+ background-color: #f9f9f9;
712
  }
713
  </style>
714
  """, unsafe_allow_html=True)
715
 
716
+ # Container for Saved Documents
717
+ with st.container():
718
+ st.subheader("Saved Documents")
719
+ st.write("Save documents like your brand tonality, key phrases, or segments here.")
720
+
721
+ # Scrollable container with gray border
722
+ st.markdown('<div class="scrollable-container">', unsafe_allow_html=True)
723
 
724
+ docs = fetch_documents(st.session_state["wix_user_id"])
 
 
725
 
726
+ if docs:
727
+ for doc_id, doc_data in docs.items():
728
+ st.markdown(f"**Document ID:** {doc_id[:8]}")
729
  st.text_area("Preview", doc_data.get("content", ""), height=80, disabled=True)
730
  public_url = doc_data.get("public_url", "URL not available")
731
  if public_url != "URL not available":
 
733
  # Add delete button for each document
734
  if st.button(f"Delete Document {doc_id[:8]}", key=f"del_doc_{doc_id}"):
735
  delete_document(st.session_state["wix_user_id"], doc_id)
736
+ else:
737
+ st.write("No saved documents found.")
738
+
739
+ st.markdown('</div>', unsafe_allow_html=True)
740
 
741
  # File Upload Section
742
  st.subheader("Upload New Documents")
 
763
  })
764
  st.success("Files uploaded and saved successfully!")
765
  st.markdown(f"[View your knowledge base here]({public_url})", unsafe_allow_html=True)
766
+ st.experimental_rerun()
767
  else:
768
  st.warning("No valid files uploaded.")
769
  else:
770
  st.warning("Please select at least one file to upload.")
771
 
 
 
772
  # Show My TrustBuilders Section
773
  st.subheader("Show my TrustBuilders®")
774
  search_query = st.text_input("Search by keyword", key="keyword")
 
788
  with st.expander(f"TrustBuilder ID: {result_id[:8]}"):
789
  st.write(f"Brand: {result_data.get('brand', 'N/A')}")
790
  st.write(f"Bucket: {result_data.get('bucket', 'N/A')}")
791
+ st.write(f"Message: {result_data.get('message', '')}")
792
  # Add delete button for each TrustBuilder
793
  if st.button(f"Delete TrustBuilder {result_id[:8]}", key=f"del_tb_{result_id}"):
794
  delete_trustbuilder(st.session_state["wix_user_id"], result_id)
 
796
  st.write("No TrustBuilders found.")
797
 
798
  # Trust Bucket Selection
799
+ st.write("Choose the Trust Bucket®")
800
  trust_buckets = ["S", "D", "R", "B", "V", "C"]
801
  bucket_labels = ["Stability", "Development", "Relationship", "Benefit", "Vision", "Competence"]
802
  cols = st.columns(len(trust_buckets))
803
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
804
  if cols[idx].button(f"{bucket}", key=f"bucket_{label}"):
805
+ st.write(f"Selected Trust Bucket: {label}")
806
  st.session_state["selected_bucket"] = label
807
 
808
  # Save TrustBuilders Section
 
824
  st.success(f"AI allocated the Trust Bucket: {allocated_bucket} and saved your TrustBuilder.")
825
  else:
826
  st.error("AI could not allocate the Trust Bucket.")
827
+
828
+
829
  side()
830
  # Load knowledge base
831