Skip to main content

Библиотека для управления структурой чатов и сообщений

Project description

Simple Chat Structure

Библиотека для управления структурой чатов и сообщений в диалоговых системах. Простой и удобный инструмент для работы с историей сообщений в чатах, ботах и других приложениях с диалоговым интерфейсом.

PyPI version License: MIT

Возможности

  • 📝 Управление сообщениями с различными ролями (пользователь, ассистент, система, функция)
  • 📚 Работа с историей сообщений, ограничение по количеству
  • 👥 Менеджер историй для нескольких пользователей
  • 💾 Сериализация и десериализация в 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() - Преобразование в словарь для API
  • to_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() - Преобразование в формат для API
  • to_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_chat_structure-0.1.2.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_chat_structure-0.1.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for simple_chat_structure-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2ab1a4bb2e907ddd98b3a851c58bcc887a88e405ccf90eb3034f72b1099c3f45
MD5 045767a0fa72a21baa2832fe3eb7ce61
BLAKE2b-256 6ab7ab868d6368d2b1e77164d479efc1acc52523d5072d500079a8ec6155d726

See more details on using hashes here.

File details

Details for the file simple_chat_structure-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_chat_structure-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 29286f4dd8197c572105948e66a0091c4404e2e8783ca6e52bb5660d21db842a
MD5 52bd90ee4b7fcf16cd0b698e82bfc0bf
BLAKE2b-256 d67f7a58501790efe754053141abff35a5cfe67123e0ba3cc20a27473a13bbb6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page