Spaces:
Running
Running
| import os | |
| import requests | |
| from config import SYSTEM_PROMPT, DEFAULT_MODEL | |
| # إعداد متغيرات Ollama | |
| OLLAMA_HOST = os.getenv("OLLAMA_HOST", "127.0.0.1") | |
| OLLAMA_PORT = int(os.getenv("OLLAMA_PORT", "11434")) | |
| OLLAMA_URL = f"http://{OLLAMA_HOST}:{OLLAMA_PORT}/api/chat" | |
| class AIController: | |
| def __init__(self): | |
| self.memory = [] | |
| self.system_prompt = SYSTEM_PROMPT | |
| def generate_response(self, user_input, language="ar", model=DEFAULT_MODEL): | |
| # بناء الرسائل (system + memory + user) | |
| messages = [{"role": "system", "content": self.system_prompt}] | |
| messages += self.memory | |
| messages.append({"role": "user", "content": user_input}) | |
| try: | |
| # إرسال طلب إلى Ollama API | |
| response = requests.post( | |
| OLLAMA_URL, | |
| json={ | |
| "model": model, | |
| "messages": messages, | |
| "stream": False | |
| }, | |
| timeout=120 | |
| ) | |
| response.raise_for_status() | |
| data = response.json() | |
| answer = data.get("message", {}).get("content", "").strip() | |
| # تحديث الذاكرة | |
| self.memory.append({"role": "user", "content": user_input}) | |
| self.memory.append({"role": "assistant", "content": answer}) | |
| # تحسين السياق | |
| self.self_improve(user_input, answer) | |
| return answer | |
| except Exception as e: | |
| return self.external_search(user_input) | |
| def self_improve(self, user_input, answer): | |
| if len(self.memory) > 20: | |
| self.memory = self.memory[-20:] | |
| def external_search(self, query): | |
| return "عذراً، لم أجد جواباً دقيقاً على سؤالك حالياً." | |