以下为本文档的中文说明

Azure AI Projects Java SDK开发技能,提供Azure AI Foundry项目管理的高级SDK使用指南。该技能涵盖Azure AI Foundry平台的项目管理功能,包括连接管理(管理外部服务和数据源的连接)、数据集操作(创建、读取、更新和删除数据集)、索引管理(构建和管理AI搜索索引)、以及评估(模型评估和性能分析)。提供了完整的SDK使用指南:Maven依赖配置、环境变量设置、身份认证方式(使用DefaultAzureCredential)、以及客户端层次结构说明。使用场景主要包括:在Java应用中集成Azure AI Foundry项目管理功能、管理AI项目的连接和数据集、构建和管理AI搜索索引、执行模型评估和性能分析、以及自动化AI项目基础设施管理。核心原则强调"层次化客户端架构"——SDK提供了不同抽象层次的客户端,开发者可以根据需求选择合适的抽象层次。高层客户端封装了常见操作模式,适合快速开发;低层客户端提供细粒度控制,适合需要自定义配置的高级场景。该技能是Java开发者接入Azure AI生态的重要桥梁。


Azure AI Projects SDK for Java

High-level SDK for Azure AI Foundry project management with access to connections, datasets, indexes, and evaluations.

Installation

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-ai-projects</artifactId>
    <version>1.0.0-beta.1</version>
</dependency>

Environment Variables

PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>

Authentication

import com.azure.ai.projects.AIProjectClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;

AIProjectClientBuilder builder = new AIProjectClientBuilder()
    .endpoint(System.getenv("PROJECT_ENDPOINT"))
    .credential(new DefaultAzureCredentialBuilder().build());

Client Hierarchy

The SDK provides multiple sub-clients for different operations:

Client Purpose
ConnectionsClient Enumerate connected Azure resources
DatasetsClient Upload documents and manage datasets
DeploymentsClient Enumerate AI model deployments
IndexesClient Create and manage search indexes
EvaluationsClient Run AI model evaluations
EvaluatorsClient Manage evaluator configurations
SchedulesClient Manage scheduled operations
// Build sub-clients from builder
ConnectionsClient connectionsClient = builder.buildConnectionsClient();
DatasetsClient datasetsClient = builder.buildDatasetsClient();
DeploymentsClient deploymentsClient = builder.buildDeploymentsClient();
IndexesClient indexesClient = builder.buildIndexesClient();
EvaluationsClient evaluationsClient = builder.buildEvaluationsClient();

Core Operations

List Connections

import com.azure.ai.projects.models.Connection;
import com.azure.core.http.rest.PagedIterable;

PagedIterable<Connection> connections = connectionsClient.listConnections();
for (Connection connection : connections) {
    System.out.println("Name: " + connection.getName());
    System.out.println("Type: " + connection.getType());
    System.out.println("Credential Type: " + connection.getCredentials().getType());
}

List Indexes

indexesClient.listLatest().forEach(index -> {
    System.out.println("Index name: " + index.getName());
    System.out.println("Version: " + index.getVersion());
    System.out.println("Description: " + index.getDescription());
});

Create or Update Index

import com.azure.ai.projects.models.AzureAISearchIndex;
import com.azure.ai.projects.models.Index;

String indexName = "my-index";
String indexVersion = "1.0";
String searchConnectionName = System.getenv("AI_SEARCH_CONNECTION_NAME");
String searchIndexName = System.getenv("AI_SEARCH_INDEX_NAME");

Index index = indexesClient.createOrUpdate(
    indexName,
    indexVersion,
    new AzureAISearchIndex()
        .setConnectionName(searchConnectionName)
        .setIndexName(searchIndexName)
);

System.out.println("Created index: " + index.getName());

Access OpenAI Evaluations

The SDK exposes OpenAI’s official SDK for evaluations:

import com.openai.services.EvalService;

EvalService evalService = evaluationsClient.getOpenAIClient();
// Use OpenAI evaluation APIs directly

Best Practices

  1. Use DefaultAzureCredential for production authentication
  2. Reuse client builder to create multiple sub-clients efficiently
  3. Handle pagination when listing resources with PagedIterable
  4. Use environment variables for connection names and configuration
  5. Check connection types before accessing credentials

Error Handling

import com.azure.core.exception.HttpResponseException;
import com.azure.core.exception.ResourceNotFoundException;

try {
    Index index = indexesClient.get(indexName, version);
} catch (ResourceNotFoundException e) {
    System.err.println("Index not found: " + indexName);
} catch (HttpResponseException e) {
    System.err.println("Error: " + e.getResponse().getStatusCode());
}

Reference Links

Resource URL
Product Docs https:
//learn.microsoft.com/azure/ai-studio/
API Reference https://learn.microsoft.com/rest/api/aifoundry/aiprojects/
GitHub Source https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-projects
Samples https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-projects/src/samples

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