此示例将介绍如何使用 Azure OpenAI 服务进行嵌入。
此示例将介绍如何使用 Azure OpenAI 服务进行嵌入。
首先,我们安装必要的依赖项并导入我们将要使用的库。
! pip install "openai>=1.0.0,<2.0.0"
! pip install python-dotenv
import os
import openai
import dotenv
dotenv.load_dotenv()
Azure OpenAI 服务支持多种身份验证机制,包括 API 密钥和 Azure Active Directory 令牌凭据。
use_azure_active_directory = False # Set this flag to True if you are using Azure Active Directory
要设置 OpenAI SDK 以使用Azure API 密钥,我们需要将 api_key
设置为与您的终结点关联的密钥(您可以在 Azure 门户中的“资源管理”下的“密钥和终结点”中找到此密钥)。您还可以在此处找到资源的终结点。
if not use_azure_active_directory:
endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
api_key = os.environ["AZURE_OPENAI_API_KEY"]
client = openai.AzureOpenAI(
azure_endpoint=endpoint,
api_key=api_key,
api_version="2023-09-01-preview"
)
现在让我们看看如何通过 Azure Active Directory 进行身份验证。我们将首先安装 azure-identity
库。此库将提供我们进行身份验证所需的令牌凭据,并通过 get_bearer_token_provider
帮助程序函数帮助我们构建令牌凭据提供程序。建议使用 get_bearer_token_provider
而不是向 AzureOpenAI
提供静态令牌,因为此 API 将自动为您缓存和刷新令牌。
有关如何使用 Azure OpenAI 设置 Azure Active Directory 身份验证的更多信息,请参阅文档。
! pip install "azure-identity>=1.15.0"
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
if use_azure_active_directory:
endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
api_key = os.environ["AZURE_OPENAI_API_KEY"]
client = openai.AzureOpenAI(
azure_endpoint=endpoint,
azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_version="2023-09-01-preview"
)
注意:如果未提供 AzureOpenAI,则会从其对应的环境变量中推断以下参数
api_key
来自 AZURE_OPENAI_API_KEY
azure_ad_token
来自 AZURE_OPENAI_AD_TOKEN
api_version
来自 OPENAI_API_VERSION
azure_endpoint
来自 AZURE_OPENAI_ENDPOINT
在本节中,我们将创建一个模型的部署,我们可以使用该模型来创建嵌入。
让我们部署一个模型以用于嵌入。转到 https://portal.azure.com,找到您的 Azure OpenAI 资源,然后导航到 Azure OpenAI Studio。单击“部署”选项卡,然后为您要用于嵌入的模型创建部署。您为模型提供的部署名称将在下面的代码中使用。
deployment = "" # Fill in the deployment name from the portal here
现在让我们使用我们构建的客户端创建嵌入。
embeddings = client.embeddings.create(
model=deployment,
input="The food was delicious and the waiter..."
)
print(embeddings)