import re
# Функция для поиска блоков текста, обрамленных эмодзи
def find_emoji_blocks(text, start_emoji, end_emoji):
pattern = f"{re.escape(start_emoji)}(.*?){re.escape(end_emoji)}"
matches = re.findall(pattern, text, re.DOTALL)
return matches
# Функция для удаления блоков текста, обрамленных эмодзи
def remove_emoji_blocks(text, start_emoji, end_emoji):
pattern = f"{re.escape(start_emoji)}.*?{re.escape(end_emoji)}"
cleaned_text = re.sub(pattern, '', text, flags=re.DOTALL)
return cleaned_text.strip()
# Функция для удаления списка эмодзи из текста
def remove_emoji_list(text, emoji_list):
for i in emoji_list:
text = text.replace(i, '')
return text
# Основная функция для обработки контекста сообщений
def context_wrapper(messages, role, message):
# Обработка "шепота" от пользователя
if role == 'user' and '🤫🤫' in message:
blocks = find_emoji_blocks(message, '🤫🤫', '🤫🤫')
message = remove_emoji_blocks(message, '🤫🤫', '🤫🤫')
message += '\n' + '\n'.join(blocks)
# Корректировка системного промпта от пользователя
if role == 'user' and '🧠🧠' in message:
blocks = find_emoji_blocks(message, '🧠🧠', '🧠🧠')
message = remove_emoji_blocks(message, '🧠🧠', '🧠🧠')
messages[0]['content'] += '\n' + '\n'.join(blocks)
# Обработка "шепота" от ассистента
if role == 'assistant' and '🤫🤫' in message:
blocks = find_emoji_blocks(message, '🤫🤫', '🤫🤫')
message = remove_emoji_blocks(message, '🤫🤫', '🤫🤫')
message += '\n' + '\n'.join(blocks)
# Корректировка системного промпта от ассистента
if role == 'assistant' and '🧠🧠' in message:
blocks = find_emoji_blocks(message, '🧠🧠', '🧠🧠')
message = remove_emoji_blocks(message, '🧠🧠', '🧠🧠')
messages[0]['content'] += '\n' + '\n'.join(blocks)
# Замена пустого сообщения на многоточие
if message == '':
message = '...'
# Добавление обработанного сообщения в список сообщений
messages.append({"role": role, "content" : message})
return messages
# Функция для очистки сообщения перед отправкой
def transport_wrapper(message):
message = remove_emoji_blocks(message, '🤫🤫', '🤫🤫')
message = remove_emoji_blocks(message, '🧠🧠', '🧠🧠')
message = remove_emoji_list(message, ['🔲🔲'])
return message
интересно конечно но сложновато для меня, другое дело что нужно разбираться обязательно
Попробуйте на pro-talk.ru сделать бота и поуправлять диалогом командами:
🤫🤫текст, скрыто добавляется в контекст к текущему вопросу пользователя🤫🤫
🧠🧠текст, скрыто добавляется в конец роли ИИ🧠🧠
Отличный способ!