Simplifies the usage of Anthropic Claude's tool use by generating the schemas and parsing the responses for you.
Project description
Anthropic tools
The anthropic-tools
library simplifies the usage of Anthropics’s tool use feature. It abstracts away the complexity of parsing function signatures and docstrings by providing developers with a clean and intuitive interface. It's a near-clone of my openai-functions library that does the same with OpenAI.
Installation
You can install anthropic-tools
from PyPI using pip:
pip install anthropic-tools
Usage
- Import the necessary modules and provide your API key:
import enum
import anthropic
from anthropic_tools import Conversation
client = anthropic.Anthropic(
api_key="<YOUR_API_KEY>",
)
- Create a
Conversation
instance:
conversation = Conversation(client)
- Define your tools using the
@conversation.add_tool
decorator:
class Unit(enum.Enum):
FAHRENHEIT = "fahrenheit"
CELSIUS = "celsius"
@conversation.add_tool()
def get_current_weather(location: str, unit: Unit = Unit.FAHRENHEIT) -> dict:
"""Get the current weather in a given location.
Args:
location (str): The city and state, e.g., San Francisco, CA
unit (Unit): The unit to use, e.g., fahrenheit or celsius
"""
return {
"location": location,
"temperature": "72",
"unit": unit.value,
"forecast": ["sunny", "windy"],
}
- Ask the AI a question:
response = conversation.ask("What's the weather in San Francisco?")
# Should return three messages, the last one's content being something like:
# The current weather in San Francisco is 72 degrees Fahrenheit and it is sunny and windy.
You can read more about how to use Conversation
here.
More barebones use - just schema generation and result parsing:
from anthropic_tools import ToolWrapper
wrapper = ToolWrapper(get_current_weather)
schema = wrapper.schema
result = wrapper({"location": "San Francisco, CA"})
Or you could use skills.
How it Works
anthropic-tools
takes care of the following tasks:
- Parsing the function signatures (with type annotations) and docstrings.
- Sending the conversation and tool descriptions to Anthropic Claude.
- Deciding whether to call a tool based on the model's response.
- Calling the appropriate function with the provided arguments.
- Updating the conversation with the tool response.
- Repeating the process until the model generates a user-facing message.
This abstraction allows developers to focus on defining their functions and adding user messages without worrying about the details of tool use.
Note
Please note that anthropic-tools
is an unofficial project not maintained by Anthropic. Use it at your discretion.
Project details
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
File details
Details for the file anthropic_tools-1.0.7.tar.gz
.
File metadata
- Download URL: anthropic_tools-1.0.7.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.8 Linux/6.8.2-zen2-1-zen
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c594f7f405ee208f4a32ffaede098fb00efbddc8d714dc601dceddfd7ca51c4b |
|
MD5 | 764ecda51c68cdeb6645b1a9f9997013 |
|
BLAKE2b-256 | 8c66a10d6859ecd7d4ee2caebf61b930dd7016d887002df630ce480843b88187 |
File details
Details for the file anthropic_tools-1.0.7-py3-none-any.whl
.
File metadata
- Download URL: anthropic_tools-1.0.7-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.8 Linux/6.8.2-zen2-1-zen
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5144d9a93c583870c2b6d7744b4b79e105da5cd1e5b9975ee1e8d56f378134b5 |
|
MD5 | c8e94055e2a96b432d6fdefcadf771b2 |
|
BLAKE2b-256 | fc511101eb20e442b54e015c1f324f897b20db7bdc7c428030caadc7da38e866 |