Skip to main content

Python client for AWS Bedrock Gateway with IAM authentication

Project description

Bedrock Gateway Client

PyPI version Python 3.8+ License: MIT GitHub stars Downloads

A Python client for AWS Bedrock Gateway with IAM authentication. Works with any private API Gateway setup for AWS Bedrock.

Features

  • Configurable - Works with any Bedrock Gateway deployment
  • No secrets required - Uses your AWS IAM credentials
  • Simple API - Just client.chat("message")
  • Multiple configuration methods - Constructor, environment variables, or config file
  • CLI included - Command-line interface for quick testing

Installation

pip install bedrock-gateway-client

Quick Start

from bedrock_gateway_client import BedrockClient

client = BedrockClient(
    gateway_url="https://your-api-gateway.execute-api.region.amazonaws.com/prod/invoke",
    region="us-east-1"
)

response = client.chat("Tell me about koalas")
print(response.text)
print(f"Tokens used: {response.tokens}")

Configuration Options

Direct Configuration

from bedrock_gateway_client import BedrockClient

client = BedrockClient(
    gateway_url="https://your-gateway.execute-api.region.amazonaws.com/prod/invoke",
    region="us-east-1"
)

Environment Variables

export BEDROCK_GATEWAY_URL="https://your-gateway.execute-api.region.amazonaws.com/prod/invoke"
export BEDROCK_GATEWAY_REGION="us-east-1"
from bedrock_gateway_client import BedrockClient

client = BedrockClient()  # Uses environment variables

Global Configuration

from bedrock_gateway_client import configure, chat

configure(
    gateway_url="https://your-gateway.execute-api.region.amazonaws.com/prod/invoke",
    region="us-east-1",
    save=True
)

# Now use simple chat function
response = chat("Tell me about koalas")
print(response)

Usage Examples

Basic Chat

response = client.chat(
    "What is AWS Bedrock?",
    model="sonnet-4.5",
    max_tokens=500
)

print(response.text)
print(f"Tokens: {response.tokens}")
print(f"Latency: {response.latency_ms}ms")

With System Prompt

response = client.chat(
    "What is 2+2?",
    system="You are a helpful math tutor.",
    model="sonnet-4.5"
)

Multi-turn Conversation

# First turn
response1 = client.chat("My name is Alice")

# Build history
history = [
    {"role": "user", "content": [{"text": "My name is Alice"}]},
    {"role": "assistant", "content": [{"text": response1.text}]}
]

# Second turn with context
response2 = client.chat(
    "What's my name?",
    conversation_history=history
)

Command-Line Interface

# Configure
bedrock-gateway configure --gateway-url "https://..." --region us-east-1

# Chat
bedrock-gateway chat "Tell me about AWS Bedrock" --model sonnet-4.5

# Check identity
bedrock-gateway whoami

Response Object

response.text           # The generated text
response.tokens         # Total tokens used
response.input_tokens   # Input tokens
response.output_tokens  # Output tokens
response.latency_ms     # Response time in milliseconds
response.request_id     # Unique request ID
response.model          # Model used
response.stop_reason    # Why generation stopped
response.raw_response   # Full raw response

Authentication

Uses your AWS credentials automatically:

  • Default AWS credentials (~/.aws/credentials)
  • AWS profile: BedrockClient(profile="my-profile")
  • Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
  • IAM role (when running on EC2/Lambda/ECS)

License

MIT License - see LICENSE file for details

Support

For issues, open a GitHub issue at: https://github.com/parv3sh/bedrock-gateway-client/issues

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

bedrock_gateway_client-1.0.2.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

bedrock_gateway_client-1.0.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file bedrock_gateway_client-1.0.2.tar.gz.

File metadata

  • Download URL: bedrock_gateway_client-1.0.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for bedrock_gateway_client-1.0.2.tar.gz
Algorithm Hash digest
SHA256 346ab07f745e3e05c6625db5500165ddb8e422fe92bd40a5f460398cfee229bf
MD5 02f7b11969a325364b588bb5cfe2e4a1
BLAKE2b-256 b8f4702bced2a39199fdeb1022ef5e36b42bfec8753916ceb3617e4d1b89a307

See more details on using hashes here.

File details

Details for the file bedrock_gateway_client-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for bedrock_gateway_client-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b4de3b16536e85f4c04e5ce183c7ecb01fef4b603c7680975135616b8bc6596
MD5 85f4a334e9b8e18b7b8c1e59cd3e4ecc
BLAKE2b-256 4a10d8bc721c6252a20f75fef3dbdd7aedbb677e41f885e30014345c34aaa01e

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