AnnasBlackHat commited on
Commit
f62b4e3
1 Parent(s): 25f1028

load all faq

Browse files
Files changed (5) hide show
  1. .gitignore +129 -0
  2. Pipfile +13 -0
  3. app.py +10 -0
  4. pages/chat_page.py +16 -0
  5. pages/faq_page.py +33 -0
.gitignore ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache/
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre/
Pipfile ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [[source]]
2
+ url = "https://pypi.org/simple"
3
+ verify_ssl = true
4
+ name = "pypi"
5
+
6
+ [packages]
7
+ streamlit = "*"
8
+ pymongo = {extras = ["srv"], version = "*"}
9
+
10
+ [dev-packages]
11
+
12
+ [requires]
13
+ python_version = "3.12"
app.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ st.set_page_config(page_title="FAQ and Chat App")
4
+ st.title("FAQ and Chat App")
5
+ st.write("Welcome to the FAQ and Chat App! Navigate using the sidebar.")
6
+
7
+
8
+ (st.page_link("pages/faq_page.py", label="FAQ"))
9
+ (st.page_link("pages/chat_page.py", label="Chat"))
10
+
pages/chat_page.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ st.title("Chat")
4
+
5
+ # Create a placeholder for the chat history
6
+ chat_history = st.empty()
7
+
8
+ # Create a text input for the user's message
9
+ user_message = st.text_input("Type your message here", "")
10
+
11
+ # Simulate a response from the chatbot (replace this with your RAG model later)
12
+ if user_message:
13
+ response = f"Response: {user_message.upper()}"
14
+
15
+ # Update the chat history placeholder
16
+ chat_history.markdown(f"**User:** {user_message}\n\n**Bot:** {response}")
pages/faq_page.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ from pymongo import MongoClient
4
+
5
+ #uri = "mongodb+srv://<username>:<password>@cluster0.firly.gcp.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
6
+ db_user = "api-chat-faq"
7
+ db_pass = 'WI231DhvwtTDQwBe'
8
+ db_uri = f"mongodb+srv://{db_user}:{db_pass}@cluster0.firly.gcp.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
9
+ # Connect to MongoDB
10
+ client = MongoClient(db_uri)
11
+ db = client["chat_support"]
12
+ faq_collection = db["faq"]
13
+
14
+ # Fetch FAQ data from MongoDB
15
+ faq_data = pd.DataFrame(list(faq_collection.find()))
16
+
17
+ st.title("Frequently Asked Questions")
18
+
19
+ # Search functionality
20
+ search_term = st.text_input("Search FAQs", "")
21
+ if search_term:
22
+ filtered_data = faq_data[faq_data['questions'].apply(lambda x: any(search_term.lower() in q.lower() for q in x))]
23
+ else:
24
+ filtered_data = faq_data
25
+
26
+ # Display the FAQ list
27
+ for _, row in filtered_data.iterrows():
28
+ with st.expander(row['title']):
29
+ # st.write("**Questions:**")
30
+ # for question in row['questions']:
31
+ # st.write(f"- {question}")
32
+ st.write(f"\n**Answer:**")
33
+ st.write(row['answer'])