from openai import OpenAI # نستخدم نفس المكتبة! from utils import setup_logger from config import Config logger = setup_logger('response_generator') class ResponseGenerator: def __init__(self): logger.info("Response generator initialized (Groq Llama-3 mode)") if not Config.GROQ_API_KEY: logger.error("GROQ_API_KEY is missing.") self.client = None else: # هنا السحر: نوجه العميل إلى رابط Groq self.client = OpenAI( api_key=Config.GROQ_API_KEY, base_url="https://api.groq.com/openai/v1" ) def generate_response(self, query, relevant_docs): if len(relevant_docs) == 0: return "عذرًا، لم أجد أي معلومات ذات صلة في المستندات." if not self.client: return "عذرًا، لم يتم إعداد مفتاح API." try: context_text = "\n\n".join(relevant_docs['content'].tolist()) system_instruction = ( "أنت مساعد ذكي تتحدث العربية بطلاقة. مهمتك الإجابة بدقة بناءً على السياق فقط." "إذا لم تجد الإجابة في السياق، قل 'لا تتوفر معلومات'." "اجعل إجابتك رسمية، قصيرة، ومباشرة." ) user_message = f"السياق:\n{context_text}\n\nالسؤال: {query}" response = self.client.chat.completions.create( model=Config.LLM_MODEL, messages=[ {"role": "system", "content": system_instruction}, {"role": "user", "content": user_message} ], temperature=0.3, max_tokens=300 ) return response.choices[0].message.content.strip() except Exception as e: logger.error(f"Error generating response: {e}") return "عذرًا، حدث خطأ أثناء المعالجة."