jeongsk commited on
Commit
d7c7d7c
ยท
verified ยท
1 Parent(s): 90ef5a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -27
app.py CHANGED
@@ -10,7 +10,6 @@ from langchain.retrievers.document_compressors import (
10
  CrossEncoderReranker,
11
  FlashrankRerank,
12
  )
13
- from langchain_core.vectorstores import VectorStore
14
  from langchain.storage import LocalFileStore
15
  from langchain_community.cross_encoders import HuggingFaceCrossEncoder
16
  from langchain_community.document_loaders.generic import GenericLoader
@@ -21,6 +20,7 @@ from langchain_community.retrievers import BM25Retriever
21
  from langchain_community.vectorstores import FAISS
22
  from langchain_core.output_parsers import StrOutputParser
23
  from langchain_core.runnables import RunnableLambda, RunnablePassthrough
 
24
  from langchain_huggingface import HuggingFaceEmbeddings
25
  from langchain_text_splitters import Language, RecursiveCharacterTextSplitter
26
 
@@ -120,43 +120,49 @@ def setup_retrievers_and_chain(
120
  return rag_chain
121
 
122
 
123
- def main():
124
- st.title("Code QA Bot")
 
 
 
 
 
 
 
 
125
 
126
- # Initialize session state for project folder and answer
127
- if "project_folder" not in st.session_state:
128
- st.session_state.project_folder = ""
129
- if "answer" not in st.session_state:
130
  st.session_state.answer = ""
 
131
 
132
- # ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ ์ž…๋ ฅ ๋ฐ›๊ธฐ
133
- project_folder = st.text_input(
134
- "Enter the project folder path:", value=st.session_state.project_folder
135
- )
136
- st.session_state.project_folder = project_folder
137
 
138
- if project_folder:
139
- # ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๋ฒกํ„ฐ ์Šคํ† ์–ด์™€ ์ฒด์ธ ์„ค์ •
140
- db = setup_embeddings_and_db(project_folder)
141
- rag_chain = setup_retrievers_and_chain(db, project_folder)
142
 
143
- # ์‚ฌ์šฉ์ž ์งˆ๋ฌธ ์ž…๋ ฅ ๋ฐ›๊ธฐ
144
- user_question = st.text_input("Ask a question about the code:")
145
 
146
- # Add a button to reset the answer
147
- if st.button("Reset Answer"):
148
- st.session_state.answer = ""
149
 
 
150
  if user_question:
151
- with st.spinner("Generating answer..."):
 
 
 
152
  response = rag_chain.invoke(user_question)
153
  st.session_state.answer = response
 
 
 
 
 
 
154
 
155
- # Display the answer
156
- if st.session_state.answer:
157
- st.write(st.session_state.answer)
158
- else:
159
- st.warning("Please enter the project folder path to proceed.")
160
 
161
 
162
  if __name__ == "__main__":
 
10
  CrossEncoderReranker,
11
  FlashrankRerank,
12
  )
 
13
  from langchain.storage import LocalFileStore
14
  from langchain_community.cross_encoders import HuggingFaceCrossEncoder
15
  from langchain_community.document_loaders.generic import GenericLoader
 
20
  from langchain_community.vectorstores import FAISS
21
  from langchain_core.output_parsers import StrOutputParser
22
  from langchain_core.runnables import RunnableLambda, RunnablePassthrough
23
+ from langchain_core.vectorstores import VectorStore
24
  from langchain_huggingface import HuggingFaceEmbeddings
25
  from langchain_text_splitters import Language, RecursiveCharacterTextSplitter
26
 
 
120
  return rag_chain
121
 
122
 
123
+ def sidebar_content():
124
+ st.sidebar.title("์‚ฌ์šฉ ๊ฐ€์ด๋“œ")
125
+ st.sidebar.info(
126
+ """
127
+ 1. ์™ผ์ชฝ ํ…์ŠคํŠธ ์˜์—ญ์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”.
128
+ 2. '๋‹ต๋ณ€ ์ƒ์„ฑ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”.
129
+ 3. ๋‹ต๋ณ€์ด ์•„๋ž˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
130
+ 4. ์ƒˆ๋กœ์šด ์งˆ๋ฌธ์„ ํ•˜๋ ค๋ฉด '๋‹ต๋ณ€ ์ดˆ๊ธฐํ™”' ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
131
+ """
132
+ )
133
 
134
+ if st.sidebar.button("๋‹ต๋ณ€ ์ดˆ๊ธฐํ™”", key="reset"):
 
 
 
135
  st.session_state.answer = ""
136
+ st.experimental_rerun()
137
 
 
 
 
 
 
138
 
139
+ def main():
140
+ st.set_page_config(page_title="WDS QA ๋ด‡", page_icon="๐Ÿค–", layout="wide")
141
+
142
+ sidebar_content()
143
 
144
+ st.title("๐Ÿค– WDS QA ๋ด‡")
 
145
 
146
+ st.subheader("์งˆ๋ฌธํ•˜๊ธฐ")
147
+ user_question = st.text_area("์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ์ ์„ ๋ฌผ์–ด๋ณด์„ธ์š”:", height=100)
 
148
 
149
+ if st.button("๋‹ต๋ณ€ ์ƒ์„ฑ", key="generate"):
150
  if user_question:
151
+ with st.spinner("๋‹ต๋ณ€์„ ์ƒ์„ฑ ์ค‘์ž…๋‹ˆ๋‹ค..."):
152
+ project_folder = "wds"
153
+ db = setup_embeddings_and_db(project_folder)
154
+ rag_chain = setup_retrievers_and_chain(db, project_folder)
155
  response = rag_chain.invoke(user_question)
156
  st.session_state.answer = response
157
+ else:
158
+ st.warning("์งˆ๋ฌธ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
159
+
160
+ if "answer" in st.session_state and st.session_state.answer:
161
+ st.subheader("๋‹ต๋ณ€")
162
+ st.markdown(st.session_state.answer)
163
 
164
+ st.markdown("---")
165
+ st.caption("ยฉ 2023 WDS QA ๋ด‡. ๋ชจ๋“  ๊ถŒ๋ฆฌ ๋ณด์œ .")
 
 
 
166
 
167
 
168
  if __name__ == "__main__":