This repository includes an example of a First Class Swarmauri Example.
Project description
Swarmauri Measurement Token Count Estimator
Token-count measurement plugin for Swarmauri pipelines. Uses OpenAI's tiktoken library to estimate how many tokens a piece of text will consume given a specific tokenizer (default cl100k_base).
Features
- Implements the
MeasurementBaseAPI to slot into Swarmauri observability flows. - Wraps
tiktokenencoders for quick token-count estimation ahead of LLM calls. - Configurable tokenizer name so you can match counts to different model families.
Prerequisites
- Python 3.10 or newer.
tiktokeninstalled (pulled in automatically as a dependency).- If you use custom encodings, ensure they are registered with
tiktokenbefore invoking the measurement.
Installation
# pip
pip install swarmauri_measurement_tokencountestimator
# poetry
poetry add swarmauri_measurement_tokencountestimator
# uv (pyproject-based projects)
uv add swarmauri_measurement_tokencountestimator
Quickstart
from swarmauri_measurement_tokencountestimator import TokenCountEstimatorMeasurement
measurement = TokenCountEstimatorMeasurement()
text = "Lorem ipsum odor amet, consectetuer adipiscing elit."
count = measurement.calculate(text)
print(f"Tokens (cl100k_base): {count}")
Switching Encodings
from swarmauri_measurement_tokencountestimator import TokenCountEstimatorMeasurement
text = "Swarmauri agents coordinate over shared memory"
measurement = TokenCountEstimatorMeasurement()
for encoding in ["cl100k_base", "o200k_base", "p50k_base"]:
print(encoding, measurement.calculate(text, encoding=encoding))
Use this to check token budgets across different model families before dispatching a request.
Handling Unknown Encodings
from swarmauri_measurement_tokencountestimator import TokenCountEstimatorMeasurement
measurement = TokenCountEstimatorMeasurement()
invalid_count = measurement.calculate("Hello", encoding="not-real")
print(invalid_count) # Returns None and prints an error message
Wrap the call if you prefer structured error handling:
try:
count = measurement.calculate("Hello", encoding="not-real")
if count is None:
raise ValueError("Unsupported encoding")
except ValueError:
# fallback logic
pass
Tips
- Token counts can change as tokenizers evolve; pin
tiktokento a known version for stable measurements. - Normalize whitespace if your prompt assembly adds or strips spaces—tokenizers are sensitive to exact byte sequences.
- For batch estimation, combine this measurement with Pandas or list comprehensions to preprocess entire prompt sets before sending them to an LLM.
Want to help?
If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarmauri_measurement_tokencountestimator-0.9.3.dev24.tar.gz.
File metadata
- Download URL: swarmauri_measurement_tokencountestimator-0.9.3.dev24.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7efeacdcab6f4582fd48acf0ec80640c5947164b7b51f46f707bdddc4ea77088
|
|
| MD5 |
cf68ae00fd7a3d9454ce2e1406f2bb73
|
|
| BLAKE2b-256 |
20c8f9132de01bfb716d56b2ae04d8ab004cb77c9c7768a5e26993f7fa12d831
|
File details
Details for the file swarmauri_measurement_tokencountestimator-0.9.3.dev24-py3-none-any.whl.
File metadata
- Download URL: swarmauri_measurement_tokencountestimator-0.9.3.dev24-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fa8dab7e73459f1f4958903766c4c587647fcf16774bae84f0c18e89e7ca280
|
|
| MD5 |
649f37132ec3fd825617358c9330b5f1
|
|
| BLAKE2b-256 |
0df72df0c14f287d411ece411f1916e1251febee45a42e95612beeb29ef5cd5e
|