Добавлена передача текущего времени в запросе ИИ.
This commit is contained in:
parent
75e94449b5
commit
f1ae49c82d
1 changed files with 13 additions and 6 deletions
19
ai_agent.py
19
ai_agent.py
|
|
@ -1,4 +1,5 @@
|
|||
import base64
|
||||
import datetime
|
||||
from dataclasses import dataclass
|
||||
from typing import List, Tuple, Any, Optional
|
||||
|
||||
|
|
@ -11,8 +12,8 @@ GROUP_CHAT_SYSTEM_PROMPT = """
|
|||
Ты - ИИ-помощник в групповом чате.\n
|
||||
Отвечай на вопросы и поддерживай контекст беседы.\n
|
||||
Ты не можешь обсуждать политику и религию.\n
|
||||
Сообщения пользователей будут приходить в следующем формате: '[Имя]: текст сообщения'\n
|
||||
При ответе НЕ нужно указывать ни пользователя, которому он предназначен, ни свое имя.\n
|
||||
Сообщения пользователей будут приходить в следующем формате: '[дата время, имя]: текст сообщения'\n
|
||||
При ответе НЕ нужно указывать ни время, ни пользователя, которому предназначен ответ, ни свое имя.\n
|
||||
НЕ используй разметку Markdown.
|
||||
"""
|
||||
GROUP_CHAT_MAX_MESSAGES = 20
|
||||
|
|
@ -20,6 +21,8 @@ GROUP_CHAT_MAX_MESSAGES = 20
|
|||
PRIVATE_CHAT_SYSTEM_PROMPT = """
|
||||
Ты - ИИ-помощник в чате c пользователем.\n
|
||||
Отвечай на вопросы и поддерживай контекст беседы.\n
|
||||
Сообщения пользователя будут приходить в следующем формате: '[дата время]: текст сообщения'\n
|
||||
При ответе НЕ нужно указывать время.\n
|
||||
НЕ используй разметку Markdown.
|
||||
"""
|
||||
PRIVATE_CHAT_MAX_MESSAGES = 40
|
||||
|
|
@ -38,6 +41,12 @@ class Message:
|
|||
message_id: int = None
|
||||
|
||||
|
||||
def _add_message_prefix(text: Optional[str], username: Optional[str] = None) -> str:
|
||||
current_time = datetime.datetime.now().strftime("%d.%m.%Y %H:%M")
|
||||
prefix = f"[{current_time}, {username}]" if username is not None else f"[{current_time}]"
|
||||
return f"{prefix}: {text}" if text is not None else f"{prefix}:"
|
||||
|
||||
|
||||
def _serialize_message(role: str, text: Optional[str], image: Optional[bytes]) -> dict:
|
||||
json = {"role": role, "content": []}
|
||||
if text is not None:
|
||||
|
|
@ -64,10 +73,7 @@ class AiAgent:
|
|||
message: Message, forwarded_messages: List[Message]) -> Tuple[str, bool]:
|
||||
context = self._get_chat_context(is_group_chat=True, bot_id=bot_id, chat_id=chat_id)
|
||||
|
||||
if message.text is not None:
|
||||
message.text = f"[{message.user_name}]: {message.text}"
|
||||
else:
|
||||
message.text = f"[{message.user_name}]:"
|
||||
message.text = _add_message_prefix(message.text, message.user_name)
|
||||
context.append(_serialize_message(role="user", text=message.text, image=message.image))
|
||||
|
||||
for fwd_message in forwarded_messages:
|
||||
|
|
@ -110,6 +116,7 @@ class AiAgent:
|
|||
|
||||
async def get_private_chat_reply(self, bot_id: int, chat_id: int, message: Message) -> Tuple[str, bool]:
|
||||
context = self._get_chat_context(is_group_chat=False, bot_id=bot_id, chat_id=chat_id)
|
||||
message.text = _add_message_prefix(message.text)
|
||||
content: list[dict[str, Any]] = []
|
||||
if message.text is not None:
|
||||
content.append({"type": "text", "text": message.text})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue