Python client for AWS Bedrock Gateway with IAM authentication
Project description
Bedrock Gateway Client
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
346ab07f745e3e05c6625db5500165ddb8e422fe92bd40a5f460398cfee229bf
|
|
| MD5 |
02f7b11969a325364b588bb5cfe2e4a1
|
|
| BLAKE2b-256 |
b8f4702bced2a39199fdeb1022ef5e36b42bfec8753916ceb3617e4d1b89a307
|
File details
Details for the file bedrock_gateway_client-1.0.2-py3-none-any.whl.
File metadata
- Download URL: bedrock_gateway_client-1.0.2-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b4de3b16536e85f4c04e5ce183c7ecb01fef4b603c7680975135616b8bc6596
|
|
| MD5 |
85f4a334e9b8e18b7b8c1e59cd3e4ecc
|
|
| BLAKE2b-256 |
4a10d8bc721c6252a20f75fef3dbdd7aedbb677e41f885e30014345c34aaa01e
|