anthropic[major]: support python 3.13 (#27916)

Last week Anthropic released version 0.39.0 of its python sdk, which
enabled support for Python 3.13. This release deleted a legacy
`client.count_tokens` method, which we currently access during init of
the `Anthropic` LLM. Anthropic has replaced this functionality with the
[client.beta.messages.count_tokens()
API](https://github.com/anthropics/anthropic-sdk-python/pull/726).

To enable support for `anthropic >= 0.39.0` and Python 3.13, here we
drop support for the legacy token counting method, and add support for
the new method via `ChatAnthropic.get_num_tokens_from_messages`.

To fully support the token counting API, we update the signature of
`get_num_tokens_from_message` to accept tools everywhere.

---------

Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
This commit is contained in:
ccurme
2024-11-12 14:31:07 -05:00
committed by GitHub
parent 759b6ed17a
commit 1538ee17f9
14 changed files with 534 additions and 542 deletions

View File

@@ -331,7 +331,7 @@ def dummy_tool() -> BaseTool:
arg1: int = Field(..., description="foo")
arg2: Literal["bar", "baz"] = Field(..., description="one of 'bar', 'baz'")
class DummyFunction(BaseTool):
class DummyFunction(BaseTool): # type: ignore[override]
args_schema: Type[BaseModel] = Schema
name: str = "dummy_function"
description: str = "dummy function"