Vérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Encodez au plus 4096 octets en couples indice de dictionnaire et octet suivant selon 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 outputComparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Testez l’entrée vide et les répétitions, en réservant le marqueur nul final à une phrase déjà connue.
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 outputPhraseNacre propose un espace de projet sous Windows pour développer du code qui transforme des octets en une représentation exploitée ailleurs. Commencez par le dossier source et le contrat entre producteur et lecteur. Demandez au modèle d’examiner cette interface avant de proposer une modification de l’encodeur : une sortie apparemment plus compacte peut ne plus avoir le même sens pour son destinataire.
Pour une tâche concrète, utilisez lz78.py afin de discuter de la représentation d’une expression connue en fin de données. Fournissez de courts jeux de test d’octets avec du contenu répété et la séquence de jetons attendue par le lecteur. La conversation peut alors porter sur la préservation de la convention de terminaison par la modification proposée, sans supposer que toutes les implémentations d’encodeurs et de décodeurs partagent un format unique.
Examinez le lecteur avec le producteur modifié et exécutez vos propres vérifications du projet. Incluez une entrée vide, une expression répétée et des octets distincts, avec des sorties attendues indépendantes lorsque c’est possible. Un aller-retour constitue un indice utile, mais comparez aussi les jeux de test existants afin que deux composants modifiés ne s’accordent pas à l’insu de la révision sur un nouveau format incompatible.
Vous choisissez le modèle d’assistance via un point de terminaison compatible OpenAI ou Anthropic pris en charge, en fournissant des identifiants si nécessaire. Les modèles d’IA ablitérés ne sont disponibles que si le point de terminaison les propose ; les restrictions du fournisseur restent applicables. L’accès aux outils et les limites de contexte dépendent du modèle et du serveur choisis, tandis que la compatibilité des formats demeure une exigence explicite du projet.
La sortie est une interface, y compris tout marqueur d’expression finale. Un producteur peut émettre des jetons cohérents entre eux que le lecteur existant interprète autrement. Examinez les deux côtés et conservez les anciens jeux de test afin qu’une petite modification de l’encodeur ne change pas silencieusement le format.
Il est utile, mais deux composants modifiés ensemble peuvent partager la même erreur. Comparez aussi des exemples de jetons définis indépendamment et des jeux de test encodés existants. Précisez le sens de compatibilité nécessaire, par exemple si le lecteur actuel doit encore accepter les données produites auparavant.
Uniquement selon un contrat d’encodage explicite. L’exemple accepte des octets : y déplacer la conversion du texte modifie donc l’interface. Examinez où l’application choisit actuellement l’encodage des caractères et préservez cette séparation, sauf si la fonctionnalité demandée la déplace délibérément.
Non. La longueur du code source ne démontre ni la taille de sortie ni les performances sur une charge de travail. Concentrez la révision sur le comportement demandé et utilisez une mesure distincte appropriée si les caractéristiques de compression comptent. Ne rapportez que les résultats des jeux de test et de l’implémentation réellement testés.
PhraseNacre · Mis à jour 2026-10-25