创建分析文本的客户端应用程序

已完成

注释

有关更多详细信息,请参阅 “文本和图像 ”选项卡!

客户端应用程序是你编写的程序,它连接到服务或模型并使用其功能。 你的代码向服务发送请求并自动接收结果,以便处理大量文本或将 AI 分析集成到工作流中。

若要连接到 AI 服务,应用程序使用 API (应用程序编程接口)。 API 是一组规则,用于定义两段软件的通信方式。 客户端库是一组现成的代码,开发人员可以在其应用程序中使用它轻松与服务或 API 通信。 你可以在以下内容中回顾关于应用程序和使用端点的基础知识:开始使用 Azure 中的 AI

使用通用 AI 模型进行文本分析

从 Microsoft Foundry 资源开始,并在资源中创建 Foundry 项目。 在新 Foundry 门户中,可以浏览模型目录并部署常规用途模型。

可以使用 Azure OpenAI API 生成与 Microsoft Foundry 模型交互的客户端应用程序。 OpenAI API 允许代码通过向 终结点发送请求以及 API 密钥 来证明你获得授权,从而与已部署的模型通信。

Responses API 是 Azure OpenAI 中用于与语言模型交互的新式统一 API。 它旨在处理完整的 AI 交互,而不仅仅是文本生成。

可以使用 响应 API 将自然语言提示发送到已部署的语言模型。 当你需要灵活的聊天式分析时,不需要固定结构化输出时,它非常有用。

使用 OpenAI Python库

OpenAI Python 库是官方Python软件开发工具包(SDK),开发人员可以通过代码而不是原始 HTTP 请求生成与 OpenAI 模型和服务交互的Python应用程序。

若要使用 OpenAI Python库,需要在代码编辑器中工作。 应用程序代码以 代码编辑器编写,例如Visual Studio Code。 代码编辑器的 终端 是编辑器中的内置命令行窗口,你可以在其中运行命令,而无需离开开发环境。

1.安装必要的包

OpenAI Python 库可以使用以下命令在 Visual Studio Code terminal 中安装:

pip install openai

2.创建配置文件

接下来,可以创建配置文件(类型 .env)来存储环境变量,例如终结点、密钥和模型部署名称。

请考虑以下变量:

AZURE_OPENAI_ENDPOINT=https://<your-resource>.openai.azure.com/openai/v1/
MODEL_DEPLOYMENT_NAME=gpt-4.1-mini
API_KEY=<your-foundry-key>

请注意终结点变量如何包含 Foundry 资源的名称和 openai.azure.com/openai/v1。 API 密钥是 Foundry 项目密钥。

模型部署名称是在部署模型时 为模型提供 的名称。 例如,部署 gpt-4.1 模型时,可以将其命名为 gpt-demo-model。 部署名称为 gpt-demo-model。 但是,如果不自定义模型名称,部署名称将与模型名称匹配,如上面的代码片段所示。

3.创建包含应用程序逻辑的文件

查看以下应用程序代码示例:

import os
from dotenv import load_dotenv
from openai import OpenAI

# Load environment variables from .env file
load_dotenv()
endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
api_key = os.getenv("API_KEY")
deployment_name = os.getenv("MODEL_DEPLOYMENT_NAME")

# Create the client object
client = OpenAI(
    base_url=endpoint,
    api_key=api_key
)

# Make a request using the client
message = client.responses.create(
    model=deployment_name,
    input="",
)

# Print the results
print(f"Sentiment: {message.output[0]}")

注释

加载环境变量:在此示例中, dotenvload_dotenv()) 读取 .env 文件并将这些值加载到应用的环境中。 然后,包 os 按名称 os.getenv()检索每个值,例如 os.getenv("AZURE_OPENAI_ENDPOINT")

每个密钥 .env 必须与代码中的名称完全匹配。 例如,如果文件使用 API_KEY,则代码还必须请求 API_KEY。 使变量名称保持一致,以避免在运行时缺少值。

