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.1.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.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bedrock_gateway_client-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 a2020730b707dac9c57c896490c7dfb4bcc7bdbd9a282145a65bbe331d4133d6
MD5 ee5079441796b25b8715a442577a4202
BLAKE2b-256 255a8e32669c4ab316dc2792d8c83cafa0cb4742229ab7228589a6d583fb5b3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bedrock_gateway_client-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4a17952f57d6222d42489102272fb2ef29436143e5e8016ca150ca6a18cd19b
MD5 f51aecd18b354eac88893b7cedfc8296
BLAKE2b-256 7a766c77b35162098b0df099a0f9821f24e96e714ab4c7acfb9e8d556a5e0d43

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