Download response_generator.py from AI-Driven-Data-Driven/Arabic-Rag-Chatbot: direct link, hf CLI and curl.
- Browser
- Download file 2.13 kB
-
https://huggingface.co/spaces/AI-Driven-Data-Driven/Arabic-Rag-Chatbot/resolve/main/response_generator.py
- Command line
-
hf download hf://spaces/AI-Driven-Data-Driven/Arabic-Rag-Chatbot/response_generator.py
-
curl -L -o response_generator.py https://huggingface.co/spaces/AI-Driven-Data-Driven/Arabic-Rag-Chatbot/resolve/main/response_generator.py
2.13 kB
| 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 "عذرًا، حدث خطأ أثناء المعالجة." | |