Skip to main content

Complete Python SDK for DigitalOcean's Gradient AI Platform - serverless inference, knowledge bases, agents, and more

Project description

do-gradient-ai

A complete, unofficial Python SDK for DigitalOcean's Gradient AI Platform.

Features

  • Serverless Inference: Access 23+ foundation models including Llama, Mistral, DeepSeek, Claude, GPT
  • Knowledge Bases: Create and query RAG-enabled knowledge bases with citations
  • AI Agents: Build and interact with managed AI assistants
  • Image Generation: Generate images with DALL-E (tier-dependent)
  • Streaming: Full streaming support for real-time responses
  • CLI Tool: Complete command-line interface included

Installation

pip install do-gradient-ai

Quick Start

Python SDK

from do_gradient_ai import GradientAI

# Initialize client (uses GRADIENT_API_KEY from environment)
client = GradientAI()

# Simple chat completion
response = client.complete("What is Python?")
print(response)

# Or use the full API
response = client.chat.complete("What is Python?")
print(response.content)

# Stream responses
for chunk in client.stream("Tell me a story"):
    print(chunk, end="", flush=True)

# List available models
models = client.list_models()
for model in models:
    print(model)

Command Line

# Chat completion
gradient chat "What is Python?"

# Stream response
gradient chat --stream "Tell me a story"

# List models
gradient models list

# Interactive mode
gradient interactive

# Test connection
gradient test

Authentication

The SDK uses two types of authentication:

Inference Key (Required)

For chat completions, knowledge base queries, and agent interactions.

export GRADIENT_API_KEY="sk-do-..."

Or pass directly:

client = GradientAI(inference_key="sk-do-...")

Management Token (Optional)

For creating/managing knowledge bases, agents, and other resources.

export DIGITALOCEAN_TOKEN="dop_v1_..."

Or pass directly:

client = GradientAI(management_token="dop_v1_...")

Chat Completions

from do_gradient_ai import GradientAI, Message

client = GradientAI()

# Simple string input
response = client.chat.complete("Hello!")

# With system prompt
response = client.chat.complete(
    "What is Python?",
    system="You are a helpful programming tutor."
)

# Full conversation
messages = [
    Message.system("You are helpful."),
    Message.user("What is Python?"),
    Message.assistant("Python is a programming language..."),
    Message.user("What are its main features?"),
]
response = client.chat.complete(messages)

# With parameters
response = client.chat.complete(
    "Explain quantum computing",
    model="llama3.3-70b-instruct",
    temperature=0.7,
    max_tokens=2048,
)

# Streaming
for chunk in client.chat.stream("Tell me a story"):
    print(chunk, end="", flush=True)

# Async support
response = await client.chat.acomplete("Hello!")

Knowledge Bases (RAG)

from do_gradient_ai import GradientAI, DataSource

client = GradientAI()

# List knowledge bases
kbs = client.knowledge_bases.list()

# Query a knowledge base
results = client.knowledge_bases.query(
    kb_id="your-kb-id",
    query="What is the return policy?",
    num_results=5,
)

for result in results.results:
    print(f"Score: {result.score}")
    print(f"Text: {result.text}")
    print(f"Source: {result.source}")

# Create a knowledge base (requires management token)
kb = client.knowledge_bases.create(
    name="Company Docs",
    project_id="your-project-id",
    region="tor1",
)

# Add data sources
ds = client.knowledge_bases.add_data_source(
    kb.id,
    DataSource.spaces("my-bucket", "tor1", folder="docs/"),
)

# Or from web crawler
ds = client.knowledge_bases.add_data_source(
    kb.id,
    DataSource.web_crawler("https://docs.example.com", max_pages=500),
)

# Start indexing
job = client.knowledge_bases.start_indexing(kb.id, ds.id)

AI Agents

from do_gradient_ai import GradientAI, AgentConfig

client = GradientAI()

# List agents
agents = client.agents.list()

