Update app.py
Browse files
app.py
CHANGED
|
@@ -21,6 +21,20 @@ from utils.lang_utils import detect_language, translate_text
|
|
| 21 |
# Import LangChain components
|
| 22 |
from langchain_groq import ChatGroq
|
| 23 |
from langchain_community.embeddings import HuggingFaceEmbeddings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
|
| 26 |
class GEOSEOApp:
|
|
@@ -153,15 +167,21 @@ class GEOSEOApp:
|
|
| 153 |
|
| 154 |
if uploaded_file:
|
| 155 |
with st.spinner("Processing PDF..."):
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
|
| 161 |
-
|
| 162 |
with st.spinner("Processing text..."):
|
| 163 |
-
|
| 164 |
-
|
|
|
|
|
|
|
| 165 |
else:
|
| 166 |
st.warning("Please upload a PDF or paste some text.")
|
| 167 |
return
|
|
|
|
| 21 |
# Import LangChain components
|
| 22 |
from langchain_groq import ChatGroq
|
| 23 |
from langchain_community.embeddings import HuggingFaceEmbeddings
|
| 24 |
+
from langdetect import detect
|
| 25 |
+
from deep_translator import GoogleTranslator
|
| 26 |
+
def detect_and_translate_to_english(text: str) -> str:
|
| 27 |
+
try:
|
| 28 |
+
lang = detect(text)
|
| 29 |
+
if lang != "en":
|
| 30 |
+
st.warning(f"Detected Language: {lang}. Translating to English...")
|
| 31 |
+
translated_text = GoogleTranslator(source='auto', target='en').translate(text)
|
| 32 |
+
return translated_text
|
| 33 |
+
else:
|
| 34 |
+
return text
|
| 35 |
+
except Exception as e:
|
| 36 |
+
st.error(f"Translation failed: {e}")
|
| 37 |
+
return text
|
| 38 |
|
| 39 |
|
| 40 |
class GEOSEOApp:
|
|
|
|
| 167 |
|
| 168 |
if uploaded_file:
|
| 169 |
with st.spinner("Processing PDF..."):
|
| 170 |
+
temp_path = self.save_uploaded_file(uploaded_file)
|
| 171 |
+
documents = self.pdf_parser.parse(temp_path)
|
| 172 |
+
os.unlink(temp_path)
|
| 173 |
+
|
| 174 |
+
# 🧠 Translate each document if needed
|
| 175 |
+
for doc in documents:
|
| 176 |
+
doc.page_content = detect_and_translate_to_english(doc.page_content)
|
| 177 |
+
|
| 178 |
|
| 179 |
+
elif pasted_text.strip():
|
| 180 |
with st.spinner("Processing text..."):
|
| 181 |
+
translated_text = detect_and_translate_to_english(pasted_text)
|
| 182 |
+
documents = self.text_parser.parse(translated_text)
|
| 183 |
+
|
| 184 |
+
|
| 185 |
else:
|
| 186 |
st.warning("Please upload a PDF or paste some text.")
|
| 187 |
return
|