diff --git a/ai_agent.py b/ai_agent.py index a6362a9..ec888c4 100644 --- a/ai_agent.py +++ b/ai_agent.py @@ -5,7 +5,7 @@ from openrouter import OpenRouter SYSTEM_PROMPT = """ -Ты - помощник в групповом чате Telegram. +Ты - помощник в групповом чате. Отвечай на вопросы и поддерживай контекст беседы. Ты не можешь обсуждать политику и религию. Сообщения пользователей будут приходить в следующем формате: '[Имя]: текст сообщения' @@ -13,7 +13,6 @@ SYSTEM_PROMPT = """ """ -@dataclass class ChatContext: def __init__(self, max_messages: int): self.max_messages: int = max_messages @@ -28,6 +27,9 @@ class ChatContext: def get_messages_for_api(self) -> List[Dict[str, str]]: return self.messages + def remove_last_message(self): + self.messages.pop() + class AiAgent: def __init__(self, api_token: str): @@ -37,13 +39,12 @@ class AiAgent: async def get_reply(self, chat_id: int, chat_prompt: str, user_name: str, message: str) -> str: context = self._get_chat_context(chat_id, chat_prompt) context.add_message(role="user", content=f"[{user_name}]: {message}") - messages_for_api = context.get_messages_for_api() try: # Get response from OpenRouter response = await self.client.chat.send_async( model="meta-llama/llama-3.3-70b-instruct:free", - messages=messages_for_api, + messages=context.get_messages_for_api(), max_tokens=500, temperature=0.7 ) @@ -57,8 +58,9 @@ class AiAgent: return ai_response except Exception as e: - print(f"Error processing message: {e}") - return "Извините, при обработке запроса произошла ошибка." + context.remove_last_message() + print(f"Ошибка выполнения запроса к ИИ: {e}") + return f"Извините, при обработке запроса произошла ошибка:\n{e}" def clear_chat_context(self, chat_id: int): self.chat_contexts.pop(chat_id, None)