Skip to content

Latest commit

 

History

History
154 lines (103 loc) · 4.78 KB

File metadata and controls

154 lines (103 loc) · 4.78 KB

DhivehiGPT SDK for Python

Latest Version on PyPI Test Status Code Coverage Badge Total Downloads

A lightweight, zero-dependency Python SDK for the DhivehiGPT API.

Requirements

  • Python 3.8 or higher
  • No runtime dependencies — the SDK only uses the Python standard library.

Installation

pip install dhivehigpt-sdk

Getting an API key

API keys are generated from your DhivehiGPT team's API Keys page. You'll need:

  • A DhivehiGPT team account with an active subscription.
  • To be a team owner or team admin — only owners and admins can generate API keys.

Quick start

The client reads the API key from the DHIVEHIGPT_API_KEY environment variable by default:

export DHIVEHIGPT_API_KEY="your-api-key"
from dhivehigpt_sdk import DhivehiGPT

client = DhivehiGPT()

# or pass the API key explicitly
client = DhivehiGPT(api_key="your-api-key")

base_url and api_version are optional and default to https://api.dhivehigpt.com and v1:

client = DhivehiGPT(
    api_key="your-api-key",
    base_url="https://api.dhivehigpt.com",
    api_version="v1",
)

Usage

Voices

voices = client.voices.list(gender="female", is_premium=False)
voice = client.voices.get("hajja")

Text-to-Speech (TTS)

audio = client.tts.generate(text="ދިވެހިޖީޕީޓީއަށް މަރުޙަބާ", voice="hajja")

audios = client.tts.list(voice="hajja", per_page=20)
one = client.tts.get(audio["data"]["uuid"])
client.tts.update(audio["data"]["uuid"], title="Welcome message")
client.tts.delete(audio["data"]["uuid"])

Balance

balance = client.balance.get()
print(balance["billing_period"]["balance"])

Tasks

tasks = client.tasks.list(platform="tts")
task = client.tasks.get("audio_generation")
cost = client.tasks.calculate(task="audio_generation", units=1000)

Error handling

All errors raised by the SDK inherit from dhivehigpt_sdk.DhivehiGPTError:

from dhivehigpt_sdk import DhivehiGPT, DhivehiGPTError, NotFoundError

client = DhivehiGPT()

try:
    client.voices.get("does-not-exist")
except NotFoundError as e:
    print(e.status_code, e.message)
except DhivehiGPTError as e:
    print("Something else went wrong:", e)
Exception Cause
AuthenticationError Missing, invalid, or revoked API key (401)
PermissionDeniedError Not enough credits, etc. (403)
NotFoundError Resource does not exist (404)
ValidationError Invalid request data (422); see error.errors
RateLimitError Exceeded 60 requests/minute per API key (429)
ServerError Upstream error (5xx)
APIConnectionError Could not reach the API

Documentation

Full documentation is available at https://docs.javaabu.com/docs/dhivehigpt-sdk-python.

The full DhivehiGPT API reference is available at https://dhivehigpt.com/docs.

Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.

If you've found a bug regarding security please mail info@javaabu.com instead of using the issue tracker.

Testing

pip install -e ".[test]"
pytest

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email info@javaabu.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.