Spaces:
Sleeping
Sleeping
Update backend/models.py
Browse files- 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 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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):
|