ApproximateTokenCounter

ApproximateTokenCounter

ApproximateTokenCounter는 ChatMessage 객체와 선택적 도구 스키마의 토큰 수를 그 텍스트 길이로 추정해요. 추가 의존성이나 warm-up 단계가 필요 없죠.

Import path: haystack.token_counters.ApproximateTokenCounter API reference: Token Counters GitHub link: https://github.com/deepset-ai/haystack/blob/main/haystack/token_counters/approximate_counter.py Package name: haystack-ai

출처: 문서

본문

Usage

카운터를 만들고 count()에 메시지 목록을 전달하세요:

from haystack.dataclasses import ChatMessage
from haystack.token_counters import ApproximateTokenCounter

messages = [
    ChatMessage.from_system("You are a helpful assistant."),
    ChatMessage.from_user("Explain retrieval-augmented generation."),
]
counter = ApproximateTokenCounter()
token_count = counter.count(messages)
print(token_count)

기본적으로 카운터는 네 문자를 토큰 하나로 취급합니다. chars_per_token을 설정해 애플리케이션의 언어와 모델에 맞게 추정치를 조정할 수 있어요:

counter = ApproximateTokenCounter(chars_per_token=3.5)

값이 작을수록 더 높고 보수적인 추정치가 나옵니다. chars_per_token은 0보다 커야 해요.

도구 스키마가 소비하는 컨텍스트를 포함하려면 count()에 도구를 전달하세요:

token_count = counter.count(messages, tools=[search_tool])

Non-text content

이미지와 파일은 텍스트 길이로 측정할 수 없으므로, 카운터는 항목마다 평면 추정치를 더해요. 애플리케이션이 큰 이미지나 긴 문서를 보낼 때 기본값을 변경하세요:

counter = ApproximateTokenCounter(
    chars_per_token=4.0,
    tokens_per_image=765,
    tokens_per_file=4000,
)

카운터는 메시지에 직접 붙은 비텍스트 콘텐츠뿐 아니라 도구 결과에 중첩된 콘텐츠도 포함합니다.

더 알아보기 (Learn more)