Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -122,12 +122,14 @@ class MultiModelSender:
|
|
| 122 |
return f"❌ خطا در Grok: {str(e)}"
|
| 123 |
|
| 124 |
return "❌ خطای ناشناخته در Grok"
|
| 125 |
-
|
| 126 |
-
def send_to_gemini(self, text: str, system_msg: Optional[str] = None, retry_count: int = 3) -> str:
|
| 127 |
"""ارسال به Google Gemini با retry mechanism"""
|
| 128 |
if not self.gemini_key:
|
| 129 |
return "❌ GEMINI_API_KEY موجود نیست"
|
| 130 |
|
|
|
|
|
|
|
|
|
|
| 131 |
# ترکیب system message و text
|
| 132 |
full_prompt = f"{system_msg}\n\n{text}" if system_msg else text
|
| 133 |
|
|
@@ -135,10 +137,14 @@ class MultiModelSender:
|
|
| 135 |
try:
|
| 136 |
logger.info(f"📤 ارسال به Gemini (تلاش {attempt + 1}/{retry_count})...")
|
| 137 |
|
|
|
|
|
|
|
|
|
|
| 138 |
response = requests.post(
|
| 139 |
-
|
| 140 |
headers={
|
| 141 |
-
"Content-Type": "application/json"
|
|
|
|
| 142 |
},
|
| 143 |
json={
|
| 144 |
"contents": [{
|
|
@@ -181,6 +187,7 @@ class MultiModelSender:
|
|
| 181 |
return f"❌ خطای سرور Gemini: {response.status_code}"
|
| 182 |
|
| 183 |
else:
|
|
|
|
| 184 |
error_msg = response.text
|
| 185 |
logger.error(f"❌ Gemini API Error: {error_msg}")
|
| 186 |
return f"❌ Gemini API Error: {response.status_code}"
|
|
@@ -202,6 +209,7 @@ class MultiModelSender:
|
|
| 202 |
return f"❌ خطا در Gemini: {str(e)}"
|
| 203 |
|
| 204 |
return "❌ خطای ناشناخته در Gemini"
|
|
|
|
| 205 |
|
| 206 |
def send_to_deepseek(self, text: str, system_msg: Optional[str] = None, retry_count: int = 3) -> str:
|
| 207 |
"""ارسال به DeepSeek با retry mechanism"""
|
|
|
|
| 122 |
return f"❌ خطا در Grok: {str(e)}"
|
| 123 |
|
| 124 |
return "❌ خطای ناشناخته در Grok"
|
| 125 |
+
def send_to_gemini(self, text: str, system_msg: Optional[str] = None, retry_count: int = 3) -> str:
|
|
|
|
| 126 |
"""ارسال به Google Gemini با retry mechanism"""
|
| 127 |
if not self.gemini_key:
|
| 128 |
return "❌ GEMINI_API_KEY موجود نیست"
|
| 129 |
|
| 130 |
+
# 🔹 مدل پیشنهادی جدید (میتوانی به gemini-2.5-pro هم تغییر بدهی)
|
| 131 |
+
GEMINI_MODEL = "gemini-2.5-flash"
|
| 132 |
+
|
| 133 |
# ترکیب system message و text
|
| 134 |
full_prompt = f"{system_msg}\n\n{text}" if system_msg else text
|
| 135 |
|
|
|
|
| 137 |
try:
|
| 138 |
logger.info(f"📤 ارسال به Gemini (تلاش {attempt + 1}/{retry_count})...")
|
| 139 |
|
| 140 |
+
# آدرس جدید + هدر استاندارد
|
| 141 |
+
url = f"https://generativelanguage.googleapis.com/v1beta/models/{GEMINI_MODEL}:generateContent"
|
| 142 |
+
|
| 143 |
response = requests.post(
|
| 144 |
+
url,
|
| 145 |
headers={
|
| 146 |
+
"Content-Type": "application/json",
|
| 147 |
+
"x-goog-api-key": self.gemini_key
|
| 148 |
},
|
| 149 |
json={
|
| 150 |
"contents": [{
|
|
|
|
| 187 |
return f"❌ خطای سرور Gemini: {response.status_code}"
|
| 188 |
|
| 189 |
else:
|
| 190 |
+
# برای دیباگ بهتر، بدنه خطا را لاگ کن
|
| 191 |
error_msg = response.text
|
| 192 |
logger.error(f"❌ Gemini API Error: {error_msg}")
|
| 193 |
return f"❌ Gemini API Error: {response.status_code}"
|
|
|
|
| 209 |
return f"❌ خطا در Gemini: {str(e)}"
|
| 210 |
|
| 211 |
return "❌ خطای ناشناخته در Gemini"
|
| 212 |
+
|
| 213 |
|
| 214 |
def send_to_deepseek(self, text: str, system_msg: Optional[str] = None, retry_count: int = 3) -> str:
|
| 215 |
"""ارسال به DeepSeek با retry mechanism"""
|