Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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
|
124 |
-
st.title("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
-
|
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 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
|
143 |
-
|
144 |
-
user_question = st.text_input("Ask a question about the code:")
|
145 |
|
146 |
-
|
147 |
-
|
148 |
-
st.session_state.answer = ""
|
149 |
|
|
|
150 |
if user_question:
|
151 |
-
with st.spinner("
|
|
|
|
|
|
|
152 |
response = rag_chain.invoke(user_question)
|
153 |
st.session_state.answer = response
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
-
|
156 |
-
|
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__":
|