mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-05-04 16:55:54 +00:00
33 lines
859 B
Python
33 lines
859 B
Python
from nanobot.utils.helpers import estimate_prompt_tokens_chain
|
|
|
|
|
|
class _NoCounterProvider:
|
|
pass
|
|
|
|
|
|
class _BrokenCounterProvider:
|
|
def estimate_prompt_tokens(self, messages, tools=None, model=None):
|
|
raise RuntimeError("counter unavailable")
|
|
|
|
|
|
def test_estimate_prompt_tokens_chain_falls_back_without_provider_counter() -> None:
|
|
tokens, source = estimate_prompt_tokens_chain(
|
|
_NoCounterProvider(),
|
|
"test-model",
|
|
[{"role": "user", "content": "hello"}],
|
|
)
|
|
|
|
assert tokens > 0
|
|
assert source == "tiktoken"
|
|
|
|
|
|
def test_estimate_prompt_tokens_chain_falls_back_when_provider_counter_fails() -> None:
|
|
tokens, source = estimate_prompt_tokens_chain(
|
|
_BrokenCounterProvider(),
|
|
"test-model",
|
|
[{"role": "user", "content": "hello"}],
|
|
)
|
|
|
|
assert tokens > 0
|
|
assert source == "tiktoken"
|