图像生成

在 Colab 中打开

使用 Portkey AI 网关生成图像

Portkey 的 AI 网关 支持通过统一 API 调用多个图像模型生成图像。本笔记展示了以下功能:

  1. 通过 OpenAI 生成图像

  2. 使用相同请求通过 Stability AI 生成图像

  3. 在 OpenAI 和 Stability 之间设置负载均衡,并回退到 OpenAI 的 dall-e-2

  4. 缓存图像请求以实现超快加载

本笔记使用 OpenAI SDK 展示功能。我们使用的是 portkey.ai 上的托管 AI 网关,但您也可以将其替换为内部托管的网关。

# Constants for use later - Please enter your own
PORTKEY_API_KEY="" # Get this from your Portkey Account
OPENAI_API_KEY = "" # Your OpenAI key here
STABILITY_API_KEY = "" # Add your stability ai API key

1. 使用 OpenAI 生成图像

让我们尝试通过 Portkey 向 OpenAI 发起图像生成请求。

from openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders
from IPython.display import display, Image

client = OpenAI(
    api_key=OPENAI_API_KEY,
    base_url=PORTKEY_GATEWAY_URL,
    default_headers=createHeaders(
        provider="openai",
        api_key=PORTKEY_API_KEY
    )
)

image = client.images.generate(
  model="dall-e-3",
  prompt="Lucy in the sky with diamonds",
  n=1,
  size="1024x1024"
)

# Display the image
display(Image(url=image.data[0].url))

此请求通过 Portkey 的快速 AI 网关进行处理,并在您的 Portkey 仪表板上捕获请求信息。

2. 使用 Stability AI 生成图像

让我们尝试通过 Portkey 向 Stability 发起图像生成请求。请注意,我们将使用 OpenAI SDK 本身来调用 Stability AI。

3. 使用负载均衡和回退的配置

AI 网关允许我们创建路由配置,以提高请求的可靠性。让我们举个例子,假设我们希望在 OpenAI 的 dall-e-3 和 Stability 的 stable-diffusion-v1-6 之间均匀负载均衡,并且整体回退到 dall-e-2

这需要我们创建一个结构如下的配置:

让我们使用 Portkey 的配置来定义这个,以实现相同的结果。您可以在 这里 找到更多关于配置的信息。

生成的图像将遵循您的回退和负载均衡配置,使您的应用程序非常具有弹性。

4. 缓存图像请求

AI 网关还支持缓存请求,使其极快。我们可以在上述配置中添加缓存,并再次尝试请求。

Last updated