Из системного запроса удалено упоминание Telegram.

В случае ошибки API возвращается ее описание, а вызвавший ее запрос не добавляется в контекст.
This commit is contained in:
Kirill Kirilenko 2025-12-29 22:10:36 +03:00
parent 44d6b3528b
commit 3db3f13cda

View file

@ -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)