Skip to main content

Official Python SDK for the AstarCloud API

Project description

AstarCloud SDK

Python SDK for the AstarCloud API with support for chat completions and tool calling.

Installation

pip install astarcloud-sdk

Quick Start

from AstarCloud import AstarClient

client = AstarClient(api_key="sk-...")

# Basic chat completion
response = client.create.completion(
    messages=[{"role": "user", "content": "Hello!"}],
    model="gpt-4.1"
)

print(response.choices[0].message.content)

Tool Calling

The SDK supports tool calling for compatible models (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, astar-gpt-4.1).

Basic Tool Usage

from AstarCloud import AstarClient, ToolSpec

client = AstarClient(api_key="sk-...")

# Define a tool
weather_tool = ToolSpec(
    function={
        "name": "get_weather",
        "description": "Get the current weather in a given location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA"
                }
            },
            "required": ["location"]
        }
    }
)

# Use the tool in a completion
response = client.create.completion(
    messages=[{"role": "user", "content": "What's the weather in Paris?"}],
    model="gpt-4.1",
    tools=[weather_tool],
    tool_choice="auto"
)

# Check if the model wants to call a tool
if response.choices[0].tool_calls:
    tool_call = response.choices[0].tool_calls[0]
    print(f"Tool called: {tool_call.function['name']}")
    print(f"Arguments: {tool_call.function['arguments']}")

Bound Tools Client

For convenience, you can create a client with pre-bound tools:

# Create a client with bound tools
bound_client = client.bind_tools([weather_tool])

# All completions will automatically include the bound tools
response = bound_client.create.completion(
    messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
    model="gpt-4.1"
)

Streaming

The SDK supports streaming responses:

for chunk in client.create.completion(
    messages=[{"role": "user", "content": "Write a story"}],
    model="gpt-4.1",
    stream=True
):
    if chunk.choices[0].message.content:
        print(chunk.choices[0].message.content, end="")

Error Handling

from AstarCloud import AstarClient
from AstarCloud._exceptions import APIError, AuthenticationError

try:
    response = client.create.completion(
        messages=[{"role": "user", "content": "Hello"}],
        model="gpt-4.1"
    )
except AuthenticationError:
    print("Invalid API key")
except APIError as e:
    print(f"API error: {e}")

Model Support

Tool-Compatible Models

  • gpt-4.1
  • gpt-4.1-mini
  • gpt-4.1-nano
  • astar-gpt-4.1

Other models can be used for basic completions but do not support tool calling.

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

astarcloud-0.1.9.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

astarcloud-0.1.9-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file astarcloud-0.1.9.tar.gz.

File metadata

  • Download URL: astarcloud-0.1.9.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for astarcloud-0.1.9.tar.gz
Algorithm Hash digest
SHA256 98145dc102983e97a98df65caea3807d107ec37a6e7c4ae0aeea5eb23b3bcc65
MD5 2421ee01889722e2b53298b38847420c
BLAKE2b-256 0f0695e6a520726bf031be0e8e5248a1d10fb3e55739278e1fa6aab0019d1e3b

See more details on using hashes here.

File details

Details for the file astarcloud-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: astarcloud-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for astarcloud-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 8bf8c1b554c1fab9b938adc2ecc14b1a7e086aea20c806efb0cf7279f6a4aa22
MD5 bfb9015c9b049937b9d6dc5ebc7bbdf6
BLAKE2b-256 e324eac8e90839b17005dfb57487f3427b0a55a3e88b4b8c58fd176899a12cff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page