Библиотека для управления структурой чатов и сообщений
Project description
Simple Chat Structure
Библиотека для управления структурой чатов и сообщений в диалоговых системах. Простой и удобный инструмент для работы с историей сообщений в чатах, ботах и других приложениях с диалоговым интерфейсом.
Возможности
- 📝 Управление сообщениями с различными ролями (пользователь, ассистент, система, функция)
- 📚 Работа с историей сообщений, ограничение по количеству
- 👥 Менеджер историй для нескольких пользователей
- 💾 Сериализация и десериализация в JSON
- ⏰ Автоматическая отметка времени для каждого сообщения
- ✨ Простой и понятный API
Установка
pip install simple-chat-structure
Требования
- Python 3.8 или выше
Использование
Основные примеры
Создание сообщений
from simple_chat_structure import Message, MessageRole
# Создание сообщения с ролью пользователя
user_message = Message(MessageRole.USER, "Привет, как дела?")
# Создание сообщения с ролью ассистента
assistant_message = Message(MessageRole.ASSISTANT, "Здравствуйте! У меня всё отлично, чем могу помочь?")
# Создание сообщения с ролью системы
system_message = Message(MessageRole.SYSTEM, "Вы общаетесь с AI-ассистентом.")
# Создание сообщения с указанием роли в виде строки
message = Message("user", "Какая сегодня погода?")
# Получение информации о сообщении
print(user_message.role) # MessageRole.USER
print(user_message.content) # "Привет, как дела?"
print(user_message.timestamp) # datetime.datetime объект
Работа с историей сообщений
from simple_chat_structure import MessageHistory, MessageRole
# Создание истории сообщений
history = MessageHistory()
# Добавление сообщений
history.add_message(MessageRole.USER, "Привет!")
history.add_message(MessageRole.ASSISTANT, "Здравствуйте! Чем могу помочь?")
history.add_message(MessageRole.USER, "Какая сегодня погода?")
# Получение последних сообщений
last_messages = history.get_last_n_messages(2)
for msg in last_messages:
print(f"{msg.role.value}: {msg.content}")
# Преобразование в формат для API
api_format = history.to_api_format()
print(api_format)
# [{"role": "user", "content": "Привет!"},
# {"role": "assistant", "content": "Здравствуйте! Чем могу помочь?"},
# {"role": "user", "content": "Какая сегодня погода?"}]
# Сохранение и загрузка из JSON
json_data = history.to_json()
new_history = MessageHistory().from_json(json_data)
# Очистка истории
history.clear()
# Создание истории с ограничением количества сообщений
limited_history = MessageHistory(max_messages=10)
Менеджер историй для нескольких пользователей
from simple_chat_structure import MessageHistoryManager, MessageRole
# Создание менеджера историй
manager = MessageHistoryManager(default_max_messages=50)
# Получение истории для конкретного пользователя
user_id = 123
history = manager[user_id]
# Добавление сообщений пользователю
history.add_message(MessageRole.USER, "Привет!")
history.add_message(MessageRole.ASSISTANT, "Здравствуйте!")
# Проверка наличия пользователя
if user_id in manager:
print(f"У пользователя {user_id} есть история сообщений")
# Получение списка всех пользователей
users = manager.get_user_ids()
print(users) # [123]
# Сохранение всех историй в JSON
json_data = manager.to_json()
# Загрузка историй из JSON
new_manager = MessageHistoryManager().from_json(json_data)
# Удаление истории пользователя
manager.remove_user(user_id)
# Очистка всех историй
manager.clear_all()
Документация API
Message
Класс для представления сообщений в чате.
Атрибуты
role- Роль отправителя сообщения (MessageRole)content- Содержимое сообщения (str)timestamp- Время создания сообщения (datetime)
Методы
to_dict()- Преобразование в словарь для APIto_full_dict()- Преобразование в полный словарь с временемto_json()- Преобразование в JSON-строку
MessageRole
Перечисление для обозначения ролей сообщений.
USER- Сообщение пользователяASSISTANT- Сообщение ассистентаSYSTEM- Системное сообщениеFUNCTION- Функциональное сообщение
MessageHistory
Класс для управления историей сообщений.
Методы
add_message(role, content)- Добавление сообщения в историюclear()- Очистка историиpop()- Удаление и возврат последнего сообщенияget_last_n_messages(n)- Получение последних n сообщенийto_api_format()- Преобразование в формат для APIto_json()- Преобразование в JSON-строкуfrom_json(json_data)- Загрузка из JSON-строки
MessageHistoryManager
Класс для управления историями сообщений нескольких пользователей.
Методы
get_user_ids()- Получение списка ID пользователейremove_user(user_id)- Удаление истории пользователяclear_all()- Очистка всех историйto_json()- Преобразование в JSON-строкуfrom_json(json_data)- Загрузка из JSON-строки
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simple_chat_structure-0.1.2.tar.gz.
File metadata
- Download URL: simple_chat_structure-0.1.2.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ab1a4bb2e907ddd98b3a851c58bcc887a88e405ccf90eb3034f72b1099c3f45
|
|
| MD5 |
045767a0fa72a21baa2832fe3eb7ce61
|
|
| BLAKE2b-256 |
6ab7ab868d6368d2b1e77164d479efc1acc52523d5072d500079a8ec6155d726
|
File details
Details for the file simple_chat_structure-0.1.2-py3-none-any.whl.
File metadata
- Download URL: simple_chat_structure-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29286f4dd8197c572105948e66a0091c4404e2e8783ca6e52bb5660d21db842a
|
|
| MD5 |
52bd90ee4b7fcf16cd0b698e82bfc0bf
|
|
| BLAKE2b-256 |
d67f7a58501790efe754053141abff35a5cfe67123e0ba3cc20a27473a13bbb6
|