| import openai |
| from config import OPENAI_API_KEY, SYSTEM_PROMPT, DEFAULT_MODEL |
|
|
| openai.api_key = OPENAI_API_KEY |
|
|
| class AIController: |
| def __init__(self): |
| self.memory = [] |
| self.system_prompt = SYSTEM_PROMPT |
|
|
| def generate_response(self, user_input, language= "ar", model=DEFAULT_MODEL): |
| messages = [{"role": "system", "content": self.system_prompt}] |
| |
| messages += self.memory |
| messages.append({"role": "user", "content": user_input}) |
|
|
| try: |
| response = openai.ChatCompletion.create( |
| model=model, |
| messages=messages, |
| temperature=0.7, |
| max_tokens=150, |
| ) |
| answer = response.choices[0].message['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: |
| |
| external_answer = self.external_search(user_input) |
| return external_answer |
|
|
| def self_improve(self, user_input, answer): |
| |
| if len(self.memory) > 20: |
| self.memory = self.memory[-20:] |
| |
|
|
| def external_search(self, query): |
| |
| |
| return "عذراً، لم أجد جواباً دقيقاً على سؤالك حالياً." |
|
|
|
|