curl -X POST "$KONNECT_PROXY_URL/anything" \
--no-progress-meter --fail-with-body \
-H "Accept: application/json"\
-H "Content-Type: application/json" \
--json '{
"messages": [
{
"role": "system",
"content": "You are a mathematician"
},
{
"role": "user",
"content": "What is 1+1?"
}
]
}'
Set up AI Proxy with AWS Bedrock in Kong Gateway.
Create a Gateway Service and a Route, then enable the AI Proxy plugin and configure it with the AWS Bedrock provider and add the model and your AWS credentials.
Prerequisites
Kong Konnect
This is a Konnect tutorial and requires a Konnect personal access token.
-
Create a new personal access token by opening the Konnect PAT page and selecting Generate Token.
-
Export your token to an environment variable:
export KONNECT_TOKEN='YOUR_KONNECT_PAT'Copied! -
Run the quickstart script to automatically provision a Control Plane and Data Plane, and configure your environment:
curl -Ls https://get.konghq.com/quickstart | bash -s -- -k $KONNECT_TOKEN --deck-outputCopied!This sets up a Konnect Control Plane named
quickstart, provisions a local Data Plane, and prints out the following environment variable exports:export DECK_KONNECT_TOKEN=$KONNECT_TOKEN export DECK_KONNECT_CONTROL_PLANE_NAME=quickstart export KONNECT_CONTROL_PLANE_URL=https://us.api.konghq.com export KONNECT_PROXY_URL='http://localhost:8000'Copied!Copy and paste these into your terminal to configure your session.
Kong Gateway running
This tutorial requires Kong Gateway Enterprise. If you don’t have Kong Gateway set up yet, you can use the quickstart script with an enterprise license to get an instance of Kong Gateway running almost instantly.
-
Export your license to an environment variable:
export KONG_LICENSE_DATA='LICENSE-CONTENTS-GO-HERE'Copied! -
Run the quickstart script:
curl -Ls https://get.konghq.com/quickstart | bash -s -- -e KONG_LICENSE_DATACopied!Once Kong Gateway is ready, you will see the following message:
Kong Gateway Ready
decK v1.43+
decK is a CLI tool for managing Kong Gateway declaratively with state files. To complete this tutorial, install decK version 1.43 or later.
This guide uses deck gateway apply, which directly applies entity configuration to your Gateway instance.
We recommend upgrading your decK installation to take advantage of this tool.
You can check your current decK version with deck version.
Required entities
For this tutorial, you’ll need Kong Gateway entities, like Gateway Services and Routes, pre-configured. These entities are essential for Kong Gateway to function but installing them isn’t the focus of this guide. Follow these steps to pre-configure them:
-
Run the following command:
echo ' _format_version: "3.0" services: - name: rerank-service url: http://httpbin.konghq.com/rerank routes: - name: rerank-route paths: - "/rerank" service: name: rerank-service ' | deck gateway apply -Copied!
To learn more about entities, you can read our entities documentation.
AWS credentials and Bedrock model access
Before you begin, you must have AWS credentials with Bedrock permissions:
- AWS Access Key ID: Your AWS access key
- AWS Secret Access Key: Your AWS secret key
-
Region: AWS region where Bedrock is available (for example,
us-east-1)
-
Enable the rerank model in the AWS Bedrock console under Model Access. Navigate to Bedrock > Model access and request access to
cohere.rerank-v3-5:0. - After model access is granted, construct the model ARN for your region:
arn:aws:bedrock:<region>::foundation-model/cohere.rerank-v3-5:0Copied!Replace
<region>with your AWS region (for example,us-east-1). - Export the required values as environment variables:
export DECK_AWS_ACCESS_KEY_ID="<your-access-key-id>" export DECK_AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"Copied!
Configure the plugin
To set up AI Proxy with AWS Bedrock, specify the model and set the authenticate using AWS credentials.
In this example, we’ll use the Meta Llama 3 70B Instruct model:
echo '
_format_version: "3.0"
plugins:
- name: ai-proxy
config:
route_type: llm/v1/chat
auth:
allow_override: false
aws_access_key_id: "${aws_access_key}"
aws_secret_access_key: "${{ env "DECK_AWS_SECRET_ACCESS_KEY" }}"
model:
provider: bedrock
name: meta.llama3-70b-instruct-v1:0
options:
bedrock:
aws_region: us-east-1
' | deck gateway apply -
echo '
_format_version: "3.0"
plugins:
- name: ai-proxy
config:
route_type: llm/v1/chat
auth:
header_name: Authorization
header_value: Bearer ${{ env "DECK_OPENAI_API_KEY" }}
model:
provider: openai
name: gpt-4o
options:
max_tokens: 512
temperature: 1.0
' | deck gateway apply -
Validate
Send a request to the Route to validate.
curl -X POST "http://localhost:8000/anything" \
--no-progress-meter --fail-with-body \
-H "Accept: application/json"\
-H "Content-Type: application/json" \
--json '{
"messages": [
{
"role": "system",
"content": "You are a mathematician"
},
{
"role": "user",
"content": "What is 1+1?"
}
]
}'
Cleanup
Clean up Konnect environment
If you created a new control plane and want to conserve your free trial credits or avoid unnecessary charges, delete the new control plane used in this tutorial.
Destroy the Kong Gateway container
curl -Ls https://get.konghq.com/quickstart | bash -s -- -d