Ahmed-Alghamdi commited on
Commit
033170e
·
verified ·
1 Parent(s): ed99449

Update response_generator.py

Browse files
Files changed (1) hide show
  1. response_generator.py +24 -31
response_generator.py CHANGED
@@ -1,4 +1,4 @@
1
- from openai import OpenAI # نستخدم نفس المكتبة!
2
  from utils import setup_logger
3
  from config import Config
4
 
@@ -6,48 +6,41 @@ logger = setup_logger('response_generator')
6
 
7
  class ResponseGenerator:
8
  def __init__(self):
9
- logger.info("Response generator initialized (Groq Llama-3 mode)")
10
 
11
- if not Config.GROQ_API_KEY:
12
- logger.error("GROQ_API_KEY is missing.")
13
- self.client = None
14
  else:
15
- # هنا السحر: نوجه العميل إلى رابط Groq
16
- self.client = OpenAI(
17
- api_key=Config.GROQ_API_KEY,
18
- base_url="https://api.groq.com/openai/v1"
19
- )
20
 
21
  def generate_response(self, query, relevant_docs):
22
  if len(relevant_docs) == 0:
23
  return "عذرًا، لم أجد أي معلومات ذات صلة في المستندات."
24
 
25
- if not self.client:
26
- return "عذرًا، لم يتم إعداد مفتاح API."
27
 
28
  try:
 
29
  context_text = "\n\n".join(relevant_docs['content'].tolist())
30
 
31
- system_instruction = (
32
- "أنت مساعد ذكي تتحدث العربية بطلاقة. مهمتك الإجابة بدقة بناءً على السياق فقط."
33
- "إذا لم تجد الإجابة في السياق، قل 'لا تتوفر معلومات'."
34
- "اجعل إجابتك رسمية، قصيرة، ومباشرة."
35
- )
36
-
37
- user_message = f"السياق:\n{context_text}\n\nالسؤال: {query}"
38
-
39
- response = self.client.chat.completions.create(
40
- model=Config.LLM_MODEL,
41
- messages=[
42
- {"role": "system", "content": system_instruction},
43
- {"role": "user", "content": user_message}
44
- ],
45
- temperature=0.3,
46
- max_tokens=300
47
  )
48
 
49
- return response.choices[0].message.content.strip()
 
 
 
50
 
51
  except Exception as e:
52
- logger.error(f"Error generating response: {e}")
53
- return "عذرًا، حدث خطأ أثناء المعالجة."
 
1
+ import google.generativeai as genai
2
  from utils import setup_logger
3
  from config import Config
4
 
 
6
 
7
  class ResponseGenerator:
8
  def __init__(self):
9
+ logger.info("Response generator initialized (Google Gemini Flash mode)")
10
 
11
+ if not Config.GOOGLE_API_KEY:
12
+ logger.error("GOOGLE_API_KEY is missing.")
13
+ self.model = None
14
  else:
15
+ # إعداد مكتبة جوجل
16
+ genai.configure(api_key=Config.GOOGLE_API_KEY)
17
+ self.model = genai.GenerativeModel(Config.GENAI_MODEL)
 
 
18
 
19
  def generate_response(self, query, relevant_docs):
20
  if len(relevant_docs) == 0:
21
  return "عذرًا، لم أجد أي معلومات ذات صلة في المستندات."
22
 
23
+ if not self.model:
24
+ return "عذرًا، لم يتم إعداد مفتاح API الخاص بجوجل."
25
 
26
  try:
27
+ # دمج النصوص المسترجعة
28
  context_text = "\n\n".join(relevant_docs['content'].tolist())
29
 
30
+ # صياغة البرومبت (التعليمات)
31
+ prompt = (
32
+ f"أنت مساعد ذكي لطلاب السنة الأولى المشتركة. "
33
+ f"استخدم المعلومات التالية للإجابة على سؤال الطالب بدقة ومباشرة.\n"
34
+ f"معلومات من اللائحة:\n{context_text}\n\n"
35
+ f"سؤال الطالب: {query}\n\n"
36
+ f"الإجابة (تحدث بصيغة رسمية وودودة، وإذا لم تكن المعلومة موجودة قل لا أعلم):"
 
 
 
 
 
 
 
 
 
37
  )
38
 
39
+ # إرسال الطلب
40
+ response = self.model.generate_content(prompt)
41
+
42
+ return response.text.strip()
43
 
44
  except Exception as e:
45
+ logger.error(f"Error generating Gemini response: {e}")
46
+ return "عذرًا، واجهت مشكلة أثناء صياغة الإجابة."