abdull4h commited on
Commit
3373779
Β·
verified Β·
1 Parent(s): 878615e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -83
app.py CHANGED
@@ -2,113 +2,112 @@ import os
2
  import sys
3
  import traceback
4
  import gradio as gr
 
5
 
6
- def import_with_error_tracking(module_name):
7
- """Try to import a module and return detailed error info if it fails"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  try:
9
- module = __import__(module_name)
10
- return True, f"Successfully imported {module_name}"
11
- except ImportError as e:
12
- return False, f"Failed to import {module_name}: {str(e)}"
13
  except Exception as e:
14
- return False, f"Error importing {module_name}: {str(e)}"
15
-
16
- def test_imports():
17
- # Create a report of all import attempts
18
- results = []
19
 
20
- # Core libraries
21
- for lib in ["torch", "numpy", "pandas", "tqdm", "PyPDF2", "transformers",
22
- "sentence_transformers", "langchain", "langchain_community",
23
- "arabic_reshaper", "bidi", "rouge_score", "sacrebleu", "spaces"]:
24
- success, message = import_with_error_tracking(lib)
25
- results.append(f"{'βœ“' if success else 'βœ—'} {message}")
 
 
 
 
 
 
 
26
 
27
- # Check if specific model is available
28
  try:
29
- from transformers import AutoTokenizer
30
- tokenizer = AutoTokenizer.from_pretrained("ALLaM-AI/ALLaM-7B-Instruct-preview", trust_remote_code=True)
31
- results.append("βœ“ Model tokenizer accessible")
32
  except Exception as e:
33
- results.append(f"βœ— Model access error: {str(e)}")
34
 
35
- # Test vector store
36
  try:
37
- from langchain.embeddings import HuggingFaceEmbeddings
38
- from langchain_community.vectorstores import FAISS
39
- results.append("βœ“ Vector store components accessible")
40
  except Exception as e:
41
- results.append(f"βœ— Vector store error: {str(e)}")
42
 
43
- return "\n".join(results)
44
-
45
- def check_pdfs():
46
- """Check if PDF files are readable"""
47
- results = []
48
 
49
- for pdf_file in ["saudi_vision203.pdf", "saudi_vision2030_ar.pdf"]:
50
- if not os.path.exists(pdf_file):
51
- results.append(f"{pdf_file}: Not found")
52
- continue
53
-
54
- size = os.path.getsize(pdf_file) / (1024 * 1024) # Size in MB
55
- results.append(f"{pdf_file}: Found ({size:.2f} MB)")
56
 
57
- # Try to open and read the file
58
  try:
59
- import PyPDF2
60
- with open(pdf_file, 'rb') as f:
61
- reader = PyPDF2.PdfReader(f)
62
- num_pages = len(reader.pages)
63
- text_sample = reader.pages[0].extract_text()[:100] + "..."
64
- results.append(f"- Pages: {num_pages}")
65
- results.append(f"- Sample text: {text_sample}")
66
- except Exception as e:
67
- results.append(f"- Error reading file: {str(e)}")
68
 
69
- return "\n".join(results)
70
-
71
- def check_environment():
72
- """Get information about the Python environment"""
73
- results = []
74
-
75
- results.append(f"Python version: {sys.version}")
76
- results.append(f"Python executable: {sys.executable}")
77
- results.append(f"Working directory: {os.getcwd()}")
78
-
79
- # List all installed packages
80
  try:
81
  import pkg_resources
82
- installed_packages = [f"{pkg.key}=={pkg.version}" for pkg in pkg_resources.working_set]
83
- results.append(f"Installed packages ({len(installed_packages)}):")
84
- results.append("\n".join(installed_packages))
 
 
 
 
85
  except:
86
- results.append("Could not list installed packages")
 
 
 
 
 
 
 
 
 
87
 
88
  return "\n".join(results)
89
 
90
  def main():
91
- with gr.Blocks(title="Vision 2030 Assistant - Debug Mode") as interface:
92
- gr.Markdown("# Vision 2030 Assistant - Debug Mode")
93
- gr.Markdown("This interface helps identify import and initialization issues.")
94
-
95
- with gr.Tab("Import Testing"):
96
- test_btn = gr.Button("Test Imports")
97
- import_results = gr.Textbox(label="Import Test Results", lines=20)
98
-
99
- test_btn.click(test_imports, inputs=[], outputs=[import_results])
100
 
101
- with gr.Tab("PDF Testing"):
102
- pdf_btn = gr.Button("Test PDFs")
103
- pdf_results = gr.Textbox(label="PDF Test Results", lines=20)
104
-
105
- pdf_btn.click(check_pdfs, inputs=[], outputs=[pdf_results])
106
 
107
- with gr.Tab("Environment"):
108
- env_btn = gr.Button("Check Environment")
109
- env_results = gr.Textbox(label="Environment Information", lines=30)
110
-
111
- env_btn.click(check_environment, inputs=[], outputs=[env_results])
112
 
113
  interface.launch()
114
 
 
2
  import sys
3
  import traceback
4
  import gradio as gr
5
+ import spaces
6
 
7
+ @spaces.GPU
8
+ def test_all_imports():
9
+ results = []
10
+
11
+ # Test basic imports
12
+ for lib_name in [
13
+ "torch",
14
+ "numpy",
15
+ "pandas",
16
+ "PyPDF2",
17
+ "transformers",
18
+ "sentence_transformers"
19
+ ]:
20
+ try:
21
+ __import__(lib_name)
22
+ results.append(f"βœ… {lib_name}: Successfully imported")
23
+ except Exception as e:
24
+ results.append(f"❌ {lib_name}: Error - {str(e)}")
25
+
26
+ # Test langchain imports specifically
27
  try:
28
+ import langchain
29
+ results.append(f"βœ… langchain: Successfully imported (version {langchain.__version__})")
 
 
30
  except Exception as e:
31
+ results.append(f"❌ langchain: Error - {str(e)}")
 
 
 
 
32
 
33
+ # Test langchain_community imports
34
+ try:
35
+ import langchain_community
36
+ results.append(f"βœ… langchain_community: Successfully imported")
37
+ except Exception as e:
38
+ results.append(f"❌ langchain_community: Error - {str(e)}")
39
+
40
+ # Try alternative import format
41
+ try:
42
+ import langchain.community
43
+ results.append(f"βœ… langchain.community: Successfully imported")
44
+ except Exception as e2:
45
+ results.append(f"❌ langchain.community: Error - {str(e2)}")
46
 
47
+ # Test specific langchain imports that might be failing
48
  try:
49
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
50
+ results.append(f"βœ… langchain.text_splitter: Successfully imported")
 
51
  except Exception as e:
52
+ results.append(f"❌ langchain.text_splitter: Error - {str(e)}")
53
 
 
54
  try:
55
+ from langchain.schema import Document
56
+ results.append(f"βœ… langchain.schema: Successfully imported")
 
57
  except Exception as e:
58
+ results.append(f"❌ langchain.schema: Error - {str(e)}")
59
 
60
+ try:
61
+ from langchain.embeddings import HuggingFaceEmbeddings
62
+ results.append(f"βœ… langchain.embeddings: Successfully imported")
63
+ except Exception as e:
64
+ results.append(f"❌ langchain.embeddings: Error - {str(e)}")
65
 
66
+ try:
67
+ from langchain_community.vectorstores import FAISS
68
+ results.append(f"βœ… langchain_community.vectorstores: Successfully imported")
69
+ except Exception as e:
70
+ results.append(f"❌ langchain_community.vectorstores: Error - {str(e)}")
 
 
71
 
72
+ # Try alternative import
73
  try:
74
+ from langchain.vectorstores import FAISS
75
+ results.append(f"βœ… langchain.vectorstores: Successfully imported")
76
+ except Exception as e2:
77
+ results.append(f"❌ langchain.vectorstores: Error - {str(e2)}")
 
 
 
 
 
78
 
79
+ # Check installed package versions
 
 
 
 
 
 
 
 
 
 
80
  try:
81
  import pkg_resources
82
+ results.append("\nπŸ“¦ Installed Packages:")
83
+ for package in ["langchain", "langchain-community", "transformers", "sentence-transformers"]:
84
+ try:
85
+ version = pkg_resources.get_distribution(package).version
86
+ results.append(f" - {package}: {version}")
87
+ except:
88
+ results.append(f" - {package}: Not installed")
89
  except:
90
+ results.append("❌ Could not check installed packages")
91
+
92
+ # Check PDF files
93
+ results.append("\nπŸ“„ PDF Files:")
94
+ for pdf_file in ["saudi_vision203.pdf", "saudi_vision2030_ar.pdf"]:
95
+ if os.path.exists(pdf_file):
96
+ size = os.path.getsize(pdf_file) / (1024 * 1024) # MB
97
+ results.append(f" - {pdf_file}: Found ({size:.2f} MB)")
98
+ else:
99
+ results.append(f" - {pdf_file}: Not found")
100
 
101
  return "\n".join(results)
102
 
103
  def main():
104
+ with gr.Blocks(title="Import Diagnosis") as interface:
105
+ gr.Markdown("# Vision 2030 Assistant - Import Error Diagnosis")
 
 
 
 
 
 
 
106
 
107
+ test_button = gr.Button("Test All Imports")
108
+ results_box = gr.Textbox(label="Results", lines=30)
 
 
 
109
 
110
+ test_button.click(test_all_imports, inputs=[], outputs=[results_box])
 
 
 
 
111
 
112
  interface.launch()
113