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.8.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.8-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: astarcloud-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 f9b47a30b771eca5f945c4db4d0ffb9985cf0e2b5c0dc1bee196d7b598165abc
MD5 1b74c4cd2ae736eabef4197312aff491
BLAKE2b-256 33c4a3c6cbce32cded47263637fb73a4f8b922dfd9675cdee35e98181f7ed635

See more details on using hashes here.

File details

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

File metadata

  • Download URL: astarcloud-0.1.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 58b634e9af51ebc16e91265bde7f36ed48351f6b057b0d7efa0acd7e4d221d6b
MD5 afdf99fa01daf369cb175311ae2f0f30
BLAKE2b-256 cdb893b5b623cedb8939be2e5d6233ba05b40294cdf5b87e2d5cbc8dcfc423f1

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