Skip to content

Commit 1659bd9

Browse files
authored
Fix: Import anthropic package when used since it's optional (#1319)
1 parent d9fec49 commit 1659bd9

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

camel/models/anthropic_model.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import os
1515
from typing import Any, Dict, List, Literal, Optional, Union
1616

17-
from anthropic.types.beta import BetaMessageParam
18-
1917
from camel.configs import ANTHROPIC_API_PARAMS, AnthropicConfig
2018
from camel.messages import OpenAIMessage
2119
from camel.models.base_model import BaseModelBackend
@@ -99,6 +97,7 @@ def token_counter(self) -> BaseTokenCounter:
9997
self._token_counter = AnthropicTokenCounter(self.model_type)
10098
return self._token_counter
10199

100+
@dependencies_required('anthropic')
102101
def count_tokens_from_prompt(
103102
self, prompt: str, role: Literal["user", "assistant"]
104103
) -> int:
@@ -112,6 +111,8 @@ def count_tokens_from_prompt(
112111
Returns:
113112
int: The number of tokens in the prompt.
114113
"""
114+
from anthropic.types.beta import BetaMessageParam
115+
115116
return self.client.beta.messages.count_tokens(
116117
messages=[BetaMessageParam(content=prompt, role=role)],
117118
model=self.model_type,

camel/utils/token_counting.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from math import ceil
2121
from typing import TYPE_CHECKING, List, Optional
2222

23-
from anthropic.types.beta import BetaMessageParam
2423
from PIL import Image
2524

2625
from camel.logger import get_logger
@@ -234,6 +233,7 @@ def __init__(self, model: str):
234233
self.client = Anthropic()
235234
self.model = model
236235

236+
@dependencies_required('anthropic')
237237
def count_tokens_from_messages(self, messages: List[OpenAIMessage]) -> int:
238238
r"""Count number of tokens in the provided message list using
239239
loaded tokenizer specific for this type of model.
@@ -245,6 +245,8 @@ def count_tokens_from_messages(self, messages: List[OpenAIMessage]) -> int:
245245
Returns:
246246
int: Number of tokens in the messages.
247247
"""
248+
from anthropic.types.beta import BetaMessageParam
249+
248250
return self.client.beta.messages.count_tokens(
249251
messages=[
250252
BetaMessageParam(

0 commit comments

Comments
 (0)