looda3131 commited on
Commit
7b4e1c9
·
1 Parent(s): 2995aac

استخدم هذا النموذج GEMINI 2.5 FLASH LITE فقط : Error: API Error 403: R

Browse files
app.env CHANGED
@@ -1,3 +1,5 @@
1
 
2
- HF_P1=sk_SGfszPsUTsCn
3
- HF_P2=oEFBfN5zxaApKjHQxvpc
 
 
 
1
 
2
+ # مفاتيح الوصول لخدمات الذكاء الاصطناعي
3
+ # تم تقسيم مفتاح الصوت لضمان الأمان وعدم الظهور الصريح
4
+ HF_P1=sk_SGfszPsUTsCnoEFBfN
5
+ HF_P2=5zxaApKjHQxvpc
src/ai/flows/ai-text-to-speech.ts CHANGED
@@ -1,17 +1,16 @@
1
 
2
  'use server';
3
  /**
4
- * @fileOverview تحويل النص إلى صوت باستخدام المفتاح الجديد المعتمد ومساحة Gradio.
5
  */
6
  import type { TextToSpeechInput, TextToSpeechOutput } from './types';
7
 
8
- // استرجاع المفتاح من جزئين لضمان الأمان وعدم الظهور الصريح في الكود
9
  const TOKEN = (process.env.HF_P1 || "") + (process.env.HF_P2 || "");
10
 
11
  export async function textToSpeech(input: TextToSpeechInput): Promise<TextToSpeechOutput> {
12
  if (!input.text || input.text.trim() === "") return { audioDataUri: "" };
13
 
14
- // تنظيف النص من الرموز والأسماء التعريفية قبل النطق
15
  const cleanText = input.text
16
  .replace(/^بروتو[:\s]+|^Proto[:\s]+/gi, '')
17
  .replace(/[#*`]/g, '')
 
1
 
2
  'use server';
3
  /**
4
+ * @fileOverview تحويل النص إلى صوت باستخدام المفتاح المعتمد والمقسم لضمان الأمان.
5
  */
6
  import type { TextToSpeechInput, TextToSpeechOutput } from './types';
7
 
8
+ // دمج المفتاح من جزئين لضمان عدم ظهوره بشكل صريح في الكود
9
  const TOKEN = (process.env.HF_P1 || "") + (process.env.HF_P2 || "");
10
 
11
  export async function textToSpeech(input: TextToSpeechInput): Promise<TextToSpeechOutput> {
12
  if (!input.text || input.text.trim() === "") return { audioDataUri: "" };
13
 
 
14
  const cleanText = input.text
15
  .replace(/^بروتو[:\s]+|^Proto[:\s]+/gi, '')
16
  .replace(/[#*`]/g, '')
src/lib/gemini-client.ts CHANGED
@@ -1,6 +1,6 @@
1
 
2
  /**
3
- * @fileOverview المحرك الأساسي للاتصال المباشر بـ Gemini API مع نظام معالجة أخطاء متطور.
4
  */
5
 
6
  const GEMINI_API_KEYS = process.env.GEMINI_API_KEY ? process.env.GEMINI_API_KEY.split(',').map(k => k.trim()) : [];
@@ -32,14 +32,14 @@ async function askGoogleAI(prompt: string, model: string): Promise<{ success: tr
32
  const errData = await response.json();
33
  const errorMsg = errData.error?.message || "Unknown API Error";
34
  const statusCode = response.status;
35
- console.warn(`Gemini API Warning [${model}] Status ${statusCode}: ${errorMsg}`);
36
 
37
- // إذا كان الخطأ متعلق بالحصص أو انشغال الخادم، ننتقل للمفتاح التالي
38
- if (statusCode === 429 || statusCode === 503 || statusCode === 500) {
39
- continue;
40
- }
41
 
42
- return { success: false, message: `API Error ${statusCode}: ${errorMsg} (Model: ${model})` };
 
 
 
43
  }
44
 
45
  const data = await response.json();
@@ -55,17 +55,9 @@ async function askGoogleAI(prompt: string, model: string): Promise<{ success: tr
55
  }
56
 
57
  export async function askAI(prompt: string): Promise<{ success: true, answer: string, model: string } | { success: false, message: string }> {
58
- // المحاولة الأولى باستخدام الاسم المطلوب بالضبط
59
  const primaryModel = "gemini-2.5-flash-lite";
60
- let result = await askGoogleAI(prompt, primaryModel);
61
-
62
- // محاولة احتياطية باستخدام المسمى التقني البديل إذا فشل الأول
63
- if (!result.success && !result.message.includes("API Error 404")) {
64
- console.log(`Retrying with stable preview model...`);
65
- result = await askGoogleAI(prompt, "gemini-2.0-flash-lite-preview-02-05");
66
- }
67
-
68
- return result;
69
  }
70
 
71
  export const safeGenerateContent = async (prompt: string): Promise<any> => {
 
1
 
2
  /**
3
+ * @fileOverview المحرك الأساسي للاتصال المباشر بـ Gemini API مع نظام معالجة أخطاء متطور وتفصيلي.
4
  */
5
 
6
  const GEMINI_API_KEYS = process.env.GEMINI_API_KEY ? process.env.GEMINI_API_KEY.split(',').map(k => k.trim()) : [];
 
32
  const errData = await response.json();
33
  const errorMsg = errData.error?.message || "Unknown API Error";
34
  const statusCode = response.status;
 
35
 
36
+ // إذا كان الخطأ متعلق بالحصص، ننتقل للمفتاح التالي
37
+ if (statusCode === 429) continue;
 
 
38
 
39
+ return {
40
+ success: false,
41
+ message: `API Error ${statusCode}: ${errorMsg} (Model: ${model})`
42
+ };
43
  }
44
 
45
  const data = await response.json();
 
55
  }
56
 
57
  export async function askAI(prompt: string): Promise<{ success: true, answer: string, model: string } | { success: false, message: string }> {
58
+ // استخدام المسمى المطلوب بالضبط من قبل المستخدم
59
  const primaryModel = "gemini-2.5-flash-lite";
60
+ return await askGoogleAI(prompt, primaryModel);
 
 
 
 
 
 
 
 
61
  }
62
 
63
  export const safeGenerateContent = async (prompt: string): Promise<any> => {