Skip to main content

Python SDK for the Halfred service API

Project description

Halfred Python SDK

A Python SDK for consuming the Halfred service API. The API is fully compatible with the OpenAI API standard.

Installation

pip install halfred

Or install from source:

pip install -e .

Quick Start

from halfred import Halfred

# Initialize the client with your API key
client = Halfred(api_key="halfred_xxxxxxxxxxxxxxxx")

# List available models
models = client.models.list()
print(models)

# Create a chat completion
completion = client.chat.completions.create(
    model="lite",
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)
print(completion["choices"][0]["message"]["content"])

Usage

List Models

Get a list of available models:

from halfred import Halfred

client = Halfred(api_key="halfred_xxxxxxxxxxxxxxxxx")
models = client.models.list()

# Access the list of models
for model in models["data"]:
    print(f"Model ID: {model['id']}")

Create Chat Completions

Create a chat completion:

from halfred import Halfred

client = Halfred(api_key="halfred_xxxxxxxxxxxxxxxxx")

completion = client.chat.completions.create(
    model="lite",
    messages=[
        {"role": "user", "content": "What is Python?"}
    ]
)

print(completion["choices"][0]["message"]["content"])

Chat Completion Parameters

completion = client.chat.completions.create(
    model="lite",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ],
    temperature=0.7,              # Sampling temperature (0-2)
    max_tokens=100,              # Maximum tokens to generate
    max_completion_tokens=50,     # Maximum completion tokens
    response_format={"type": "json_object"},  # Response format (optional)
    stream=False                 # Whether to stream the response
)

Error Handling

from halfred import Halfred, HalfredAPIError, HalfredAuthenticationError

client = Halfred(api_key="halfred_xxxxxxxxxxxxxxxxx")

try:
    completion = client.chat.completions.create(
        model="dev",
        messages=[{"role": "user", "content": "Hello"}]
    )
except HalfredAuthenticationError:
    print("Authentication failed. Check your API key.")
except HalfredAPIError as e:
    print(f"API error: {e}")
    print(f"Status code: {e.status_code}")

Custom Configuration

from halfred import Halfred

# Custom base URL and timeout
client = Halfred(
    api_key="halfred_xxxxxxxxxxxxxxxxx",
    base_url="https://api.halfred.ai",  # Optional, defaults to production
    timeout=30  # Optional, defaults to 30 seconds
)

Development

Setup

# Install development dependencies
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black halfred/

API Compatibility

This SDK is designed to be compatible with the OpenAI API standard. The API endpoints and request/response formats follow the same structure as OpenAI's API, making it easy to switch between providers.

License

MIT

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

halfred-0.2.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

halfred-0.2.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file halfred-0.2.0.tar.gz.

File metadata

  • Download URL: halfred-0.2.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for halfred-0.2.0.tar.gz
Algorithm Hash digest
SHA256 26d8820400271010e174f1433596e3fd9f06a9e46b7d2a216d94b88d27082904
MD5 fd0a80138cdeda669d147f7d12ffa9bd
BLAKE2b-256 85143f8e6e8f997527b4168562be635063324ebaf770dd7ec8d16c1084cb213c

See more details on using hashes here.

File details

Details for the file halfred-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: halfred-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for halfred-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e19dc731506884b6c01b3a14e2f3b666814a2c817ffbbae52bb10b92c411bc25
MD5 36a7270b3c19c0182ab1d738929065ee
BLAKE2b-256 b5ff2eeeb5869a2877b61ee3f47c199eaebcec76e97fa265a1fe80c0ec796748

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