Portkey + Segmind
Portkey is the Control Panel for AI apps. With itβs popular AI Gateway and Observability Suite, hundreds of teams ship reliable, cost-efficient, and fast apps.
With Portkey, you can
- Connect to 150+ models through a unified API,
- View 40+ metrics & logs for all requests,
- Enable semantic cache to reduce latency & costs,
- Implement automatic retries & fallbacks for failed requests,
- Add custom tags to requests for better tracking and analysis and more.
Segmind provides serverless APIs for hundreds of generative models that can be applied to a specific task that your application wants to accomplish. You can grab the APIs from the model page to get started with integrating them with your app. Before you can start making API calls, you will need an API key to authenticate your application.
Display Image ( Utility function )
import base64
import io
from PIL import Image
import matplotlib.pyplot as plt
def display_image(image):
# Assuming your data is stored in a variable named `response_data`
response_data = image.data
print(response_data)
# Extract the base64-encoded image data (This if condition is only if we fallback to Dall-E as dall e doesn't provide b64_json instead it gives the direct url)
if (response_data[0].url):
print(response_data[0].url)
else:
b64_image_data = response_data[0].b64_json
# Decode the base64-encoded image data
image_data = base64.b64decode(b64_image_data)
# Convert the decoded image data into a PIL image object
image = Image.open(io.BytesIO(image_data))
# Display the image using Matplotlib
plt.imshow(image)
plt.axis('off') # Hide axis
plt.show()
Quickstart
Since Portkey is fully compatible with the OpenAI signature, you can connect to the Portkey AI Gateway through OpenAI Client.
- Set the
base_url
as PORTKEY_GATEWAY_URL
- Add
default_headers
to consume the headers needed by Portkey using the createHeaders
helper method.
You will need Portkey and Segmind API keys to run this notebook.
- Sign up for Portkey and generate your API key here.
- Get your Segmind key here
With OpenAI Client
!pip install -qU portkey-ai
from openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders
from google.colab import userdata
client = OpenAI(
api_key=userdata.get('SEGMIND_API_KEY'), # replace with your Segmind API key
base_url=PORTKEY_GATEWAY_URL,
default_headers=createHeaders(
provider="segmind",
api_key=userdata.get('PORTKEY_API_KEY') # replace with your Portkey API key
)
)
image = client.images.generate(
prompt="A stunning landscape with a mountain range and a lake",
model="sdxl1.0-newreality-lightning" # replace with the actual model name
)
display_image(image)
With Portkey Client
from portkey_ai import Portkey
portkey = Portkey(
api_key= userdata.get('PORTKEY_API_KEY'),
virtual_key= "segmind-e63290"
)
image = portkey.images.generate(
model="sdxl1.0-newreality-lightning",
prompt="Humans and Robots in parallel universe",
size="1024x1024"
)
display_image(image)
Optional
Advanced Routing - Fallbacks
The Fallback feature allows you to specify a list of providers/models in a prioritized order. If the primary LLM fails to respond or encounters an error, Portkey will automatically fallback to the next LLM in the list, ensuring your applicationβs robustness and reliability.
To enable fallbacks, you can modify the config object to include the fallback mode.
Note: You can create and store custom configurations on Portkey.
from portkey_ai import Portkey
portkey = Portkey(
api_key= userdata.get('PORTKEY_API_KEY'),
# Fallback to Dall-E (If segmind fails)
config="pc-segmin-ab3d5d", # Config key, Generated when you create a config
virtual_key= "test-segmind-643f94"
)
image = portkey.images.generate(
model="sdxl1.0-newreality-lightning",
prompt="Humans and Robots in parallel universe",
size="1024x1024"
)
display_image(image)
Monitoring your Requests
Using Portkey you can monitor your Segmind requests and track tokens, cost, latency, and more.