Arabic-Rag-Chatbot / response_generator.py
Ahmed-Alghamdi's picture
Update response_generator.py
2aceb71 verified
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 "عذرًا، حدث خطأ أثناء المعالجة."