Skip to main content

Dhenara Package for Multi Provider AI-Model API calls

Project description

Dhenara AI

Dhenara AI is an open source Python package for calling multiple LLM providers through one typed interface. It keeps the integration surface small: provider credentials, model selection, prompt/message formatting, streaming, tool use, and structured output all flow through the same core client types.

For full documentation, visit docs.dhenara.com.

Installation

pip install dhenara-ai

Credential Setup

Dhenara AI discovers credentials in one of two ways:

  1. Pass an explicit file path to ResourceConfig.load_from_file().
  2. Set DAI_SECRET_CONFIG_DIR and place dai_credentials.yaml inside that directory.

If DAI_SECRET_CONFIG_DIR is unset, the default location is /run/secrets/dai/dai_credentials.yaml.

Use the checked-in template at src/dhenara/ai/types/resource/credentials.yaml as the starting point.

mkdir -p /path/to/secrets
export DAI_SECRET_CONFIG_DIR=/path/to/secrets
cp src/dhenara/ai/types/resource/credentials.yaml "$DAI_SECRET_CONFIG_DIR/dai_credentials.yaml"

Then edit dai_credentials.yaml and keep only the providers you actually use.

Quickstart

from dhenara.ai import AIModelClient
from dhenara.ai.types import AIModelAPIProviderEnum, AIModelCallConfig, ResourceConfig

resource_config = ResourceConfig()
resource_config.load_from_file(credentials_file=None, init_endpoints=True)

endpoint = resource_config.get_model_endpoint(
    model_name="claude-haiku-4-5",
    api_provider=AIModelAPIProviderEnum.ANTHROPIC,
)
if endpoint is None:
    raise RuntimeError("No Anthropic endpoint configured for claude-haiku-4-5")

client = AIModelClient(
    model_endpoint=endpoint,
    config=AIModelCallConfig(
        max_output_tokens=1024,
        reasoning=False,
        streaming=False,
    ),
    is_async=False,
)

response = client.generate(
    prompt="Explain quantum computing in simple terms.",
    instructions=["Keep the answer under 120 words."],
)

if response.chat_response:
    print(response.chat_response.text())

Running The Included Examples

The example programs use the same credential-loading contract. With a secret directory configured, you can run them directly:

export DAI_SECRET_CONFIG_DIR=/path/to/secrets
python examples/14_multi_turn_with_messages_api.py

If you prefer an explicit credentials file, pass that path where the example calls load_from_file().

Provider SDK Surfaces

  • OpenAI direct and Azure OpenAI / Microsoft Foundry OpenAI v1 use the openai SDK.
  • Google Gemini Developer API and Gemini on Vertex AI use the google-genai SDK.
  • Anthropic direct, Amazon Bedrock, and Anthropic on Vertex use the anthropic SDK.
  • Amazon Bedrock configuration stays under the amazon_bedrock provider block. The package passes those credentials into AnthropicBedrock; there is no separate boto client setup in your application code.
  • microsoft_azure_ai is not a supported text-generation surface in dhenara-ai; use microsoft_openai with an Azure OpenAI or Microsoft Foundry OpenAI v1 endpoint instead.
  • For Microsoft-hosted OpenAI-compatible deployments, the model value in requests must be the Azure deployment name, not just the underlying vendor model family.

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

dhenara_ai-1.1.6.tar.gz (125.9 kB view details)

Uploaded Source

Built Distribution

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

dhenara_ai-1.1.6-py3-none-any.whl (170.8 kB view details)

Uploaded Python 3

File details

Details for the file dhenara_ai-1.1.6.tar.gz.

File metadata

  • Download URL: dhenara_ai-1.1.6.tar.gz
  • Upload date:
  • Size: 125.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for dhenara_ai-1.1.6.tar.gz
Algorithm Hash digest
SHA256 629220d13edae0b36305ef5ced72e9c952c7a41592696eabd25e35c6102458aa
MD5 c4276ddafd834f6d0b4868c57bc417b5
BLAKE2b-256 f20cfcdfd9f5ff467e7f09e7284d6b51d83ab19d01dbb81d7a6b819e95b08bb3

See more details on using hashes here.

File details

Details for the file dhenara_ai-1.1.6-py3-none-any.whl.

File metadata

  • Download URL: dhenara_ai-1.1.6-py3-none-any.whl
  • Upload date:
  • Size: 170.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for dhenara_ai-1.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fb69262da9338539397240df33ff07ba5cb0f5b09c1775eb51c65fbd34ae7f02
MD5 62c2f92c55be1563eeefdf7bba3f4ad0
BLAKE2b-256 3533ce695e955e3d919e715c5847ca85abdebd9ee6ed720b90a42ffe79ba83f9

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