Из системного запроса удалено упоминание Telegram.
В случае ошибки API возвращается ее описание, а вызвавший ее запрос не добавляется в контекст.
This commit is contained in:
parent
44d6b3528b
commit
3db3f13cda
1 changed files with 8 additions and 6 deletions
14
ai_agent.py
14
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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue