PPhraseNacre
AI 코딩 작업 공간

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

모델

기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.

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
AI 코딩 작업 공간

인코딩 출력을 다른 코드가 읽어야 하는 인터페이스로 다루세요

PhraseNacre는 바이트를 다른 곳에서 소비하는 표현으로 변환하는 코드를 개발하는 Windows 프로젝트 작업 공간입니다. 소스 폴더와 생성부·읽기부 간 합의부터 시작하세요. 더 간결해 보이는 출력도 소비부에는 더 이상 같은 의미가 아닐 수 있으므로 인코더 변경을 제안하기 전에 모델에게 인터페이스를 살펴보도록 요청하세요.

구체적인 작업으로 lz78.py를 사용해 마지막에 남은 알려진 구절의 표현 방식을 논의하세요. 반복 내용이 있는 짧은 바이트 테스트 사례와 읽기부가 기대하는 토큰 시퀀스를 제공하세요. 모든 인코더·디코더 구현 쌍이 같은 형식을 공유한다고 가정하지 않고 제안된 수정이 종료 규약을 보존하는지에 집중할 수 있습니다.

변경된 생성부와 함께 읽기부를 살펴보고 직접 프로젝트 검사를 실행하세요. 빈 입력, 반복 구절, 서로 다른 바이트를 포함하고 가능하면 독립적으로 정한 예상 출력을 사용하세요. 왕복 변환은 유용한 증거지만, 함께 바뀐 두 구성 요소가 호환되지 않는 새 형식에 합의해도 놓치지 않도록 기존 테스트 사례도 비교하세요.

필요한 경우 인증 정보를 사용하여 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에서 지원 모델을 선택합니다. Abliterated AI 모델은 엔드포인트에서 제공하는 경우에만 사용 가능하며 공급자 제한은 여전히 적용됩니다. 도구 접근과 컨텍스트 한도는 선택한 모델과 서버에 달려 있고, 형식 호환성은 명시적인 프로젝트 요구 사항으로 유지됩니다.

인코더 변경에 관한 질문

인코더 패치 중 읽기부를 살펴보는 이유는 무엇인가요?

출력은 마지막 구절에 쓰는 표식을 포함한 인터페이스입니다. 생성부가 내부적으로 일관된 토큰을 내보내도 기존 읽기부는 다르게 해석할 수 있습니다. 작은 인코더 변경으로 형식이 조용히 바뀌지 않도록 양쪽을 검토하고 이전 테스트 사례를 유지하세요.

왕복 변환에 성공하면 충분한가요?

유용하지만 함께 바뀐 두 구성 요소가 같은 실수를 공유할 수 있습니다. 독립적으로 지정한 토큰 예제와 기존 인코딩 테스트 데이터도 비교하세요. 현재 읽기부가 이전에 생성한 데이터를 계속 받아야 하는지 등 중요한 호환성 방향을 명시하세요.

이 루틴 안에서 텍스트를 바이트로 변환해야 하나요?

명시적인 인코딩 계약이 있을 때만 가능합니다. 예제는 바이트를 받으므로 텍스트 변환을 안으로 옮기면 인터페이스가 바뀝니다. 애플리케이션이 현재 문자 인코딩을 선택하는 위치를 살펴보고 요청한 기능이 의도적으로 옮기는 경우가 아니라면 그 경계를 유지하세요.

코드를 줄이면 압축률이 좋아졌다고 말해도 되나요?

아니요. 소스 길이는 출력 크기나 작업 부하 성능을 입증하지 않습니다. 요청한 동작에 검토를 집중하고 압축 특성이 중요하면 적절한 별도 측정을 하세요. 실제로 테스트한 데이터와 구현의 결과만 보고하세요.

Windows용 다운로드 ↗

PhraseNacre · 업데이트 2026-10-25