# Chat with an agent
response = client.agents.chat(
    agent_id="your-agent-id",
    messages="What is your return policy?",
)
print(response.content)
for citation in response.citations:
    print(f"Source: {citation}")

# Stream agent chat
for chunk in client.agents.stream_chat(agent_id, "Help me with my order"):
    print(chunk, end="", flush=True)

# Create an agent (requires management token)
agent = client.agents.create(
    AgentConfig(
        name="Support Bot",
        model_id="model-uuid",
        instruction="You are a helpful customer support agent.",
        project_id="your-project-id",
        region="tor1",
        knowledge_base_ids=["kb-uuid"],
    )
)

# Add multi-agent routing
client.agents.add_route(
    agent_id=agent.id,
    target_agent_id="specialist-agent-id",
    description="Route technical questions",
)

Image Generation

from do_gradient_ai import GradientAI

client = GradientAI()

# Generate an image
response = client.images.generate(
    prompt="A sunset over mountains",
    size="1024x1024",
    quality="hd",
)

# Save to file
response.image.save("sunset.png")

# Generate multiple images
response = client.images.generate(
    prompt="Abstract art",
    n=4,
)
for i, img in enumerate(response.images):
    img.save(f"art_{i}.png")

Available Models

The platform provides access to 23+ models including:

Model Provider Notes
llama3.3-70b-instruct Meta Default model
llama3.2-3b-instruct Meta Smaller, faster
deepseek-r1-distill-llama-70b DeepSeek Reasoning model
mistral-nemo-instruct Mistral
claude-3.5-sonnet Anthropic Higher tier
gpt-4o OpenAI Higher tier
# List all available models
models = client.models.list()
for m in models:
    print(f"{m.id}: {m.name}")

CLI Reference

# Chat commands
gradient chat "message"              # Simple chat
gradient chat --stream "message"     # Stream response
gradient chat -m "message" --model llama3.2-3b-instruct
gradient chat --system "You are..." "message"
echo "input" | gradient chat         # Pipe input

# Model commands
gradient models list                 # List all models
gradient models get <model-id>       # Get model details

# Knowledge base commands
gradient kb list                     # List knowledge bases
gradient kb query <kb-id> "query"    # Query a KB

# Agent commands
gradient agents list                 # List agents
gradient agent chat <id> "message"   # Chat with agent
gradient agent chat <id> -s "msg"    # Stream response

# Other commands
gradient interactive                 # Interactive mode
gradient test                        # Test connection
gradient --help                      # Help

# Global options
gradient --api-key "..." chat "msg"  # Explicit API key
gradient --json chat "message"       # JSON output

Error Handling

from do_gradient_ai import GradientAI
from do_gradient_ai.models.common import APIError

client = GradientAI()

try:
    response = client.chat.complete("Hello")
except APIError as e:
    print(f"API Error {e.status_code}: {e.message}")
except Exception as e:
    print(f"Error: {e}")

Environment Variables

Variable Description
GRADIENT_API_KEY Model access key for inference
DIGITALOCEAN_TOKEN API token for management operations

Requirements

  • Python 3.8+
  • requests >= 2.25.0

License

MIT License

Links

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

dogradient-1.0.0.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

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

dogradient-1.0.0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file dogradient-1.0.0.tar.gz.

File metadata

  • Download URL: dogradient-1.0.0.tar.gz
  • Upload date:
  • Size: 29.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for dogradient-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7181ead62db165f03d8ddea47e39e1dc25066341da189e29f761438a4992a0e7
MD5 ba2201eb39536ccbd8236dea46f512de
BLAKE2b-256 e9c37e98cb3be4ce16993f90c6c4b46a8ba286c7516141b34fa4ad8c990e4a93

See more details on using hashes here.

File details

Details for the file dogradient-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dogradient-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for dogradient-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1365cfee6425300f08402aced40f9e7bde74a2a98211b735019950c099955abc
MD5 d4eef6810af505fb71f125005554dde9
BLAKE2b-256 0a462b69bead27a8175d83309cf61f98e835532565b1a10410bdb8147f580910

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