我们使用 Foundry 资源终结点和密钥创建经过身份验证的 客户端对象。 该 OpenAI 类由 SDK 定义,充当连接到 OpenAI API 的蓝图。 Python中经过身份验证的客户端对象是一个服务特定对象,可以在不手动管理令牌或机密的情况下安全地进行授权的 API 调用。

注释

在 Python 中,class 是一个蓝图,用于定义一种事物类型,即它保存的数据以及可以执行的操作。 对象是从该蓝图创建的特定实例。 例如,类 Car 可以定义每个汽车都有颜色,并且可以 drive()stop()。 当你创建一辆特定的汽车(例如,红色汽车)时,那是一个对象。

创建 客户端对象 (使用终结点和密钥配置)后,可以调用其上 的方法 以与模型交互。 例如,可以使用 responses该方法 将提示发送到特定模型部署。

可以通过使用命令 python <file_name>.py在终端中运行应用程序代码来显示分析结果。

OpenAI API 易于使用,但结果在调用之间可能会有所不同,因为模型以概率方式生成文本。 实际上,这意味着具有相同提示的两次调用可能会返回略有不同的措辞或格式。 当应用需要一致的结构化值(如语言代码、置信度分数或修订文本)时,Azure语言 SDK 是更好的选择。

使用 Azure 语言 SDK

Azure Language SDK 是一个客户端库,适用于 Foundry Tools 中的 Azure Language。 借助 SDK,开发人员可以轻松地将 NLP 功能,如语言检测和个人信息(PII)隐藏,添加到其应用程序中。

让我们看看如何使用 Azure 语言Python SDK 生成分析文本的应用程序。 若要使用 Azure Language Python SDK,需要具有 Foundry 资源。 然后,需要安装兼容版本的 Python 和 Azure Language Python SDK。

可以使用以下命令在 Visual Studio Code terminal 中安装Python SDK:

pip install azure-ai-textanalytics

请考虑以下配置文件示例:

AZURE_LANGUAGE_ENDPOINT=https://<your-resource>.cognitiveservices.azure.com/
API_KEY=<your-foundry-key>

请考虑以下应用程序代码示例:

# Import packages
import os
from dotenv import load_dotenv
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

# Load environment variables from .env file
load_dotenv()
endpoint = os.getenv("AZURE_LANGUAGE_ENDPOINT")
key = os.getenv("API_KEY")

# Create the client
client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key))

# Make a request using the client for language detection
text = "¡Hola! Me llamo Josefina y vivo en Madrid, España."
result = client.detect_language([text])[0]

我们使用客户端的 methods 调用 Azure 语言函数,例如 detect_languagerecognize_pii_entities

语言检测:该方法 detect_language() 采用文本字符串列表并返回检测到的语言、其 ISO 639-1 代码以及介于 0 和 1 之间的置信度分数。

text = "¡Hola! Me llamo Josefina y vivo en Madrid, España."
result = client.detect_language([text])[0]

# Print the results
print(f"Language      : {result.primary_language.name}")
print(f"ISO code      : {result.primary_language.iso6391_name}")
print(f"Confidence    : {result.primary_language.confidence_score:.2f}")

PII 检测:该方法 recognize_pii_entities() 标识文本中的个人详细信息,并返回文本的修订版本和找到的实体列表,包括每个实体的类别和置信度分数。

text = "Maria Garcia called from 020 7946 0958 and asked to send documents to 42 Market Road, London, UK, SW1A 1AA."

result = client.recognize_pii_entities([text])[0]

# Print the results
print("Redacted text:", result.redacted_text)
print("\nEntities found:")
for entity in result.entities:
    print(f"  {entity.text} | category={entity.category} | confidence={entity.confidence_score}")

使用 OpenAI API 和 Azure 语言 SDK,可以为处理自然语言并从文本中生成见解的 AI 应用程序编写代码。

接下来,让我们看看如何在 AI 代理中包含Azure语言功能。