PPhraseNacre
Робоче середовище з ШІ для коду

Токени фраз LZ78

Закодуйте до 4096 байтів у пари індексу словника й наступного байта за LZ78.

● ● ●PhraseNacre●
Сценарії · Токени фраз LZ78 ×
def lz78_tokens(data):
    if type(data) is not bytes or len(data) > 4096:
        raise ValueError("lz78.input")
    dictionary, phrase, output = {b"": 0}, b"", []
    for byte in data:
        extended = phrase + bytes([byte])
        if extended in dictionary:
            phrase = extended
        else:
            output.append((dictionary[phrase], byte))
            dictionary[extended] = len(dictionary)
            phrase = b""
    if phrase:
        output.append((dictionary[phrase], None))
    return output
✳Закодуйте до 4096 байтів у пари індексу словника й наступного байта за LZ78.
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
01

Перевірте перед застосуванням

Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.

02

Моделі

Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.

03

Проєкт

Перевірте порожній ввід і повтори, використовуючи кінцевий порожній маркер байта лише для вже відомої фрази.

Сценарії

Токени фраз LZ78

Сценарії ↗
Сценарії
def lz78_tokens(data):
    if type(data) is not bytes or len(data) > 4096:
        raise ValueError("lz78.input")
    dictionary, phrase, output = {b"": 0}, b"", []
    for byte in data:
        extended = phrase + bytes([byte])
        if extended in dictionary:
            phrase = extended
        else:
            output.append((dictionary[phrase], byte))
            dictionary[extended] = len(dictionary)
            phrase = b""
    if phrase:
        output.append((dictionary[phrase], None))
    return output
Робоче середовище з ШІ для коду

Розглядайте закодований результат як інтерфейс для іншого коду

PhraseNacre надає робоче середовище проєкту для Windows для розробки коду, який перетворює байти на подання, що використовується деінде. Почніть із теки джерел і домовленості між виробником та читачем даних. Попросіть модель дослідити цей інтерфейс до пропозиції змін кодувальника, адже компактніший на вигляд результат може вже мати інше значення для споживача.

Для конкретного завдання використайте lz78.py, щоб обговорити подання кінцевої відомої фрази. Надайте короткі байтові тестові приклади з повтореннями й послідовністю токенів, яку очікує читач. Тоді розмова стосуватиметься збереження домовленості про завершення, а не припущення, що будь-яка пара реалізацій кодувальника й декодувальника використовує один формат.

Дослідіть читач разом зі зміненим виробником і запустіть власні перевірки проєкту. Додайте порожні дані, повторювану фразу та різні байти, за можливості з незалежними очікуваними результатами. Зворотне перетворення — корисний доказ, але також порівняйте наявні тестові приклади, щоб два змінені компоненти непомітно не узгодили несумісний новий формат.

Ви вибираєте модель-помічника через підтримувану кінцеву точку, сумісну з OpenAI, або Anthropic, з обліковими даними за потреби. Аблітеровані моделі ШІ доступні лише там, де їх пропонує кінцева точка; обмеження провайдера залишаються чинними. Доступ до інструментів і межі контексту залежать від вибраної моделі та сервера, а сумісність формату залишається явною вимогою проєкту.

Питання щодо змін кодувальника

Навіщо перевіряти читач під час виправлення кодувальника?

Результат є інтерфейсом, зокрема будь-який маркер кінцевої фрази. Виробник може створювати внутрішньо узгоджені токени, які наявний читач тлумачить інакше. Перевіряйте обидві сторони й зберігайте старі тестові приклади, щоб невелика зміна кодувальника непомітно не змінила формат.

Чи достатньо успішного зворотного перетворення?

Це корисно, але два одночасно змінені компоненти можуть мати спільну помилку. Також порівняйте незалежно визначені приклади токенів і наявні закодовані тестові дані. Укажіть важливий напрям сумісності, наприклад чи має поточний читач і далі приймати раніше створені дані.

Чи слід перетворювати текст на байти всередині цієї процедури?

Лише за явного контракту кодування. Приклад приймає байти, тож перенесення перетворення тексту всередину змінює інтерфейс. Перевірте, де програма зараз вибирає кодування символів, і збережіть цю межу, якщо запитана функція навмисно її не переносить.

Чи можна заявити про краще стиснення після скорочення коду?

Ні. Довжина коду не підтверджує розміру результату чи продуктивності навантаження. Зосередьте перевірку на запитаній поведінці, а якщо важливі характеристики стиснення, проведіть окремі відповідні вимірювання. Повідомляйте лише результати фактично перевірених прикладів і реалізації.

Завантажити для Windows ↗

PhraseNacre · Оновлено 2026-10-25