diff --git a/src/embedding_client.py b/src/embedding_client.py index 208d9d71..92edab68 100644 --- a/src/embedding_client.py +++ b/src/embedding_client.py @@ -677,8 +677,19 @@ class EmbeddingClient: @property def encoding(self) -> tiktoken.Encoding: - """Get the tiktoken encoding.""" - return self._get_client().encoding + """Get the tiktoken encoding. + + Resolved without constructing the underlying client: tiktoken needs no + API key, and token-counting callers (e.g. the document dedup tie-break) + must work in environments with no embedding credentials, such as CI for + pull requests from forks. + """ + if self._instance is not None: + return self._instance.encoding + try: + return tiktoken.encoding_for_model(self._resolve_runtime_config().model) + except KeyError: + return tiktoken.get_encoding("cl100k_base") # Shared singleton embedding client instance