PPhraseNacre
Espacio de programación con IA

Tokens de frases LZ78

Codifica hasta 4096 bytes en pares de índice de diccionario y siguiente byte mediante LZ78.

● ● ●PhraseNacre●
Flujos de trabajo · Tokens de frases 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
✳Codifica hasta 4096 bytes en pares de índice de diccionario y siguiente byte mediante LZ78.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

02

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

03

Proyecto

Prueba entrada vacía y repeticiones, usando un marcador nulo final solo para una frase ya registrada.

Flujos de trabajo

Tokens de frases LZ78

Flujos de trabajo ↗
Flujos de trabajo
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
Espacio de programación con IA

Trata la salida codificada como una interfaz que otro código debe leer

PhraseNacre ofrece un espacio de proyectos para Windows destinado a desarrollar código que transforma bytes en una representación utilizada en otro lugar. Empieza por la carpeta del código fuente y el acuerdo entre el productor y el lector. Pide al modelo que examine esa interfaz antes de proponer un cambio en el codificador, porque una salida aparentemente más compacta puede dejar de significar lo mismo para su consumidor.

Como tarea concreta, utiliza lz78.py para analizar cómo se representa una frase conocida al final. Proporciona casos de prueba breves de bytes con contenido repetido y la secuencia de tokens que espera el lector. La conversación puede centrarse entonces en si el cambio propuesto conserva la convención de terminación, en vez de suponer que todas las parejas de implementaciones de codificador y decodificador comparten un formato.

Examina el lector junto con el productor modificado y ejecuta las comprobaciones de tu proyecto. Incluye una entrada vacía, una frase repetida y bytes distintos, con salidas esperadas independientes cuando sea práctico. Una prueba de ida y vuelta aporta evidencia útil, pero compara también los casos existentes para que dos componentes modificados no acuerden un formato nuevo incompatible sin que la revisión lo detecte.

Eliges el modelo de asistencia mediante un endpoint compatible con OpenAI o de Anthropic admitido, con credenciales cuando sean necesarias. Los modelos de IA ablacionados solo están disponibles donde los ofrece el endpoint; siguen aplicándose las restricciones del proveedor. El acceso a herramientas y los límites de contexto dependen del modelo y del servidor elegidos, mientras que la compatibilidad de formato sigue siendo un requisito explícito del proyecto.

Preguntas para un cambio en el codificador

¿Por qué examinar el lector al modificar un codificador?

La salida es una interfaz, incluido cualquier marcador utilizado para una frase final. Un productor puede emitir tokens coherentes internamente que el lector existente interprete de otra manera. Revisa ambos lados y conserva los casos antiguos para que un pequeño cambio en el codificador no altere el formato silenciosamente.

¿Basta con una prueba de ida y vuelta satisfactoria?

Es útil, pero dos componentes modificados juntos pueden compartir el mismo error. Compara también ejemplos de tokens especificados independientemente y casos codificados existentes. Indica qué dirección de compatibilidad importa, por ejemplo, si el lector actual debe seguir aceptando datos producidos anteriormente.

¿Debe convertirse el texto a bytes dentro de esta rutina?

Solo con un contrato de codificación explícito. El ejemplo acepta bytes, por lo que trasladar a él la conversión de texto cambia la interfaz. Examina dónde elige actualmente la aplicación una codificación de caracteres y conserva ese límite, salvo que la función solicitada lo traslade deliberadamente.

¿Puedo afirmar que mejora la compresión tras acortar el código?

No. La longitud del código fuente no establece el tamaño de la salida ni el rendimiento con una carga de trabajo. Centra la revisión en el comportamiento solicitado y utiliza una medición independiente adecuada si importan las características de compresión. Comunica solo resultados de los casos y la implementación que realmente probaste.

Descargar para Windows ↗

PhraseNacre · Actualizado 2026-10-25