Soltane777 commited on
Commit
9e17587
·
verified ·
1 Parent(s): 70cb71f

Update backend/models.py

Browse files
Files changed (1) hide show
  1. backend/models.py +25 -6
backend/models.py CHANGED
@@ -1,5 +1,6 @@
1
  import os
2
  import requests
 
3
 
4
  from pdfminer.high_level import extract_text
5
  from docx import Document
@@ -70,15 +71,33 @@ def translator(text, source_lang, target_lang):
70
 
71
 
72
  # دالة توليد كود التصور البياني
73
- def code_generator(prompt):
 
74
  url = "https://api-inference.huggingface.co/models/Salesforce/codegen-350M-multi"
75
  headers = {"Authorization": f"Bearer {HUGGING_FACE_API_KEY}"}
76
- response = requests.post(url, headers=headers, json={"inputs": prompt})
77
 
78
- try:
79
- return response.json()
80
- except Exception as e:
81
- return {"error": str(e)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
 
84
  def extract_text_from_document(path):
 
1
  import os
2
  import requests
3
+ import time
4
 
5
  from pdfminer.high_level import extract_text
6
  from docx import Document
 
71
 
72
 
73
  # دالة توليد كود التصور البياني
74
+ def code_generator(prompt: str, max_retries: int = 3) -> dict:
75
+
76
  url = "https://api-inference.huggingface.co/models/Salesforce/codegen-350M-multi"
77
  headers = {"Authorization": f"Bearer {HUGGING_FACE_API_KEY}"}
 
78
 
79
+ for attempt in range(max_retries):
80
+ try:
81
+ response = requests.post(
82
+ url,
83
+ headers=headers,
84
+ json={"inputs": prompt},
85
+ timeout=30 # زيادة الوقت لانتظار النموذج
86
+ )
87
+
88
+ # تحقق من حالة الاستجابة
89
+ if response.status_code == 200:
90
+ return response.json()
91
+ elif response.status_code == 503:
92
+ print(f"API is overloaded. Retrying in 5 seconds... Attempt {attempt + 1}/{max_retries}...")
93
+ time.sleep(5) # انتظر قبل إعادة المحاولة
94
+ else:
95
+ return {"error": f"API Error: {response.status_code}", "details": response.text}
96
+
97
+ except requests.exceptions.RequestException as e:
98
+ return {"error": f"Connection Error: {str(e)}"}
99
+
100
+ return {"error": "Failed to generate code after multiple attempts."}
101
 
102
 
103
  def extract_text_from_document(path):