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:
- Pass an explicit file path to
ResourceConfig.load_from_file(). - Set
DAI_SECRET_CONFIG_DIRand placedai_credentials.yamlinside 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
openaiSDK. - Google Gemini Developer API and Gemini on Vertex AI use the
google-genaiSDK. - Anthropic direct, Amazon Bedrock, and Anthropic on Vertex use the
anthropicSDK. - Amazon Bedrock configuration stays under the
amazon_bedrockprovider block. The package passes those credentials intoAnthropicBedrock; there is no separate boto client setup in your application code. microsoft_azure_aiis not a supported text-generation surface indhenara-ai; usemicrosoft_openaiwith an Azure OpenAI or Microsoft Foundry OpenAI v1 endpoint instead.- For Microsoft-hosted OpenAI-compatible deployments, the
modelvalue in requests must be the Azure deployment name, not just the underlying vendor model family.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
629220d13edae0b36305ef5ced72e9c952c7a41592696eabd25e35c6102458aa
|
|
| MD5 |
c4276ddafd834f6d0b4868c57bc417b5
|
|
| BLAKE2b-256 |
f20cfcdfd9f5ff467e7f09e7284d6b51d83ab19d01dbb81d7a6b819e95b08bb3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb69262da9338539397240df33ff07ba5cb0f5b09c1775eb51c65fbd34ae7f02
|
|
| MD5 |
62c2f92c55be1563eeefdf7bba3f4ad0
|
|
| BLAKE2b-256 |
3533ce695e955e3d919e715c5847ca85abdebd9ee6ed720b90a42ffe79ba83f9
|