Skip to main content

PromptQL Natural Language API SDK for Python

A Python SDK for interacting with the PromptQL Natural Language API.

Installation

pip install promptql-api-sdk

Or with Poetry:

poetry add promptql-api-sdk

Features

  • Full support for the PromptQL Natural Language API (v1 and v2)
  • Type-safe interface with Pydantic models
  • Support for streaming responses
  • Conversation management
  • Support for all LLM providers (Hasura, Anthropic, OpenAI)
  • Support for build-based configuration (v2 API)

Quick Start

v2 API (Recommended)

The v2 API uses build-based configuration and is the recommended approach:

from promptql_api_sdk import PromptQLClient

# Initialize the client with build version
client = PromptQLClient(
    api_key="your-promptql-api-key",
    build_version="your-build-version",  # or use build_id=UUID("your-build-id")
    timezone="America/Los_Angeles",
)

# Send a simple query
response = client.query("What is the average temperature in San Francisco?")
print(response.assistant_actions[0].message)

# Use streaming for real-time responses
for chunk in client.query("Tell me about the weather in New York", stream=True):
    if hasattr(chunk, "message") and chunk.message:
        print(chunk.message, end="", flush=True)

Note: To use applied build, do not specify build_version or build_id.

client = PromptQLClient(
    api_key="your-promptql-api-key",
    timezone="America/Los_Angeles",
)

v1 API (Legacy)

The v1 API requires DDN /v1/sql URL and explicit LLM provider configuration:

from promptql_api_sdk import PromptQLClient
from promptql_api_sdk.types.models import HasuraLLMProvider

# Initialize the client
client = PromptQLClient(
    api_key="your-promptql-api-key",
    ddn_url="your-ddn-url/v1/sql",
    llm_provider=HasuraLLMProvider(), # Required for v1 API
    timezone="America/Los_Angeles",
)

# Send a simple query
response = client.query("What is the average temperature in San Francisco?")
print(response.assistant_actions[0].message)

Private DDN

If you are using a private DDN, you need to provide the base URL for the PromptQL API:

client = PromptQLClient(
    api_key="your-promptql-api-key",
    build_version="your-build-version",
    timezone="America/Los_Angeles",
    api_base_url="https://promptql.fqdn.hasura.app/api",
)

Note: The api_base_url should not include the /query endpoint.

For more details refer to the PromptQL API Endpoint documentation.

Conversation Management

The SDK provides a Conversation class to help manage multi-turn conversations:

# Create a conversation
conversation = client.create_conversation(
    system_instructions="You are a helpful assistant that provides weather information."
    # Note: system_instructions are ignored in v2 API as they come from build's PromptQL config
)

# Send messages in the conversation
response = conversation.send_message("What's the weather like in London?")
print(response.message)

# Send a follow-up message
response = conversation.send_message("How about tomorrow?")
print(response.message)

# Get all artifacts created during the conversation
artifacts = conversation.get_artifacts()

LLM Provider Configuration (v1 API only)

The SDK supports multiple LLM providers for v1 API:

from promptql_api_sdk.types.models import HasuraLLMProvider, AnthropicLLMProvider, OpenAILLMProvider

# Hasura (default)
hasura_provider = HasuraLLMProvider()

# Anthropic
anthropic_provider = AnthropicLLMProvider(api_key="your-anthropic-api-key")

# OpenAI
openai_provider = OpenAILLMProvider(api_key="your-openai-api-key")

# Use with the client (v1 API only)
client = PromptQLClient(
    api_key="your-promptql-api-key",
    ddn_url="your-ddn-url/v1/sql",
    llm_provider=anthropic_provider,
)

Note: In v2 API, LLM configuration is managed through the DDN build's PromptQL settings.

API Version Differences

v2 API (Recommended)

  • Uses build-based configuration (build_version or build_id) (optional, uses applied build if not specified)
  • LLM configuration and system instructions come from build's PromptQL config

v1 API (Legacy)

  • Uses direct DDN /v1/sql URL
  • Requires explicit LLM provider configuration
  • System instructions specified in requests

Error Handling

from promptql_api_sdk import PromptQLClient
from promptql_api_sdk.exceptions import PromptQLAPIError

client = PromptQLClient(...)

try:
    response = client.query("What is the weather like?")
except PromptQLAPIError as e:
    print(f"API Error: {e}")

License

MIT

Release files for promptql-api-sdk 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for promptql-api-sdk 0.2.0
File Size Uploaded
promptql_api_sdk-0.2.0.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for promptql-api-sdk 0.2.0
File Interpreter ABI Platform
promptql_api_sdk-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.3 kB

Release files / promptql_api_sdk-0.2.0.tar.gz

Download URL promptql_api_sdk-0.2.0.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3362ce324268a0f0ba48105e36925490c854cfef34ad6b62bc5e74ea7182a7e4
BLAKE2b-256 checksum
How to use checksums
ba0ef1e7a27cc4de11c861b3ff05c080be4d329ad0fc5334355a6788389edc8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.13.5 Linux/6.15.7-arch1-1

Release files / promptql_api_sdk-0.2.0-py3-none-any.whl

Download URL promptql_api_sdk-0.2.0-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
713163a2d6185e0baf50afacf3a3c46911f7ff7158e3213832f60ec2de0dee07
BLAKE2b-256 checksum
How to use checksums
0d55ee3e8bf4e0300d333e06e8cfa499adc9e049391477528688ac4788518105
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.13.5 Linux/6.15.7-arch1-1

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page